diff --git a/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart index 0fab9d39837b7..6f59dedea07ef 100644 --- a/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart +++ b/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart @@ -193,10 +193,14 @@ class FlowAnalysisHelper { } void labeledStatement_enter(LabeledStatement node) { + if (flow == null) return; + flow.labeledStatement_begin(node); } void labeledStatement_exit(LabeledStatement node) { + if (flow == null) return; + flow.labeledStatement_end(); } diff --git a/pkg/analyzer/test/generated/invalid_code_test.dart b/pkg/analyzer/test/generated/invalid_code_test.dart index 21c3cc9f5c32f..1ba274c5482fa 100644 --- a/pkg/analyzer/test/generated/invalid_code_test.dart +++ b/pkg/analyzer/test/generated/invalid_code_test.dart @@ -395,6 +395,13 @@ var v = (); '''); } + test_inAnnotation_noFlow_labeledStatement() async { + await _assertCanBeAnalyzed(''' +@A(() { label: }) +typedef F = void Function(); +'''); + } + test_inDefaultValue_noFlow_ifExpression() async { await _assertCanBeAnalyzed(''' typedef void F({a = [if (true) 0]});