fast_equatable_lint 0.3.0 copy "fast_equatable_lint: ^0.3.0" to clipboard
fast_equatable_lint: ^0.3.0 copied to clipboard

This is a set of rules to make classes using FastEquatable more maintainable. We validate that every fields in an FastEquatable class is linked to the hashParameters getter.

1
likes
140/ 160
pub points
43
downloads

We analyzed this package 14 days ago, and awarded it 140 pub points (of a possible 160):

OK
Follow Dart file conventions
30 / 30trigger folding of the section

10/10 points: Provide a valid pubspec.yaml

5/5 points: Provide a valid README.md

5/5 points: Provide a valid CHANGELOG.md

10/10 points: Use an OSI-approved license

Detected license: MIT.

OK
Provide documentation
20 / 20trigger folding of the section

10/10 points: 20% or more of the public API has dartdoc comments

5 out of 7 API elements (71.4 %) have documentation comments.

Some symbols that are missing documentation: const, fast_equatable_lint.

10/10 points: Package has an example

failed
Platform support
20 / 20trigger folding of the section

20/20 points: Supports 5 of 6 possible platforms (iOS, Android, Web, Windows, macOS, Linux)

  • ✓ Android

  • ✓ iOS

  • ✓ Windows

  • ✓ Linux

  • ✓ macOS

These platforms are not supported:

Package not compatible with platform Web

Because:

  • package:fast_equatable_lint/fast_equatable_lint.dart that imports:
  • package:fast_equatable_lint/src/lints/missing_field_in_equatable_props/missing_field_in_equatable_props.dart that imports:
  • package:fast_equatable_lint/src/lints/missing_field_in_equatable_props/helpers/add_equatable_class_field_declaration_listener.dart that imports:
  • package:fast_equatable_lint/src/helpers/get_equatable_props_expression_infos.dart that imports:
  • package:analyzer/dart/ast/ast.dart that imports:
  • package:analyzer/src/dart/ast/ast.dart that imports:
  • package:analyzer/src/utilities/extensions/element.dart that imports:
  • package:analyzer/src/dart/element/member.dart that imports:
  • package:analyzer/src/generated/utilities_dart.dart that imports:
  • package:analyzer/src/dart/element/element.dart that imports:
  • package:analyzer/src/summary2/reference.dart that imports:
  • package:analyzer/dart/element/element2.dart that imports:
  • package:analyzer/src/dart/resolver/scope.dart that imports:
  • package:analyzer/src/generated/engine.dart that imports:
  • package:analyzer/error/listener.dart that imports:
  • package:analyzer/src/dart/element/type.dart that imports:
  • package:analyzer/src/dart/element/type_system.dart that imports:
  • package:analyzer/src/generated/inference_log.dart that imports:
  • package:analyzer/src/generated/resolver.dart that imports:
  • package:analyzer/src/util/ast_data_extractor.dart that imports:
  • package:analyzer/dart/element/element.dart that imports:
  • package:analyzer/src/dart/constant/evaluation.dart that imports:
  • package:analyzer/src/dart/element/type_algebra.dart that imports:
  • package:analyzer/src/summary2/record_type_builder.dart that imports:
  • package:analyzer/src/dart/element/type_visitor.dart that imports:
  • package:analyzer/src/summary2/named_type_builder.dart that imports:
  • package:analyzer/src/summary2/link.dart that imports:
  • package:analyzer/src/summary2/top_level_inference.dart that imports:
  • package:analyzer/src/summary2/library_builder.dart that imports:
  • package:analyzer/src/summary2/macro_application.dart that imports:
  • package:analyzer/src/summary2/macro_declarations.dart that imports:
  • package:analyzer/src/summary2/linked_element_factory.dart that imports:
  • package:analyzer/src/summary2/macro.dart that imports:
  • package:macros/src/executor/process_executor.dart that imports:
  • package:_macros/src/executor/process_executor.dart that imports:
  • package:_macros/src/executor/executor_base.dart that imports:
  • dart:isolate

0/0 points: WASM compatibility

Package not compatible with runtime wasm

Because:

  • package:fast_equatable_lint/fast_equatable_lint.dart that imports:
  • package:fast_equatable_lint/src/lints/missing_field_in_equatable_props/missing_field_in_equatable_props.dart that imports:
  • package:fast_equatable_lint/src/lints/missing_field_in_equatable_props/helpers/add_equatable_class_field_declaration_listener.dart that imports:
  • package:fast_equatable_lint/src/helpers/get_equatable_props_expression_infos.dart that imports:
  • package:analyzer/dart/ast/ast.dart that imports:
  • package:analyzer/src/dart/ast/ast.dart that imports:
  • package:analyzer/src/utilities/extensions/element.dart that imports:
  • package:analyzer/src/dart/element/member.dart that imports:
  • package:analyzer/src/generated/utilities_dart.dart that imports:
  • package:analyzer/src/dart/element/element.dart that imports:
  • package:analyzer/src/summary2/reference.dart that imports:
  • package:analyzer/dart/element/element2.dart that imports:
  • package:analyzer/src/dart/resolver/scope.dart that imports:
  • package:analyzer/src/generated/engine.dart that imports:
  • package:analyzer/error/listener.dart that imports:
  • package:analyzer/src/dart/element/type.dart that imports:
  • package:analyzer/src/dart/element/type_system.dart that imports:
  • package:analyzer/src/generated/inference_log.dart that imports:
  • package:analyzer/src/generated/resolver.dart that imports:
  • package:analyzer/src/util/ast_data_extractor.dart that imports:
  • package:analyzer/dart/element/element.dart that imports:
  • package:analyzer/src/dart/constant/evaluation.dart that imports:
  • package:analyzer/src/dart/element/type_algebra.dart that imports:
  • package:analyzer/src/summary2/record_type_builder.dart that imports:
  • package:analyzer/src/dart/element/type_visitor.dart that imports:
  • package:analyzer/src/summary2/named_type_builder.dart that imports:
  • package:analyzer/src/summary2/link.dart that imports:
  • package:analyzer/src/summary2/top_level_inference.dart that imports:
  • package:analyzer/src/summary2/library_builder.dart that imports:
  • package:analyzer/src/summary2/macro_application.dart that imports:
  • package:analyzer/src/summary2/macro_declarations.dart that imports:
  • package:analyzer/src/summary2/linked_element_factory.dart that imports:
  • package:analyzer/src/summary2/macro.dart that imports:
  • package:macros/src/executor/process_executor.dart that imports:
  • package:_macros/src/executor/process_executor.dart that imports:
  • package:_macros/src/executor/executor_base.dart that imports:
  • dart:isolate

This package is not compatible with runtime wasm, and will not be rewarded full points in a future version of the scoring model.

See https://dart.dev/web/wasm for details.

partial
Pass static analysis
40 / 50trigger folding of the section

40/50 points: code has no errors, warnings, lints, or formatting issues

INFO: 'reportErrorForNode' is deprecated and shouldn't be used. Use atNode() instead.

lib/src/lints/always_call_super_props_when_overriding_equatable_props/always_call_super_props_when_overriding_equatable_props.dart:29:16

   ╷
29 │       reporter.reportErrorForNode(_code, equatablePropsClassMember);
   │                ^^^^^^^^^^^^^^^^^^
   ╵

To reproduce make sure you are using the lints_core and run dart analyze lib/src/lints/always_call_super_props_when_overriding_equatable_props/always_call_super_props_when_overriding_equatable_props.dart

INFO: 'reportErrorForNode' is deprecated and shouldn't be used. Use atNode() instead.

lib/src/lints/missing_field_in_equatable_props/missing_field_in_equatable_props.dart:42:18

   ╷
42 │         reporter.reportErrorForNode(_code, fieldNode);
   │                  ^^^^^^^^^^^^^^^^^^
   ╵

To reproduce make sure you are using the lints_core and run dart analyze lib/src/lints/missing_field_in_equatable_props/missing_field_in_equatable_props.dart

OK
Support up-to-date dependencies
30 / 40trigger folding of the section

0/10 points: All of the package dependencies are supported in the latest version

Package Constraint Compatible Latest
analyzer ^6.3.0 6.11.0 7.1.0
analyzer_plugin ^0.11.2 0.11.3 0.12.0
collection ^1.16.0 1.19.1 1.19.1
custom_lint_builder ^0.6.4 0.6.10 0.7.0
fast_equatable ^1.1.0 1.1.0 1.1.0
source_gen ^1.2.7 1.5.0 2.0.0
Transitive dependencies
Package Constraint Compatible Latest
_fe_analyzer_shared - 76.0.0 78.0.0
_macros - 0.3.3 0.3.3
args - 2.6.0 2.6.0
async - 2.12.0 2.12.0
boolean_selector - 2.1.2 2.1.2
build - 2.4.2 2.4.2
checked_yaml - 2.0.3 2.0.3
ci - 0.1.0 0.1.0
cli_util - 0.4.2 0.4.2
convert - 3.1.2 3.1.2
crypto - 3.0.6 3.0.6
custom_lint - 0.6.10 0.7.0
custom_lint_core - 0.6.10 0.7.0
dart_style - 2.3.7 3.0.1
file - 7.0.1 7.0.1
fixnum - 1.1.1 1.1.1
freezed_annotation - 2.4.4 2.4.4
glob - 2.1.2 2.1.2
hotreloader - 4.2.0 4.2.0
json_annotation - 4.9.0 4.9.0
logging - 1.3.0 1.3.0
macros - 0.1.3-main.0 0.1.3-main.0
matcher - 0.12.17 0.12.17
meta - 1.16.0 1.16.0
package_config - 2.1.1 2.1.1
path - 1.9.1 1.9.1
pub_semver - 2.1.5 2.1.5
pubspec_parse - 1.4.0 1.4.0
rxdart - 0.28.0 0.28.0
source_span - 1.10.1 1.10.1
sprintf - 7.0.0 7.0.0
stack_trace - 1.12.1 1.12.1
stream_channel - 2.1.3 2.1.3
stream_transform - 2.1.1 2.1.1
string_scanner - 1.4.1 1.4.1
term_glyph - 1.2.2 1.2.2
test_api - 0.7.4 0.7.4
typed_data - 1.4.0 1.4.0
uuid - 4.5.1 4.5.1
vm_service - 14.3.1 15.0.0
watcher - 1.1.1 1.1.1
yaml - 3.1.3 3.1.3

To reproduce run dart pub outdated --no-dev-dependencies --up-to-date --no-dependency-overrides.

Found 4 issues. Showing the first 2:

The constraint `^6.3.0` on analyzer does not support the stable version `7.0.0`.

Try running dart pub upgrade --major-versions analyzer to update the constraint.

The constraint `^0.11.2` on analyzer_plugin does not support the stable version `0.12.0`, that was published 17 days ago.

When analyzer_plugin is 30 days old, this package will no longer be awarded points in this category.

Try running dart pub upgrade --major-versions analyzer_plugin to update the constraint.

10/10 points: Package supports latest stable Dart and Flutter SDKs

20/20 points: Compatible with dependency constraint lower bounds

pub downgrade does not expose any static analysis error.

Analyzed with Pana 0.22.17, Dart 3.6.0.

Check the analysis log for details.

1
likes
140
points
43
downloads

Publisher

verified publisherfabi.online

Weekly Downloads

This is a set of rules to make classes using FastEquatable more maintainable. We validate that every fields in an FastEquatable class is linked to the hashParameters getter.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

analyzer, analyzer_plugin, collection, custom_lint_builder, fast_equatable, source_gen

More

Packages that depend on fast_equatable_lint