Sdk: Exception NoSuchMethodError: The getter 'type' was called on null from analysis server (running from VSCode / Dart Code)

Created on 27 Jun 2017  路  5Comments  路  Source: dart-lang/sdk

What I was doing

I don't remember exactly. But nothing special just navigating through the code.

Versions

  • Dart SDK 1.24.1
  • Visual Studio Code 1.13.1
  • Dart Code 1.4.2

Analyzer Info

The analyzer was launched with the arguments:

--client-id=DanTup.dart-code
--client-version=1.4.2

Exception

Analysis failed: /home/dmitryivanov/Repositories/workspace/assets/lib/component/view/dashboards/widget_config_form_loader.dart context: exception_20170626_200534_777

NoSuchMethodError: The getter 'type' was called on null.
Receiver: null
Tried calling: type
#0      Object._noSuchMethod (dart:core-patch/object_patch.dart:43)
#1      Object.noSuchMethod (dart:core-patch/object_patch.dart:47)
#2      ElementResolver.visitMethodInvocation (package:analyzer/src/generated/element_resolver.dart:632)
#3      MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:7657)
#4      ResolverVisitor.visitMethodInvocation (package:analyzer/src/generated/resolver.dart:6224)
#5      MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:7657)
#6      AwaitExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1091)
#7      ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:6239)
#8      UnifyingAstVisitor.visitAwaitExpression (package:analyzer/dart/ast/visitor.dart:2913)
#9      ResolverVisitor.visitAwaitExpression (package:analyzer/src/generated/resolver.dart:5471)
#10     AwaitExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:1087)
#11     ExpressionStatementImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4261)
#12     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:6239)
#13     UnifyingAstVisitor.visitExpressionStatement (package:analyzer/dart/ast/visitor.dart:3005)
#14     ExpressionStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:4257)
#15     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:8052)
#16     BlockImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1358)
#17     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:6239)
#18     UnifyingAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:2919)
#19     ScopedVisitor.visitBlock (package:analyzer/src/generated/resolver.dart:7258)
#20     BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1354)
#21     BlockFunctionBodyImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1302)
#22     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:6239)
#23     UnifyingAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:2922)
#24     ScopedVisitor.visitBlockFunctionBody (package:analyzer/src/generated/resolver.dart:7270)
#25     ResolverVisitor.visitBlockFunctionBody (package:analyzer/src/generated/resolver.dart:5542)
#26     BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1298)
#27     MethodDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:7544)
#28     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:6239)
#29     UnifyingAstVisitor.visitMethodDeclaration (package:analyzer/dart/ast/visitor.dart:3106)
#30     ScopedVisitor.visitMethodDeclarationInScope (package:analyzer/src/generated/resolver.dart:7728)
#31     ResolverVisitor.visitMethodDeclarationInScope (package:analyzer/src/generated/resolver.dart:6212)
#32     ScopedVisitor.visitMethodDeclaration (package:analyzer/src/generated/resolver.dart:7720)
#33     ResolverVisitor.visitMethodDeclaration (package:analyzer/src/generated/resolver.dart:6202)
#34     MethodDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:7535)
#35     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:8052)
#36     ScopedVisitor.visitClassMembersInScope (package:analyzer/src/generated/resolver.dart:7340)
#37     ScopedVisitor.visitClassDeclaration (package:analyzer/src/generated/resolver.dart:7317)
#38     ResolverVisitor.visitClassDeclaration (package:analyzer/src/generated/resolver.dart:5581)
#39     ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:1923)
#40     ResolverVisitor.visitCompilationUnit (package:analyzer/src/generated/resolver.dart:5647)
#41     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2516)
#42     LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:551)
#43     LibraryAnalyzer.analyze.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:89)
#44     _HashVMBase&MapMixin&&_LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:356)
#45     LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:88)
#46     AnalysisDriver._computeAnalysisResult.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:999)
#47     PerformanceLog.run (package:front_end/src/base/performace_logger.dart:34)
#48     AnalysisDriver._computeAnalysisResult (package:analyzer/src/dart/analysis/driver.dart:987)
#49     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:854)
<asynchronous suspension>
#50     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:1538)
<asynchronous suspension>
#51     AnalysisDriverScheduler.start (package:analyzer/src/dart/analysis/driver.dart:1481)
#52     new AnalysisServer (package:analysis_server/src/analysis_server.dart:458)
#53     SocketServer.createAnalysisServer (package:analysis_server/src/socket_server.dart:89)
#54     StdioAnalysisServer.serveStdio (package:analysis_server/src/server/stdio_server.dart:37)
#55     Driver.start.<anonymous closure> (package:analysis_server/src/server/driver.dart:474)
#56     _rootRun (dart:async/zone.dart:1120)
#57     _CustomZone.run (dart:async/zone.dart:1001)
#58     runZoned (dart:async/zone.dart:1467)
#59     Driver._captureExceptions (package:analysis_server/src/server/driver.dart:513)
#60     Driver.start (package:analysis_server/src/server/driver.dart:473)
#61     main (file:///tmp/tmpQBb3JT/dart-1.24.1/dart/pkg/analysis_server/bin/server.dart:12)
#62     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:263)
#63     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)
P1 area-analyzer type-bug

All 5 comments

@scheglov The code from which the exception is being thrown is definitely strange:

FunctionElement loadLibraryFunction = importedLibrary?.loadLibraryFunction;
methodName.staticElement = loadLibraryFunction;
node.staticInvokeType = loadLibraryFunction.type; // <-- Exception

While it would be trivial to guard against the exception, I don't understand why the loadLibraryFunction would ever be null. I thought it would have been created when we saw that the imported library was deferred. Am I missing something, or is the absence of the element the real bug here?

@Lisenish Could you please go to ~/.dartServer/.analysis-driver, archive all exception* files and send the archive to me ([email protected])? These crash logs contain content of all files related to the analysis which caused an exception. This should allow us to reproduce and fix the problem.

OK, I reproduced it.
You need to have a deferred import with invalid URI.

Was this page helpful?
0 / 5 - 0 ratings