3.1.0-wip
- new lint:
no_wildcard_variable_uses
1.35.0
- add new lints:
implicit_reopen
unnecessary_breaks
type_literal_in_constant_pattern
- updates to existing lints to support patterns and class modifiers
- remove support for:
enable_null_safety
invariant_booleans
prefer_bool_in_asserts
prefer_equal_for_default_values
super_goes_last
- fix
unnecessary_parenthesis
false-positives with null-aware expressions - fix
void_checks
to allow assignments of Future<dynamic>?
to parameters typed FutureOr<void>?
- fix
use_build_context_synchronously
in if conditions - fix a false positive for
avoid_private_typedef_functions
with generalized type aliases - update
unnecessary_parenthesis
to detect some doubled parens - update
void_checks
to allow returning Never
as void - update
no_adjacent_strings_in_list
to support set literals and for- and if-elements - update
avoid_types_as_parameter_names
to handle type variables - update
avoid_positional_boolean_parameters
to handle typedefs - update
avoid_redundant_argument_values
to check parameters of redirecting constructors - improve performance for
prefer_const_literals_to_create_immutables
- update
use_build_context_synchronously
to check context properties - improve
unnecessary_parenthesis
support for property accesses and method invocations
1.34.0
- update
only_throw_errors
to not report on values of type Never
- update
prefer_mixin
to handle class mixins - update
unnecessary_null_checks
to ignore Future.value
and Completer.complete
- fix
unnecessary_parenthesis
false positives on constant patterns - new lint:
invalid_case_patterns
- update
unnecessary_const
to handle case patterns - improve handling of null-aware cascades in
unnecessary_parenthesis
- update
unreachable_from_main
to report unreachable public static fields, getters, setters, and methods, that are declared on public classes, mixins, enums, and extensions
1.33.0
- fix
unnecessary_parenthesis
false-positive with null-aware expressions - fix
void_checks
to allow assignments of Future<dynamic>?
to parameters typed FutureOr<void>?
- removed support for:
enable_null_safety
invariant_booleans
prefer_bool_in_asserts
prefer_equal_for_default_values
super_goes_last
- update
unnecessary_parenthesis
to detect some doubled parens - update
void_checks
to allow returning Never
as void - new lint:
unnecessary_breaks
- fix
use_build_context_synchronously
in if conditions - update
no_adjacent_strings_in_list
to support set literals and for- and if-elements
1.32.0
- update
avoid_types_as_parameter_names
to handle type variables - update
avoid_positional_boolean_parameters
to handle typedefs - improve
unnecessary_parenthesis
support for property accesses and method invocations - update
avoid_redundant_argument_values
to check parameters of redirecting constructors - performance improvements for
prefer_const_literals_to_create_immutables
- update
use_build_context_synchronously
to check context properties - fix false positive for
avoid_private_typedef_functions
with generalized type aliases
1.31.0
- update
prefer_equal_for_default_values
to not report for SDKs >=2.19
, where this lint is now an analyzer diagnostic. - update
unrelated_type_equality_checks
to support updated package:fixnum
structure.
1.30.0
- new lint:
enable_null_safety
- new lint:
library_annotations
- miscellaneous documentation improvements
1.29.0
- new lint:
dangling_library_doc_comments
- fix
no_leading_underscores_for_local_identifiers
to not report super formals as local variables - fix
unnecessary_overrides
false negatives - fix
cancel_subscriptions
for nullable fields - new lint:
collection_methods_unrelated_type
- update
library_names
to support unnamed libraries - fix
unnecessary_parenthesis
support for as-expressions - fix
use_build_context_synchronously
to check for context property accesses - fix false positive in
comment_references
- improved unrelated type checks to handle enums and cascades
- fix
unnecessary_brace_in_string_interps
for this
expressions - update
use_build_context_synchronously
for BuildContext.mounted
- improve
flutter_style_todos
to handle more cases - fix
use_build_context_synchronously
to check for BuildContext
s in named expressions - fix
exhaustive_cases
to check parenthesized expressions - performance improvements for:
avoid_null_checks_in_equality_operators
join_return_with_statement
recursive_getters
unnecessary_lambdas
diagnostic_describe_all_properties
prefer_foreach
avoid_escaping_inner_quotes
cascade_invocations
tighten_type_of_initializing_formals
prefer_interpolation_to_compose_strings
prefer_constructors_over_static_methods
avoid_returning_null
parameter_assignments
prefer_constructors_over_static_methods
prefer_interpolation_to_compose_strings
avoid_returning_null
avoid_returning_this
flutter_style_todos
avoid_positional_boolean_parameters
prefer_const_constructors
- new lint:
implicit_call_tearoffs
- new lint:
unnecessary_library_directive
1.28.0
- update
avoid_redundant_argument_values
to work with enum declarations - performance improvements for
prefer_contains
- new lint:
unreachable_from_main
- (internal): analyzer API updates and
DartTypeUtilities
refactoring
1.27.0
- fix
avoid_redundant_argument_values
when referencing required parameters in legacy libraries - performance improvements for
use_late_for_private_fields_and_variables
- new lint:
use_string_in_part_of_directives
- fixed
use_super_parameters
false positive with repeated super parameter references - updated
use_late_for_private_fields_and_variables
to handle enums - fixed
prefer_contains
false positive when start index is non-zero - improved
noop_primitive_operations
to catch .toString()
in string interpolations - updated
public_member_api_docs
to report diagnostics on extension names (instead of bodies) - miscellaneous documentation improvements
- (internal):
DartTypeUtilities
refactoring
1.26.0
- new lint:
combinators_ordering
- fixed
use_colored_box
and use_decorated_box
to not over-report on containers without a child - fixed false positive for
unnecessary_parenthesis
on a map-or-set literal at the start of an expression statement - fixed false positive for
prefer_final_locals
reporting on fields - fixed
unnecessary_overrides
to allow overrides on @Protected
members - fixed
avoid_multiple_declarations_per_line
false positive in for
statements - fixed
prefer_final_locals
false positive on declaration lists with at least one non-final variable - fixed
use_build_context_synchronously
to handle await
s in if
conditions
1.25.0
- new lint:
discarded_futures
- improved message and highlight range for
no_duplicate_case_values
- performance improvements for
lines_longer_than_80_chars
, prefer_const_constructors_in_immutables
, and prefer_initializing_formals
1.24.0
- fix
prefer_final_parameters
to support super parameters - new lint:
unnecessary_to_list_in_spreads
- fix
unawaited_futures
to handle string interpolated futures - update
use_colored_box
to not flag nullable colors - new lint:
unnecessary_null_aware_operator_on_extension_on_nullable
1.23.0
- fixed
no_leading_underscores_for_local_identifiers
to lint local function declarations - fixed
avoid_init_to_null
to correctly handle super initializing defaults that are non-null - updated
no_leading_underscores_for_local_identifiers
to allow identifiers with just underscores - fixed
flutter_style_todos
to support usernames that start with a digit - updated
require_trailing_commas
to handle functions in asserts and multi-line strings - updated
unsafe_html
to allow assignments to img.src
- fixed
unnecessary_null_checks
to properly handle map literal entries
1.22.0
- fixed false positives for
unnecessary_getters_setters
and prefer_final_fields
with enhanced enums - updated to analyzer 3.4.0 APIs
- fixed null-safe variance in
invariant_booleans
1.21.2
- several
use_super_parameters
false positive fixes - updated
depend_on_referenced_packages
to treat flutter_gen
as a virtual package, not needing an explicit dependency
1.21.1
- bumped language lower-bound constraint to
2.15.0
1.21.0
- fixed
use_key_in_widget_constructors
false positive with key
super parameter initializers - fixed
use_super_parameters
false positive with field formal params - updated
unnecessary_null_checks
and null_check_on_nullable_type_parameter
to handle list/set/map literals, and yield
and await
expressions
1.20.0
- renamed
use_super_initializers
to use_super_parameters
- fixed
unnecessary_null_aware_assignments
property-access false positive
1.19.2
- new lint:
use_super_initializers
- new lint:
use_enums
- new lint:
use_colored_box
- performance improvements for
sort_constructors
- doc improvements for
always_use_package_imports
, avoid_print
, and avoid_relative_lib_imports
- update
avoid_void_async
to skip main
functions - update
prefer_final_parameters
to not super on super params - lint updates for enhanced-enums and super-initializer language features
- updated
unnecessary_late
to report on the variable name - marked
null_check_on_nullable_type_parameter
stable
1.18.0
- extend
camel_case_types
to cover enums - fix
no_leading_underscores_for_local_identifiers
to not mis-flag field formal parameters with default values - fix
prefer_function_declarations_over_variables
to not mis-flag non-final fields - performance improvements for
prefer_contains
- update
exhaustive_cases
to skip deprecated values that redirect to other values
1.17.1
- update to
analyzer
version 3.0
1.17.0
- new lint:
unnecessary_late
- fix to
no_leading_underscores_for_local_identifiers
to allow underscores in catch clauses
1.16.0
- doc improvements for
prefer_initializing_formals
- updates to
secure_pubspec_urls
to check issue_tracker
and repository
entries - new lint:
conditional_uri_does_not_exist
- performance improvements for
missing_whitespace_between_adjacent_strings
1.15.0
- new lint:
use_decorated_box
- new lint:
no_leading_underscores_for_library_prefixes
- new lint:
no_leading_underscores_for_local_identifiers
- new lint:
secure_pubspec_urls
- new lint:
sized_box_shrink_expand
- new lint:
avoid_final_parameters
- improved docs for
omit_local_variable_types
1.14.0
- fix
omit_local_variable_types
to not flag a local type that is required for inference
1.13.0
- allow
while (true) { ...}
in literal_only_boolean_expressions
- fixed
file_names
to report at the start of the file (not the entire compilation unit) - fixed
prefer_collection_literals
named typed param false positive - control flow improvements for
use_build_context_synchronously
1.12.0
- fixed
unnecessary_lambdas
false positive for const constructor invocations - updated
avoid_print
to allow kDebugMode
-wrapped print calls - fixed handling of initializing formals in
prefer_final_parameters
- fixed
unnecessary_parenthesis
false positive with function expressions
1.11.0
- added support for constructor tear-offs to
avoid_redundant_argument_values
, unnecessary_lambdas
, and unnecessary_parenthesis
- new lint:
unnecessary_constructor_name
to flag unnecessary uses of .new
1.10.0
- improved regular expression parsing performance for common checks (
camel_case_types
, file_names
, etc.) - (internal) migrated to analyzer 2.1.0 APIs
- fixed false positive in
use_build_context_synchronously
in awaits inside anonymous functions - fixed
overridden_fields
false positive w/ static fields - fixed false positive in
avoid_null_checks_in_equality_operators
w/ non-nullable params - fixed false positive for deferred imports in
prefer_const_constructors
1.9.0
- marked
avoid_dynamic_calls
stable - (internal) removed unused
MockPubVisitor
and MockRule
classes - fixed
prefer_void_to_null
false positive w/ overridden properties - (internal) removed references to
NodeLintRule
in lint rule declarations - fixed
prefer_void_to_null
false positive on overriding returns - fixed
prefer_generic_function_type_aliases
false positive w/ incomplete statements - fixed false positive for
prefer_initializing_formals
with factory constructors - fixed
void_checks
false positives with incomplete source - updated
unnecessary_getters_setters
to only flag the getter - improved messages for
avoid_renaming_method_parameters
- fixed false positive in
prefer_void_to_null
- fixed false positive in
omit_local_variable_types
- fixed false positive in
use_rethrow_when_possible
- performance improvements for
annotate_overrides
, prefer_contains
, and prefer_void_to_null
1.8.0
- performance improvements for
prefer_is_not_empty
- fixed false positive in
no_logic_in_create_state
- improve
package_names
to allow dart identifiers as package names - fixed false-positive in
package_names
(causing keywords to wrongly get flagged) - fixed
avoid_classes_with_only_static_member
to check for inherited members and also flag classes with only methods - fixed
curly_braces_in_flow_control_structures
to properly flag terminating else-if
blocks - improved
always_specify_types
to support type aliases - fixed false positive in
unnecessary_string_interpolations
w/ nullable interpolated strings - fixed false positive in
avoid_function_literals_in_foreach_calls
for nullable iterables - fixed false positive in
avoid_returning_null
w/ NNBD - fixed false positive in
use_late_for_private_fields_and_variables
in the presence of const constructors - new lint:
eol_at_end_of_file
- updated
analyzer
constraint to >=2.0.0 <3.0.0
1.7.1
- Update
analyzer
constraint to >=1.7.0 <3.0.0
. - Update
meta
constraint to >=1.3.0 <3.0.0
.
1.7.0
- fixed case-sensitive false positive in
use_full_hex_values_for_flutter_colors
- improved try-block and switch statement flow analysis for
use_build_context_synchronously
- updated
use_setters_to_change_properties
to only highlight a method name, not the entire body and doc comment - updated
unnecessary_getters_setters
to allow otherwise “unnecessary” getters and setters with annotations - updated
missing_whitespace_between_adjacent_strings
to allow String interpolations at the beginning and end of String literals - updated
unnecessary_getters_setters
to allow for setters with non-basic assignments (for example, ??=
or +=
)
1.6.1
- reverted relaxation of
sort_child_properties_last
to allow for a trailing Widget in instance creations
1.6.0
- relaxed
non_constant_identifier_names
to allow for a trailing underscore - fixed false negative in
prefer_final_parameters
where first parameter is final - improved
directives_ordering
sorting of directives with dot paths and dot-separated package names - relaxed
sort_child_properties_last
to allow for a trailing Widget in instance creations
1.5.0
- (internal) migrated to
SecurityLintCode
instead of deprecated SecurityLintCodeWithUniqueName
- (internal) fixed
avoid_types_as_parameter_names
to skip field formal parameters - fixed false positives in
prefer_interpolation_to_compose_strings
where the left operand is not a String - fixed false positives in
only_throw_errors
for misidentified type variables - new lint:
depend_on_referenced_packages
- update
avoid_returning_null_for_future
to skip checks for null-safe libraries - new lint:
use_test_throws_matchers
- relax
sort_child_properties_last
to accept closures after child - performance improvements for
prefer_contains
and prefer_is_empty
- new lint:
noop_primitive_operations
- mark
avoid_web_libraries_in_flutter
as stable - new lint:
prefer_final_parameters
- update
prefer_initializing_formals
to allow assignments where identifier names don't match
1.4.0
directives_ordering
now checks ordering of package:
imports in code outside pub packages- simple reachability analysis added to
use_build_context_synchronously
to short-circuit await-discovery in terminating blocks use_build_context_synchronously
updated to recognize nullable types when accessed from legacy libraries
1.3.0
non_constant_identifier_names
updated to check local variables, for-loop initializers and catch clauses- error range of
lines_longer_than_80_chars
updated to start at 80 to make splitting easier - new lint:
require_trailing_commas
- new lint:
prefer_null_aware_method_calls
1.2.1
- fix: adjusted SDK lower bound to 2.12.0-0 (from 2.13.0-0)
1.2.0
- improvements to
iterable_contains_unrelated_type
to better support List
content checks - fixes to
camel_case_types
and prefer_mixin
to support non-function type aliases
1.1.0
- fixed
prefer_mixin
to properly make exceptions for dart.collection
legacy mixins - improved formatting of source examples in docs
- new lint:
use_build_context_synchronously
(experimental) - new lint:
avoid_multiple_declarations_per_line
1.0.0
- full library migration to null-safety
- new lint:
use_if_null_to_convert_nulls_to_bools
- new lint:
deprecated_consistency
- new lint:
use_named_constants
- deprecation of
avoid_as
0.1.129
- fixed a bug where
avoid_dynamic_calls
produced false-positives for .call()
0.1.128
- new lint:
avoid_dynamic_calls
- (internal): updated
avoid_type_to_string
to use addArgumentList
registry API - documentation improvements
0.1.127
- fixed crash in
prefer_collection_literals
when there is no static parameter element
0.1.126
- fixed false negatives for
prefer_collection_literals
when a LinkedHashSet or LinkedHashMap instantiation is passed as the argument to a function in any position other than the first - fixed false negatives for
prefer_collection_literals
when a LinkedHashSet or LinkedHashMap instantiation is used in a place with a static type other than Set or Map
0.1.125
- (internal): update to new
PhysicalResourceProvider
API
0.1.124
- fixed false positives in
prefer_constructors_over_static_methods
- updated
package_names
to allow leading underscores
0.1.123
- fixed NPEs in
unnecessary_null_checks
0.1.122
- fixed NPE in
unnecessary_null_checks
- fixed NPE in
missing_whitespace_between_adjacent_strings
- updated
void_checks
for NNBD - fixed range error in
unnecessary_string_escapes
- fixed false positives in
unnecessary_null_types
- fixed
prefer_constructors_over_static_methods
to respect type parameters - updated
always_require_non_null_named_parameters
to be NNBD-aware - updated
unnecessary_nullable_for_final_variable_declarations
to allow dynamic - update
overridden_fields
to not report on abstract parent fields - fixes to
unrelated_type_equality_checks
for NNBD - improvement to
type_init_formals
to allow types not equal to the field type
0.1.121
- performance improvements to
always_use_package_imports
, avoid_renaming_method_parameters
, prefer_relative_imports
and public_member_api_docs
- (internal): update to analyzer
0.40.4
APIs
0.1.120
- new lint:
cast_nullable_to_non_nullable
- new lint:
null_check_on_nullable_type_parameter
- new lint:
tighten_type_of_initializing_formals
- update
public_member_apis
to check generic type aliases - (internal): update to new analyzer APIs
0.1.119
- fix
close_sinks
to handle this
-prefixed property accesses - new lint:
unnecessary_null_checks
- fix
unawaited_futures
to handle Future
subtypes - new lint:
avoid_type_to_string
0.1.118
- new lint:
unnecessary_nullable_for_final_variable_declarations
- fixed NPE in
prefer_asserts_in_initializer_lists
- fixed range error in
unnecessary_string_escapes
unsafe_html
updated to support unique error codes- updates to
diagnostic_describe_all_properties
to check for Diagnosticable
s (not DiagnosticableMixin
s) - new lint:
use_late
- fixed
unnecessary_lambdas
to respect deferred imports - updated
public_member_api_docs
to check mixins - updated
unnecessary_statements
to skip as
expressions - fixed
prefer_relative_imports
to work with path dependencies
0.1.117
- fixed
directives_ordering
to remove third party package special-casing - fixed
unnecessary_lambdas
to check for tearoff assignability - fixed
exhaustive_cases
to not flag missing cases that are defaulted - fixed
prefer_is_empty
to special-case assert initializers and const contexts - test utilities moved to:
lib/src/test_utilities
- new lint:
do_not_use_environment
0.1.116
- new lint:
no_default_cases
(experimental) - new lint:
exhaustive_cases
- updated
type_annotate_public_apis
to allow inferred types in final field assignments - updated
prefer_mixin
to allow “legacy” SDK abstract class mixins - new lint:
use_is_even_rather_than_modulo
- update
unsafe_html
to use a SecurityLintCode
(making it un-ignorable) - improved
sized_box_for_whitespace
to address false-positives
0.1.115
- updated
avoid_types_as_parameter_names
to check catch-clauses - fixed
unsafe_html
to check attributes and methods on extensions - extended
unsafe_html
to include Window.open
, Element.html
and DocumentFragment.html
in unsafe API checks - improved docs for
sort_child_properties_last
- (internal)
package:analyzer
API updates - new lint:
sized_box_for_whitespace
0.1.114
- fixed
avoid_shadowing_type_parameters
to support extensions and mixins - updated
non_constant_identifier_names
to allow named constructors made up of only underscores (_
) - updated
avoid_unused_constructor_parameters
to ignore unused params named in all underscores (_
)
0.1.113
- updated documentation links
one_member_abstracts
updated to not lint classes with mixins or implementing interfacesunnecessary_getters_setters
fixed to ignore cases where a getter/setter is deprecated- new lint:
leading_newlines_in_multiline_strings
- improved highlight ranges for
avoid_private_typedef_functions
and avoid_returning_null_for_future
0.1.112
- marked
prefer_typing_uninitialized_variables
and omit_local_variable_types
as compatible
0.1.111+1
- new lint:
use_raw_strings
- new lint:
unnecessary_raw_strings
- new lint:
avoid_escaping_inner_quotes
- new lint:
unnecessary_string_escapes
- incompatible rule documentation improvements
0.1.110
- fixed flutter web plugin detection in
avoid_web_libraries_in_flutter
- new lint:
unnecessary_string_interpolations
- new lint:
missing_whitespace_between_adjacent_strings
avoid_unused_constructor_parameters
updated to ignore deprecated parameters- new lint:
no_runtimeType_toString
- miscellaneous doc fixes
0.1.109
- improved
prefer_single_quotes
lint message unnecessary_finals
fixed to not flag fieldsunnecessary_lambdas
fixed to work with type arguments- (internal) migrated to use analyzer
LinterContext.resolveNameInScope()
API
0.1.108
- fixes to
avoid_redundant_argument_values
- new lint:
use_key_in_widget_constructors
always_put_required_parameters
updated for NNBD- updated to
package:analyzer
0.39.3 APIs
0.1.107
- miscellaneous doc cleanup (typos, etc)
- new lint:
avoid_redundant_argument_values
- updated
slash_for_doc_comments
to check mixin declarations - (internal) updates to use new
LinterContext.evaluateConstant
API - improved docs for
always_require_non_null_named_parameters
0.1.106
- improved docs for
comment_references
- fixed
null_closures
to properly handle Iterable.singleWhere
- (internal) migrated to latest analyzer APIs
- new lint:
no_logic_in_create_state
0.1.105+1
- fixed regressions in
always_require_non_null_named_parameters
- (internal) pedantic lint clean-up
0.1.105
- hardened check for lib dir location (fixing crashes in
avoid_renaming_method_parameters
, prefer_relative_imports
and public_member_api_docs
) - improved performance for
always_require_non_null_named_parameters
0.1.104
- updated
unnecessary_overrides
to allow overrides when annotations (besides @override
are specified) - updated
file_names
to allow names w/ leading _
's (and improved performance) - new lint:
unnecessary_final
0.1.103
- updated
prefer_relative_imports
to use a faster and more robust way to check for self-package references - updated our approach to checking for
lib
dir contents (speeding up avoid_renaming_method_parameters
and making prefer_relative_imports
and public_member_api_docs
amenable to internal package formats -- w/o pubspecs)
0.1.102
avoid_web_libraries_in_flutter
updated to disallow access from all but Flutter web plugin packages- updated
avoid_returning_null_for_void
to check only null
literals (and not expressions having Null
types) - fixed
prefer_final_fields
to respect non-mutating prefix operators - new lint:
prefer_is_not_operator
- new lint:
avoid_unnecessary_containers
- added basic nnbd-awareness to
avoid_init_to_null
0.1.101
- fixed
diagnostic_describe_all_properties
to flag properties in Diagnosticable
s with no debug methods defined - fixed
noSuchMethod
exception in camel_case_extensions
when analyzing unnamed extensions - fixed
avoid_print
to catch tear-off usage - new lint:
avoid_web_libraries_in_flutter
(experimental) - (internal) prepare
unnecessary_lambdas
for coming MethodInvocation
vs. FunctionExpressionInvocation
changes
0.1.100
- (internal) stop accessing
staticType
in favor of getting type of FormalParameter
s from the declared element - (internal) remove stale analyzer work-around for collecting
TypeParameterElement
s in prefer_const_constructors
0.1.99
- fixed unsafe cast in
overridden_fields
- (internal) migrated to the mock SDK in
package:analyzer
for testing - fixed empty argument list access in
use_full_hex_values_for_flutter_color_fix
- new lint:
prefer_relative_imports
- improved messages for
await_only_futures
0.1.98
- fixed null raw expression accesses in
use_to_and_as_if_applicable
- (internal) migrated to using analyzer
InheritanceManager3
0.1.97+1
- enabled
camel_case_extensions
experimental lint
0.1.97
- internal: migrated away from using analyzer
resolutionMap
- various fixes and improvements to anticipate support for extension-methods
- new lint:
camel_case_extensions
- rule template generation improvements
- new lint:
avoid_equals_and_hash_code_on_mutable_classes
- extended
avoid_slow_async_io
to flag async Directory
methods
0.1.96
- fixed false positives in
unnecessary_parens
- various changes to migrate to preferred analyzer APIs
- rule test fixes
0.1.95
- improvements to
unsafe_html
error reporting - fixed false positive in
prefer_asserts_in_initializer_lists
- fixed
prefer_const_constructors
to not flag @literal
annotated constructors
0.1.94
- (internal): analyzer API call updates
- (internal): implicit cast cleanup
0.1.93
0.1.92
- improved
prefer_collection_literals
to better handle LinkedHashSet
s and LinkedHashMap
s - updates to the Effective Dart rule set
- updated
prefer_final_fields
to be more inclusive - miscellaneous documentation fixes
0.1.91
- fixed missed cases in
prefer_const_constructors
- fixed
prefer_initializing_formals
to no longer suggest API breaking changes - updated
omit_local_variable_types
to allow explicit dynamic
s - (internal) migration from deprecated analyzer APIs
0.1.90
- fixed null-reference in
unrelated_type_equality_checks
- new lint:
unsafe_html
0.1.89
- broadened
prefer_null_aware_operators
to work beyond local variables - new lint:
prefer_if_null_operators
- fixed
prefer_contains
false positives - fixed
unnecessary_parenthesis
false positives
0.1.88
- fixed
prefer_asserts_in_initializer_lists
false positives - fixed
curly_braces_in_flow_control_structures
to handle more cases - new lint:
prefer_double_quotes
- new lint:
sort_child_properties_last
- fixed
type_annotate_public_apis
false positive for static const
initializers
0.1.87
- change:
prefer_const_constructors_in_immutables
is currently overly permissive, pending analyzer changes (#1537) - fixed
unnecessary_await_in_return
false positive - fixed
unrelated_type_equality_checks
false negative with functions - fixed
prefer_spread_collections
to not lint in const contexts - fixed false positive in
prefer_iterable_whereType
for is!
- fixed false positive in
prefer_collection_literals
for constructors with params
0.1.86
- updated
prefer_spread_collections
to ignore calls to addAll
that could be inlined - new lint:
prefer_inlined_adds
0.1.85
- (BREAKING) renamed
spread_collections
to prefer_spread_collections
- new lint:
prefer_for_elements_to_map_fromIterable
- new lint:
prefer_if_elements_to_conditional_expressions
- new lint:
diagnostic_describe_all_properties
0.1.84
- new lint:
spread_collections
- (internal) update to analyzer 0.36.0 APIs
- new lint:
prefer_asserts_with_message
0.1.83
- updated
file_names
to skip prefixed-extension Dart files (e.g., .css.dart
, .g.dart
) - updated SDK constraint to
2.2.0
- miscellaneous rule documentation fixes
- (internal) updated sources to use Set literals
- fixed NPE in
avoid_shadowing_type_parameters
- added linter version numbering for use in analyzer summaries
- fixed type utilities to handle inheritance cycles
- (internal) changes to adopt new
package:analyzer
APIs - fixed
unnecessary_parenthesis
false positives
0.1.82
- fixed
prefer_collection_literals
Set literal false positives - fixed
prefer_const_declarations
Set literal false positives - new lint:
provide_deprecation_message
0.1.81
- updated
prefer_collection_literals
to support Set literals
0.1.80
- deprecated
super_goes_last
- (internal) migrations to analyzer's preferred
InheritanceManager2
API
0.1.79
unnecessary_parenthesis
updated to play nicer with cascades- new lint:
use_full_hex_values_for_flutter_colors
- new lint:
prefer_null_aware_operators
- miscellaneous documentation fixes
- removed deprecated lints from the “all options” sample
- stopped registering “default lints”
hash_and_equals
fixed to respect hashCode
fields
0.1.78
- restored
prefer_final_locals
to ignore loop variables, and - introduced a new
prefer_final_in_for_each
lint to handle the for each
case
0.1.77
- updated
prefer_final_locals
to check to for loop variables - fixed
type_annotate_public_apis
false positives on local functions - fixed
avoid_shadowing_type_parameters
to report shadowed type parameters in generic typedefs - fixed
use_setters_to_change_properties
to not wrongly lint overriding methods - fixed
cascade_invocations
to not lint awaited targets - fixed
prefer_conditional_assignment
false positives - fixed
join_return_with_assignment
false positives - fixed
cascade_invocations
false positives - miscellaneous documentation improvements
- updated
invariant_booleans
status to experimental
0.1.76
unnecessary_parenthesis
updated to allow wrapping a !
argument- miscellaneous documentation grammar and spelling fixes
- improved error messages for
always_declare_return_types
- fix
prefer_final_fields
to work with classes that have generic type arguments - (internal): deprecated code cleanup
- fixed false positives in
unrelated_type_equality_checks
0.1.75
- analyzer package dependency bumped to
^0.34.0
0.1.74
- experimental lints
avoid_positional_boolean_parameters
, literal_only_boolean_expressions
, prefer_foreach
, prefer_void_to_null
promoted to stable unnecessary_parenthesis
improved to handle function expressions
0.1.73
- deprecated
prefer_bool_in_asserts
(redundant w/ Dart 2 checks) - improved doc generation to highlight deprecated and experimental lints
- bumped analyzer lower-bound to
0.33.4
- bumped SDK lower-bound to
2.1.0
- new lint:
unnecessary_await_in_return
0.1.72
- new lint:
use_function_type_syntax_for_parameters
- internal changes to migrate towards analyzer's new
LinterContext
API - fix false positive in
use_setters_to_change_properties
- implementation improvements (and speed-ups) to
prefer_foreach
and public_member_api_docs
- new lint:
avoid_returning_null_for_future
- new lint:
avoid_shadowing_type_parameters
0.1.71
- new lint:
prefer_int_literals
- update
await_only_futures
to allow awaiting on null
- update
use_setters_to_change_properties
to work with =>
short-hand
0.1.70
- fix NPE in
prefer_iterable_whereType
0.1.69
- improved message display for
await_only_futures
- performance improvements for
null_closures
- new lint:
avoid_returning_null_for_void
0.1.68
- updated analyzer compatibility to
^0.33.0
0.1.67
- miscellaneous mixin support fixes
- update to
sort_constructors_first
to apply to all members - update
unnecessary_this
to work on field initializers
0.1.66
- broadened SDK version constraint
0.1.65
- fix cast exceptions related to mixin support
0.1.64
- fixes to better support mixins
0.1.63
- updated
unawaited_futures
to ignore assignments within cascades - new lint:
sort_pub_dependencies
0.1.62
- new lint:
prefer_mixin
- new lint:
avoid_implementing_value_types
0.1.61
- new lint:
flutter_style_todos
- improved handling of constant expressions with generic type params
- NPE fix for
invariant_booleans
- Google lints example moved to
package:pedantic
- improved docs for
unawaited_futures
0.1.60
- new lint:
avoid_void_async
unawaited_futures
updated to check cascades
0.1.59
- relaxed
void_checks
(allowing T Function()
to be assigned to void Function()
) - test and build improvements
- introduced Effective Dart rule set
- Google ruleset updates
- (internal cleanup): move cli main into
lib/
- fixed false positives in
lines_longer_than_80_chars
- new lint:
prefer_void_to_null
0.1.58
- roll-back to explicit uses of
new
and const
to be compatible w/ VMs running --no-preview-dart-2
0.1.57
- fix to
lines_longer_than_80_chars
to handle CRLF endings - doc improvements
- set max SDK version to <3.0.0
- fix to
non_constant_identifier_names
to better handle invalid code - new lint:
curly_braces_in_flow_control_structures
0.1.56
- fix to
avoid_positional_boolean_parameters
to ignore overridden methods - fix to
prefer_is_empty
to not evaluate constants beyond int literals - new lint:
null_closures
- new lint:
lines_longer_than_80_chars
0.1.55
- fixed an issue in
const
error handling - updated
linter
binary to use previewDart2
0.1.54
- new
unnecessary_const
lint - new
unnecessary_new
lint - fixed errors in
use_to_and_as_if_applicable
- new
file_names
lint
0.1.53
- updated
unnecessary_statements
to ignore getters (as they may be side-effecting).
0.1.52
- fixed
void_checks
to handle arguments not resolved to a parameter - fixed exceptions produced by
prefer_const_literals_to_create_immutables
0.1.51
unrelated_type_equality_checks
now allows comparison between Int64
or Int32
and int
unnecessary_parenthesis
improved to handle cascades in cascades
0.1.50
- migration of rules to use analyzer package
NodeLintRule
and UnitLintRule
yielding significant performance gains all around - specific performance improvements for
prefer_final_fields
(~6x) - addressed no such method calls in
void_checks
- improved lint reporting for various lints
0.1.49
0.1.48
- new
avoid_field_initializers_in_const_classes
lint - miscellaneous documentation fixes
- improved handling of cascades in
unnecessary_statements
- new
avoid_js_rounded_ints
lint
0.1.47
- new
avoid_double_and_int_checks
lint - fix to handle uninitialized vars in
prefer_const_declarations
- fix for generic function type handling in
avoid_types_as_parameter_names
- new
prefer_iterable_whereType
lint - new
prefer_generic_function_type_aliases
lint - Dart 2 compatibility fixes
0.1.46
- performance fixes for library prefix testing (
library_prefixes
) - new
avoid_bool_literals_in_conditional_expressions
lint - new
prefer_equal_for_default_values
lint - new
avoid_private_typedef_functions
lint - new
avoid_single_cascade_in_expression_statements
lint
0.1.45
- fix for
invariant_booleans
when analyzing for loops with no condition - new
avoid_types_as_parameter_names
lint - new
avoid_renaming_method_parameters
lint
0.1.44
- new
avoid_relative_lib_imports
lint - new
unnecessary_parenthesis
lint - fix to
prefer_const_literals_to_create_immutables
to handle undefined classes gracefully - updates to
prefer_const_declarations
to support optional new
and const
prefer_const_declarations
updated to check locals- fixes to
invariant_booleans
- bumped SDK lower bound to
2.0.0-dev
- build and workflow improvements: rule template fixes; formatting and header validation
- miscellaneous documentation fixes
0.1.43
- new
prefer_const_declarations.dart
lint - new
prefer_const_literals_to_create_immutables
lint - miscellaneous documentation improvements
0.1.42
- added support for external constructors in
avoid_unused_constructor_parameters
- added code reference resolution docs for
comment_references
0.1.41
- broadened
args
package dependency to support versions 1.*
0.1.40
avoid_unused_constructor_parameters
updated to better handle redirecting factory constructorsavoid_returning_this
improvementsprefer_bool_in_asserts
improvements- miscellaneous documentation fixes
0.1.39
prefer_interpolation_to_compose_strings
updated to allow concatenation of two non-literal stringsprefer_interpolation_to_compose_strings
updated to allow +=
- lots of rule documentation fixes and enhancements
- fix for
prefer_const_constructors_in_immutables
false positive with redirecting factory constructors
0.1.38
public_member_api_docs
fix for package URIs
0.1.37
avoid_positional_boolean_parameters
updated to allow booleans in operator declarationscomment_references
fixed to handle incomplete referencesnon_constant_identifier_names
updated to allow underscores around numbers
0.1.36
- new
avoid_unused_constructor_parameters
lint - new
prefer_bool_in_asserts
lint - new
prefer_typing_uninitialized_variables
lint - new
unnecessary_statements
lint public_member_api_docs
updated to only lint source in lib/
- ‘avoid_empty_else’ fixed to ignore synthetic
EmptyStatement
s - updated library prefix checking to allow leading
$
s - miscellaneous documentation fixes
- Dart SDK constraints restored (removed unneeded
2.0.0-dev.infinity
constraint)
0.1.35
- linter engine updated to use new analysis driver
0.1.34
Features
non_constant_identifier_names
extended to include named constructors- SDK constraint broadened to
2.0.0-dev.infinity
- improved
prefer_final_fields
performance
Fixes
- fixes to
unnecessary_overrides
(noSuchMethod
handling, return type narrowing, special casing of documented super
calls) - fix to
non_constant_identifier_names
to handle identifiers with no name - fixes to
prefer_const_constructors
to support list literals - fixes to
recursive_getters
- fixes to
cascade_invocations
0.1.33
Features
- new
prefer_const_constructors_in_immutables
lint - new
always_put_required_named_parameters_first
lint - new
prefer_asserts_in_initializer_lists
lint - support for running in
--benchmark
mode - new
prefer_single_quote_strings
lint
Fixes
- docs for
avoid_setters_without_getters
- fix to
directives_ordering
to work with part directives located after exports - fixes to
cascade_invocations
false positives - fixes to
literal_only_boolean_expressions
false positives - fix to ensure
cascade_invocations
only lints method invocations if target is a simple identifier - fixes to
use_string_buffers
false positives - fixes to
prefer_const_constructors
0.1.32
- Lint stats (
-s
) output now sorted.
0.1.31
- New
prefer_foreach
lint. - New
use_string_buffers
rule. - New
unnecessary_overrides
rule. - New
join_return_with_assignment_when_possible
rule. - New
use_to_and_as_if_applicable
rule. - New
avoid_setters_without_getters
rule. - New
always_put_control_body_on_new_line
rule. - New
avoid_positional_boolean_parameters
rule. - New
always_require_non_null_named_parameters
rule. - New
prefer_conditional_assignment
rule. - New
avoid_types_on_closure_parameters
rule. - New
always_put_control_body_on_new_line
rule. - New
use_setters_to_change_properties
rule. - New
avoid_returning_this
rule. - New
avoid_annotating_with_dynamic_when_not_required
rule. - New
prefer_constructors_over_static_methods
rule. - New
avoid_returning_null
rule. - New
avoid_classes_with_only_static_members
rule. - New
avoid_null_checks_in_equality_operators
rule. - New
avoid_catches_without_on_clauses
rule. - New
avoid_catching_errors
rule. - New
use_rethrow_when_possible
rule. - Many lint fixes (notably
prefer_final_fields
, unnecessary_lambdas
, await_only_futures
, cascade_invocations
, avoid_types_on_closure_parameters
, and overridden_fields
). - Significant performance improvements for
prefer_interpolation_to_compose_strings
. - New
unnecessary_this
rule. - New
prefer_initializing_formals
rule.
0.1.30
- New
avoid_function_literals_in_foreach_calls
lint. - New
avoid_slow_async_io
lint. - New
cascade_invocations
lint. - New
directives_ordering
lint. - New
no_adjacent_strings_in_list
lint. - New
no_duplicate_case_values
lint. - New
omit_local_variable_types
lint. - New
prefer_adjacent_string_concatenation
lint. - New
prefer_collection_literals
lint. - New
prefer_const_constructors
lint. - New
prefer_contains
lint. - New
prefer_expression_function_bodies
lint. - New
prefer_function_declarations_over_variables
lint. - New
prefer_initializing_formals
lint. - New
prefer_interpolation_to_compose_strings
lint. - New
prefer_is_empty
lint. - New
recursive_getters
lint. - New
unnecessary_brace_in_string_interps
lint. - New
unnecessary_lambdas
lint. - New
unnecessary_null_aware_assignments
lint. - New
unnecessary_null_in_if_null_operators
lint. - Miscellaneous bug fixes and codegen improvements.
0.1.29
- New
cascade_invocations
lint. - Expand
await_only_futures
to accept classes that extend or implement Future
. - Improve camel case regular expression tests to accept
$
s. - Fixes to
parameter_assignments
(improved getter handling and an NPE).
0.1.27
- Fixed cast exception in
dart_type_utilities
(dart-lang/sdk#27405). - New
parameter_assignments
lint. - New
prefer_final_fields
lint. - New
prefer_final_locals
lint. - Markdown link fixes in docs (#306).
- Miscellaneous solo test running fixes and introduction of
solo_debug
(#304).
0.1.26
- Updated tests to use package
test
(#302).
0.1.25
- Fixed false positive on
[]=
in always_declare_return_types
(#300). - New
invariant_booleans
lint. - New
literal_only_boolean_expressions
lint. - Fixed
camel_case_types
to allow $
in identifiers (#290).
0.1.24
- Internal updates to keep up with changes in the analyzer package.
- Updated
close_sinks
to respect calls to destroy
(#282). - Fixed
only_throw_errors
to report on the expression not node.
0.1.23
- Removed
whitespace_around_ops
pending re-name and re-design (#249).
0.1.22
- Grinder support (
rule:rule_name
and docs:location
) for rule stub and doc generation (respectively). - Fix to allow leading underscores in
non_constant_identifier_names
. - New
valid_regexps
lint (#277). - New
whitespace_around_ops
lint (#249). - Fix to
overridden_fields
to flag overridden static fields (#274). - New
list_remove_unrelated_type
to detect passing a non-T
value to `List.remove()`` (#271). - New
empty_catches
lint to catch empty catch blocks (#43). - Fixed
close_sinks
false positive (#268). linter
support for --strong
to allow for running linter in strong mode.
0.1.21
- New
only_throw_errors
lint. - New lint to check for
empty_statements
(#259). - Fixed NSME when file contents cannot be read (#260).
- Fixed unsafe cast in
iterable_contains_unrelated_type
(#267).
0.1.20
- New
cancel_subscriptions
lint.
0.1.19
- New
close_sinks
lint. - Fixes to
iterable_contains_unrelated_type
.
0.1.18
- Fix NSME in
iterable_contains_unrelated_type
(#245). - Fixed typo in
comment_references
error description. - Fix
overriden_field
false positive (#246). - Rename linter binary
lints
option to rules
(#248). - Help doc tweaks.
0.1.17
- Fix to
public_member_api_docs
to check for documented getters when checking setters (#237). - New
iterable_contains_unrelated_type
lint to detect when Iterable.contains
is invoked with an object of an unrelated type. - New
comment_references
lint to ensure identifiers referenced in docs are in scope (#240).
0.1.16
- Fix for false positive in
overriden_field
s. - New
unrelated_type_equality_checks
lint. - Fix to accept
$
identifiers in string interpolation lint (#214). - Update to new
plugin
API (0.2.0
). - Strong mode cleanup.
0.1.15
- Fix to allow simple getter/setters when a decl is ``@protected` (#215).
- Fix to not require type params in
is
checks (#227). - Fix to not flag field formal identifiers in parameters (#224).
- Fix to respect filters when calculating error codes (#198).
- Fix to allow
const
and final
vars to be initialized to null (#210). - Fix to respect commented blocks in
empty_constructor_bodies
(#209). - Fix to check types on list/map literals (#199).
- Fix to skip
main
when checking for API docs (#207). - Fix to allow leading
$
in type names (#220). - Fix to ignore private typedefs when checking for types (#216).
- New
test_types_in_equals
lint. - New
await_only_futures
lint. - New
throw_in_finally
lint. - New
control_flow_in_finally
lint.
0.1.14
- Fix to respect
@optionalTypeArgs
(#196). - Lint to warn if a field overrides or hides other field.
- Fix to allow single char UPPER_CASE non-constants (#201).
- Fix to accept casts to dynamic (#195).
0.1.13
- Fix to skip overriding members in API doc checks (
public_member_api_docs
). - Fix to suppress lints on synthetic nodes/tokens (#193).
- Message fixes (
annotate_overrides
, public_member_api_docs
). - Fix to exclude setters from return type checks (#192).
0.1.12
- Fix to address
LibraryNames
regexp that in pathological cases went exponential.
0.1.11
- Doc generation improvements (now with options samples).
- Lint to sort unnamed constructors first (#187).
- Lint to ensure public members have API docs (#188).
- Lint to ensure constructors are sorted first (#186).
- Lint for
hashCode
and ==
(#168). - Lint to detect un-annotated overrides (#167).
- Fix to ignore underscores in public APIs (#153).
- Lint to check for return types on setters (#122).
- Lint to flag missing type params (#156).
- Lint to avoid inits to
null
(#160).
0.1.10
- Updated to use
analyzer
0.27.0
. - Updated options processing to handle untyped maps (dart-lang/sdk#25126).
0.1.9
- Fix
type_annotate_public_apis
to properly handle getters/setters (#151; dart-lang/sdk#25092).
0.1.8
- Fix to protect against errors in linting invalid source (dart-lang/sdk#24910).
- Added
avoid_empty_else
lint rule (dart-lang/sdk#224936).
0.1.7
- Fix to
package_api_docs
(dart-lang/sdk#24947; #154).
0.1.6
- Fix to
package_prefixed_library_names
(dart-lang/sdk#24947; #154).
0.1.5
- Added
prefer_is_not_empty
lint rule (#143). - Added
type_annotate_public_apis
lint rule (#24). - Added
avoid_as
lint rule (#145). - Fixed
non_constant_identifier_names
rule to special case underscore identifiers in callbacks. - Fix to escape
_
s in callback type validation (addresses false positives in always_specify_types
) (#147).
0.1.4
- Added
always_declare_return_types
lint rule (#146). - Improved
always_specify_types
to detect missing types in declared identifiers and narrowed source range to the token. - Added
implementation_imports
lint rule (#33). - Test performance improvements.
0.1.3+5
- Added
always_specify_types
lint rule (#144).
0.1.3+4
- Fixed linter registry memory leaks.
0.1.3
- Fixed various options file parsing issues.
0.1.2
- Fixed false positives in
unnecessary_brace_in_string_interp
lint. Fix #112.
0.1.1
- Internal code and dependency constraint cleanup.
0.1.0
0.0.2+1
- Added machine output option. Fix #69.
- Fixed resolution of files in
lib/
to use a package:
URI. Fix #49. - Tightened up
analyzer
package constraints. - Fixed false positives in
one_member_abstracts
lint. Fix #64.
0.0.2