void test(){
int a = 10;
switch(a) {
case 0: // looks OK
break;
case 0: // not OK, it should show syntax error
break;
}
}
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, v1.3.13, on Mac OS X 10.14 18A389, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
[✓] Android Studio (version 3.3)
[✓] Connected device (1 available)
• No issues found!
In Dart, that's not a syntax error... The no_duplicate_case_values lint flags the issue though.
Do you have any lints enabled in your project analysis_options.yaml? (Some details in the analysis options docs.)
@pq I don't have anything like no_duplicate_case_values in my analysis_options_user.yaml file. Please take a look here.
analyzer:
errors:
# treat missing required parameters as a warning (not a hint)
missing_required_param: warning
linter:
rules:
# these rules are documented on and in the same order as
# the Dart Lint rules page to make maintenance easier
# https://github.com/dart-lang/linter/blob/master/example/all.yaml
# - always_declare_return_types
# - always_specify_types
# - annotate_overrides
# - avoid_as
- avoid_empty_else
- avoid_init_to_null
- avoid_return_types_on_setters
- await_only_futures
- camel_case_types
- cancel_subscriptions
- close_sinks
# - comment_references # we do not presume as to what people want to reference in their dartdocs
# - constant_identifier_names # https://github.com/dart-lang/linter/issues/204
- control_flow_in_finally
- empty_constructor_bodies
- empty_statements
- hash_and_equals
- implementation_imports
# - invariant_booleans
# - iterable_contains_unrelated_type
- library_names
# - library_prefixes
# - list_remove_unrelated_type
# - literal_only_boolean_expressions
- non_constant_identifier_names
# - one_member_abstracts
# - only_throw_errors
# - overridden_fields
- package_api_docs
- package_names
- package_prefixed_library_names
- prefer_is_not_empty
# - prefer_mixin # https://github.com/dart-lang/language/issues/32
# - public_member_api_docs
- slash_for_doc_comments
# - sort_constructors_first
# - sort_unnamed_constructors_first
# - super_goes_last # no longer needed w/ Dart 2
- test_types_in_equals
- throw_in_finally
# - type_annotate_public_apis # subset of always_specify_types
- type_init_formals
# - unawaited_futures
# - unnecessary_brace_in_string_interps
- unnecessary_getters_setters
- unnecessary_statements
- unrelated_type_equality_checks
- valid_regexps
Perfect. If you add a line to the rules: list,
- no_duplicate_case_values
you should be good to go!
Did the trick. Thank you :)
Edit: I wonder why it wasn't included in the file by default, and if I need to find more rules like this, where can I find them?
You're welcome!
Edit: I wonder why it wasn't included in the file by default, and if I need to find more rules like this, where can I find them?
It looks like you derived your rules from Flutter project defaults. That list is curated by the Flutter team and is based off the lints available a while back. My guess is it's just fallen behind.
/cc @a14n
Most helpful comment
Perfect. If you add a line to the
rules:list,- no_duplicate_case_valuesyou should be good to go!