dart-sdk/pkg/analyzer/analysis_options.yaml
Sam Rawlins a5912c6c58 Enforce strict-casts in analyzer
Broadly, this _adds_ text to the code, as making something explicit which was previously implicit generally requires adding characters. The fixes are of the form:

* `int x = y /* dynamic */;` --> `var x = y as int;`
* `Map<A, B> x = y; --> `var x = y.cast<A, B>();`

Most of the changes are in code which has parsed YAML or which has parsed arguments. Go figure. :)

Change-Id: I1107688bf4ce9c1ec3ed6a4cef56d4d968048e2e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278522
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-01-06 01:59:47 +00:00

50 lines
1.8 KiB
YAML

include: package:lints/recommended.yaml
analyzer:
errors:
# Increase the severity of the unused_import hint.
unused_import: warning
# "strict-inference" is enabled, but "unused" parameters named '_' are
# still reported. Re-evaluate after
# https://github.com/dart-lang/language/pull/599 and a functional fix land.
inference_failure_on_untyped_parameter: ignore
# There are about 10k violations in test/ due to missing return types on
# test methods. It would be nice to mark this code as
# "ignored for test/**/*.dart".
inference_failure_on_function_return_type: ignore
# Lints from the recommended set that conflict w/ analyzer style or will
# require some work to reach compliance.
# See: https://github.com/dart-lang/sdk/issues/48784
avoid_renaming_method_parameters: ignore
# We sometimes name test classes with an underscore, and have a consistent
# practice of doing so. We do not have an problems of naming classes with
# snake_case, so we're not missing much by disabling it. Re-enable when we
# can ignore a lint rule for a certain path.
camel_case_types: ignore
constant_identifier_names: ignore
hash_and_equals: ignore
non_constant_identifier_names: ignore
implementation_imports: ignore
library_private_types_in_public_api: ignore
provide_deprecation_message: ignore
language:
strict-casts: true
strict-inference: true
linter:
rules:
- always_use_package_imports
- avoid_dynamic_calls
- avoid_unused_constructor_parameters
- collection_methods_unrelated_type
- enable_null_safety
- implicit_call_tearoffs
- library_annotations
- unawaited_futures
- unnecessary_library_directive
- unnecessary_parenthesis
- use_super_parameters