Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Analyzer crashes when @required used in typedef for closure #44220

Closed
drekka opened this issue Nov 16, 2020 · 2 comments
Closed

Analyzer crashes when @required used in typedef for closure #44220

drekka opened this issue Nov 16, 2020 · 2 comments
Assignees
Labels
area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. P1 A high priority bug; for example, a single project is unusable or has many test failures type-bug Incorrect behavior (everything from a crash to more subtle misbehavior)

Comments

@drekka
Copy link

drekka commented Nov 16, 2020

Thank you for taking the time to file an issue!

Dart: 2.12.0-31.0.dev (dev) (Mon Nov 9 16:07:01 2020 -0800) on "macos_x64"
Flutter: 1.24.0-8.0.pre.180 • channel master
Android studio: 4.1.1

If I declare a typedef like this with @required on the function argument:

typedef GroupedByDateRecordWidgetBuilder<Item> = Widget Function(@required Item);

Then the analyser crashes:

500 Oops

NoSuchMethodError: The getter 'name' was called on null. Receiver: null Tried calling: name 
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5) 
#1 BestPracticesVerifier._checkRequiredParameter (package:analyzer/src/error/best_practices_verifier.dart:1369:29) 
#2 BestPracticesVerifier.visitFormalParameterList (package:analyzer/src/error/best_practices_verifier.dart:411:5) 
#3 FormalParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:4455:49) 
#4 GenericFunctionTypeImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5356:18) 
#5 RecursiveAstVisitor.visitGenericFunctionType (package:analyzer/dart/ast/visitor.dart:953:10) 
#6 BestPracticesVerifier.visitGenericFunctionType (package:analyzer/src/error/best_practices_verifier.dart:487:11) 
#7 GenericFunctionTypeImpl.accept (package:analyzer/src/dart/ast/ast.dart:5349:20) 
#8 GenericTypeAliasImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5432:20) 
#9 RecursiveAstVisitor.visitGenericTypeAlias (package:analyzer/dart/ast/visitor.dart:959:10) 
#10 BestPracticesVerifier.visitGenericTypeAlias (package:analyzer/src/error/best_practices_verifier.dart:496:11) 
#11 GenericTypeAliasImpl.accept (package:analyzer/src/dart/ast/ast.dart:5424:20) 
#12 NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7544:20) 
#13 CompilationUnitImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:2119:21) 
#14 RecursiveAstVisitor.visitCompilationUnit (package:analyzer/dart/ast/visitor.dart:731:10) 
#15 CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2112:49) 
#16 LibraryAnalyzer._computeHints (package:analyzer/src/dart/analysis/library_analyzer.dart:282:10) 
#17 LibraryAnalyzer.analyzeSync.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:167:9) 
#18 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8) 
#19 LibraryAnalyzer.analyzeSync (package:analyzer/src/dart/analysis/library_analyzer.dart:166:13) 
#20 LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:107:12) 
#21 AnalysisDriver._computeAnalysisResult2.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1317:63) 
#22 PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:32:15) 
#23 AnalysisDriver._computeAnalysisResult2 (package:analyzer/src/dart/analysis/driver.dart:1294:20) 
#24 AnalysisDriver._computeAnalysisResult.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1247:14) 
#25 _rootRun (dart:async/zone.dart:1190:13) 
#26 _CustomZone.run (dart:async/zone.dart:1093:19) 
#27 _runZoned (dart:async/zone.dart:1630:10) 
#28 runZoned (dart:async/zone.dart:1550:10) 
#29 NullSafetyUnderstandingFlag.enableNullSafetyTypes (package:analyzer/dart/element/null_safety_understanding_flag.dart:42:12) 
#30 AnalysisDriver._computeAnalysisResult (package:analyzer/src/dart/analysis/driver.dart:1246:40) 
#31 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:932:33) 
#32 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2013:24) <asynchronous suspension>

#0      AnalysisDriver._computeAnalysisResult2.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1347:9)
#1      PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:32:15)
#2      AnalysisDriver._computeAnalysisResult2 (package:analyzer/src/dart/analysis/driver.dart:1294:20)
#3      AnalysisDriver._computeAnalysisResult.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1247:14)
#4      _rootRun (dart:async/zone.dart:1190:13)
#5      _CustomZone.run (dart:async/zone.dart:1093:19)
#6      _runZoned (dart:async/zone.dart:1630:10)
#7      runZoned (dart:async/zone.dart:1550:10)
#8      NullSafetyUnderstandingFlag.enableNullSafetyTypes (package:analyzer/dart/element/null_safety_understanding_flag.dart:42:12)
#9      AnalysisDriver._computeAnalysisResult (package:analyzer/src/dart/analysis/driver.dart:1246:40)
#10     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:932:33)
#11     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2013:24)
<asynchronous suspension>

@lrhn lrhn added area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. type-bug Incorrect behavior (everything from a crash to more subtle misbehavior) labels Nov 16, 2020
@scheglov scheglov added the P1 A high priority bug; for example, a single project is unusable or has many test failures label Nov 16, 2020
@scheglov scheglov self-assigned this Nov 16, 2020
@scheglov
Copy link
Contributor

dart-bot pushed a commit that referenced this issue Nov 16, 2020
…ericFunctionType.

Bug: #44220
Change-Id: I7a88a8b34fbda140ab12e6861c0b00a5e5c420b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/172360
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
@drekka
Copy link
Author

drekka commented Nov 18, 2020

Cool. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. P1 A high priority bug; for example, a single project is unusable or has many test failures type-bug Incorrect behavior (everything from a crash to more subtle misbehavior)
Projects
None yet
Development

No branches or pull requests

3 participants