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 with NoSuchMethodError #41780

Closed
sgrekhov opened this issue May 6, 2020 · 2 comments
Closed

Analyzer crashes with NoSuchMethodError #41780

sgrekhov opened this issue May 6, 2020 · 2 comments
Assignees
Labels
area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. crash Process exits with SIGSEGV, SIGABRT, etc. An unhandled exception is not a crash. NNBD Issues related to NNBD Release

Comments

@sgrekhov
Copy link
Contributor

sgrekhov commented May 6, 2020

Run analyzer with --enable-experiment=non-nullable on the following code

class C {
}

extension Ext on C {
  int operator [](int index) => index;
}

main() {
  C c = C();
  Ext(c)?.[42];
}

the result is

Unhandled exception:
NoSuchMethodError: The getter 'isDartCoreNull' was called on null.
Receiver: null
Tried calling: isDartCoreNull
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
#1      TypeSystem.promoteToNonNull (package:analyzer/src/generated/type_system.dart:300:14)
#2      ElementResolver.visitIndexExpression (package:analyzer/src/generated/element_resolver.dart:415:32)
#3      IndexExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5957:49)
#4      ResolverVisitor.visitIndexExpression (package:analyzer/src/generated/resolver.dart:1314:10)
#5      IndexExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5957:49)
#6      ExpressionStatementImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:3708:18)
#7      ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1454:10)
#8      UnifyingAstVisitor.visitExpressionStatement (package:analyzer/dart/ast/visitor.dart:3214:59)
#9      ExpressionStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:3704:49)
#10     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7588:20)
#11     BlockImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1085:17)
#12     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1454:10)
#13     UnifyingAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:3128:31)
#14     ScopedVisitor.visitBlock (package:analyzer/src/generated/resolver.dart:2230:13)
#15     BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1081:49)
#16     BlockFunctionBodyImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1040:13)
#17     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1454:10)
#18     UnifyingAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:3131:55)
#19     ScopedVisitor.visitBlockFunctionBody (package:analyzer/src/generated/resolver.dart:2241:13)
#20     ResolverVisitor.visitBlockFunctionBody (package:analyzer/src/generated/resolver.dart:717:13)
#21     BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1036:49)
#22     FunctionExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5008:12)
#23     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1454:10)
#24     UnifyingAstVisitor.visitFunctionExpression (package:analyzer/dart/ast/visitor.dart:3263:57)
#25     ScopedVisitor.visitFunctionExpression (package:analyzer/src/generated/resolver.dart:2579:13)
#26     ResolverVisitor.visitFunctionExpression (package:analyzer/src/generated/resolver.dart:1174:11)
#27     FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5002:49)
#28     FunctionDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4865:26)
#29     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1454:10)
#30     UnifyingAstVisitor.visitFunctionDeclaration (package:analyzer/dart/ast/visitor.dart:3256:59)
#31     ScopedVisitor.visitFunctionDeclarationInScope (package:analyzer/src/generated/resolver.dart:2572:11)
#32     ResolverVisitor.visitFunctionDeclarationInScope (package:analyzer/src/generated/resolver.dart:1140:11)
#33     ScopedVisitor.visitFunctionDeclaration (package:analyzer/src/generated/resolver.dart:2565:7)
#34     ResolverVisitor.visitFunctionDeclaration (package:analyzer/src/generated/resolver.dart:1112:11)
#35     FunctionDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:4858:49)
#36     ResolverVisitor.visitCompilationUnit (package:analyzer/src/generated/resolver.dart:814:23)
#37     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2127:49)
#38     LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:734:10)
#39     LibraryAnalyzer.analyzeSync.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:148:7)
#40     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:379:8)
#41     LibraryAnalyzer.analyzeSync (package:analyzer/src/dart/analysis/library_analyzer.dart:147:11)
#42     LibraryAnalyzer.analyze.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:116:14)
#43     _PerformanceTagImpl.makeCurrentWhile (package:analyzer/src/generated/utilities_general.dart:256:15)
#44     LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:115:43)
#45     AnalysisDriver._computeAnalysisResult2.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1313:63)
#46     PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:34:15)
#47     AnalysisDriver._computeAnalysisResult2 (package:analyzer/src/dart/analysis/driver.dart:1289:20)
#48     AnalysisDriver._computeAnalysisResult.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1240:14)
#49     _rootRun (dart:async/zone.dart:1184:13)
#50     _CustomZone.run (dart:async/zone.dart:1077:19)
#51     _runZoned (dart:async/zone.dart:1619:10)
#52     runZoned (dart:async/zone.dart:1539:10)
#53     NullSafetyUnderstandingFlag.enableNullSafetyTypes (package:analyzer/dart/element/null_safety_understanding_flag.dart:42:12)
#54     AnalysisDriver._computeAnalysisResult (package:analyzer/src/dart/analysis/driver.dart:1239:40)
#55     AnalysisDriver.getErrors (package:analyzer/src/dart/analysis/driver.dart:565:41)
#56     AnalyzerImpl.prepareErrors (package:analyzer_cli/src/analyzer_impl.dart:129:49)
<asynchronous suspension>
#57     AnalyzerImpl._analyze (package:analyzer_cli/src/analyzer_impl.dart:168:11)
<asynchronous suspension>
#58     AnalyzerImpl.analyze (package:analyzer_cli/src/analyzer_impl.dart:105:18)
<asynchronous suspension>
#59     Driver._runAnalyzer (package:analyzer_cli/src/driver.dart:636:21)
#60     Driver._analyzeAllImpl (package:analyzer_cli/src/driver.dart:353:30)
#61     _RootZone.runUnary (dart:async/zone.dart:1439:54)
#62     _FutureListener.handleValue (dart:async/future_impl.dart:141:18)
#63     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:686:45)
#64     Future._propagateToListeners (dart:async/future_impl.dart:715:32)
#65     Future._addListener.<anonymous closure> (dart:async/future_impl.dart:391:9)
#66     _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
#67     _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
#68     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)
#69     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:169:5)

#0      AnalysisDriver._computeAnalysisResult2.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1349:9)
#1      PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:34:15)
#2      AnalysisDriver._computeAnalysisResult2 (package:analyzer/src/dart/analysis/driver.dart:1289:20)
#3      AnalysisDriver._computeAnalysisResult.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1240:14)
#4      _rootRun (dart:async/zone.dart:1184:13)
#5      _CustomZone.run (dart:async/zone.dart:1077:19)
#6      _runZoned (dart:async/zone.dart:1619:10)
#7      runZoned (dart:async/zone.dart:1539: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:1239:40)
#10     AnalysisDriver.getErrors (package:analyzer/src/dart/analysis/driver.dart:565:41)
#11     AnalyzerImpl.prepareErrors (package:analyzer_cli/src/analyzer_impl.dart:129:49)
<asynchronous suspension>
#12     AnalyzerImpl._analyze (package:analyzer_cli/src/analyzer_impl.dart:168:11)
<asynchronous suspension>
#13     AnalyzerImpl.analyze (package:analyzer_cli/src/analyzer_impl.dart:105:18)
<asynchronous suspension>
#14     Driver._runAnalyzer (package:analyzer_cli/src/driver.dart:636:21)
#15     Driver._analyzeAllImpl (package:analyzer_cli/src/driver.dart:353:30)
#16     _RootZone.runUnary (dart:async/zone.dart:1439:54)
#17     _FutureListener.handleValue (dart:async/future_impl.dart:141:18)
#18     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:686:45)
#19     Future._propagateToListeners (dart:async/future_impl.dart:715:32)
#20     Future._addListener.<anonymous closure> (dart:async/future_impl.dart:391:9)
#21     _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
#22     _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
#23     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)
#24     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:169:5)

Tested with dartanalyzer version 2.9.0-5.0.dev

@mit-mit mit-mit added the area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. label May 12, 2020
@srawlins srawlins added crash Process exits with SIGSEGV, SIGABRT, etc. An unhandled exception is not a crash. NNBD Issues related to NNBD Release labels Jun 11, 2020
@srawlins
Copy link
Member

CC @scheglov

@scheglov scheglov self-assigned this Jun 12, 2020
@scheglov
Copy link
Contributor

dart-bot pushed a commit that referenced this issue Jun 15, 2020
Bug: #41780
Change-Id: Ib5d11000847434c679df1ec882ee6d9777670fe0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151097
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
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. crash Process exits with SIGSEGV, SIGABRT, etc. An unhandled exception is not a crash. NNBD Issues related to NNBD Release
Projects
None yet
Development

No branches or pull requests

4 participants