# Packages that deliberately use their own analysis_options.yaml.
#
# Please consult with #hackers-ecosystem before adding anything to this list,
# as the goal is to have consistent analysis options across all packages.
#
# All entries here shoud include a comment explaining why they use different
# options.

# DO NOT move or delete this file without updating
# https://github.com/dart-lang/sdk/blob/main/tools/bots/flutter/analyze_flutter_packages.sh
# and
# https://github.com/flutter/flutter/blob/main/dev/bots/test.dart
# which reference this file from source, but out-of-repo.
# Contact stuartmorgan or devoncarew for assistance if necessary.

# Opts out of unawaited_futures, matching flutter/flutter's disabling due
# to interactions with animation.
- animations
# Deliberately uses flutter_lints, as that's what it is demonstrating.
- flutter_lints/example
# Has some test files that are intentionally broken to conduct dart fix tests.
# Also opts out of unawaited_futures, matching flutter/flutter.
- go_router
# Has some constructions that are currently handled poorly by dart format.
- rfw/example
# Disables docs requirements, as it is test code.
- web_benchmarks/testing/test_app
