Skip to content

Element mismatch in DeclarationResolver.resolve when using generic typedef as generator #33930

Closed
@jonerikceberio

Description

@jonerikceberio

Analyzer Feedback from IntelliJ

Version information

  • IDEA IC-181.4892.42
  • 2.0.0-edge.3c4dccbd46f152be9e1b6ca95c57357e8e48057c
  • IC-181.4892.42, JRE 1.8.0_152-release-1136-b38x64 JetBrains s.r.o, OS Windows 10(amd64) v10.0 , screens 1080x1920, 1440x900

Exception

REPORT

Dart analysis server, SDK version 2.0.0-edge.3c4dccbd46f152be9e1b6ca95c57357e8e48057c, server version 1.20.0, error: Analysis failed: F:\Compartido\flutter\gp0_0_2\lib\main.dart
Element mismatch in F:\Compartido\flutter\gp0_0_2\lib\main.dart at {(Map<dynamic, dynamic>) → T creator}
#0      DeclarationResolver.resolve (package:analyzer/src/generated/declaration_resolver.dart:74)
#1      LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:668)
#2      LibraryAnalyzer._analyze.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:127)
#3      _HashVMBase&MapMixin&&_LinkedHashMapMixin.forEach (dart:collection-patch/dart:collection/compact_hash.dart:363)
#4      LibraryAnalyzer._analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:126)
#5      LibraryAnalyzer.analyze.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:101)
<asynchronous suspension>
#6      _PerformanceTagImpl.makeCurrentWhileAsync (package:analyzer/src/generated/utilities_general.dart:220)
<asynchronous suspension>
#7      LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:97)
<asynchronous suspension>
#8      AnalysisDriver._computeAnalysisResult.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1223)
<asynchronous suspension>
#9      PerformanceLog.runAsync (package:front_end/src/base/performance_logger.dart:52)
<asynchronous suspension>
#10     AnalysisDriver._computeAnalysisResult (package:analyzer/src/dart/analysis/driver.dart:1182)
<asynchronous suspension>
#11     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:987)
<asynchronous suspension>
#12     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:1925)
<asynchronous suspension>
#13     AnalysisDriverScheduler.start (package:analyzer/src/dart/analysis/driver.dart:1868)
#14     new AnalysisServer (package:analysis_server/src/analysis_server.dart:395)
#15     SocketServer.createAnalysisServer (package:analysis_server/src/socket_server.dart:79)
#16     StdioAnalysisServer.serveStdio (package:analysis_server/src/server/stdio_server.dart:37)
#17     Driver.start.<anonymous closure> (package:analysis_server/src/server/driver.dart:444)
#18     _rootRun (dart:async/zone.dart:1126)
#19     _CustomZone.run (dart:async/zone.dart:1023)
#20     runZoned (dart:async/zone.dart:1501)
#21     Driver._captureExceptions (package:analysis_server/src/server/driver.dart:484)
#22     Driver.start (package:analysis_server/src/server/driver.dart:443)
#23     main (file:///E:/b/build/slave/Windows_Engine/build/src/third_party/dart/pkg/analysis_server/bin/server.dart:12)
#24     _startIsolate.<anonymous closure> (dart:isolate-patch/dart:isolate/isolate_patch.dart:277)
#25     _RawReceivePortImpl._handleMessage (dart:isolate-patch/dart:isolate/isolate_patch.dart:165)

Caused by Bad state: Element offset mismatch
#0      DeclarationResolver._matchOffset (package:analyzer/src/generated/declaration_resolver.dart:696)
#1      DeclarationResolver._match (package:analyzer/src/generated/declaration_resolver.dart:690)
#2      DeclarationResolver.visitSimpleFormalParameter (package:analyzer/src/generated/declaration_resolver.dart:531)
#3      SimpleFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:9515)
#4      NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:8263)
#5      FormalParameterListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4933)
#6      RecursiveAstVisitor.visitFormalParameterList (package:analyzer/dart/ast/visitor.dart:845)
#7      DeclarationResolver.visitFormalParameterList (package:analyzer/src/generated/declaration_resolver.dart:304)
#8      FormalParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:4929)
#9      FieldFormalParameterImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4613)
#10     RecursiveAstVisitor.visitFieldFormalParameter (package:analyzer/dart/ast/visitor.dart:833)
#11     DeclarationResolver.visitFieldFormalParameter (package:analyzer/src/generated/declaration_resolver.dart:292)
#12     FieldFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:4605)
#13     DeclarationResolver.visitDefaultFormalParameter.<anonymous closure> (package:analyzer/src/generated/declaration_resolver.dart:207)
#14     DeclarationResolver._walk (package:analyzer/src/generated/declaration_resolver.dart:768)
#15     DeclarationResolver.visitDefaultFormalParameter (package:analyzer/src/generated/declaration_resolver.dart:206)
#16     DefaultFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:3508)
#17     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:8263)
#18     FormalParameterListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4933)
#19     RecursiveAstVisitor.visitFormalParameterList (package:analyzer/dart/ast/visitor.dart:845)
#20     DeclarationResolver.visitFormalParameterList (package:analyzer/src/generated/declaration_resolver.dart:304)
#21     FormalParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:4929)
#22     ConstructorDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:3017)
#23     RecursiveAstVisitor.visitConstructorDeclaration (package:analyzer/dart/ast/visitor.dart:725)
#24     DeclarationResolver.visitConstructorDeclaration.<anonymous closure> (package:analyzer/src/generated/declaration_resolver.dart:158)
#25     DeclarationResolver._walk (package:analyzer/src/generated/declaration_resolver.dart:768)
#26     DeclarationResolver.visitConstructorDeclaration (package:analyzer/src/generated/declaration_resolver.dart:156)
#27     ConstructorDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:3010)
#28     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:8263)
#29     ClassDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1982)
#30     RecursiveAstVisitor.visitClassDeclaration (package:analyzer/dart/ast/visitor.dart:683)
#31     DeclarationResolver.visitClassDeclaration.<anonymous closure> (package:analyzer/src/generated/declaration_resolver.dart:126)
#32     DeclarationResolver._walk (package:analyzer/src/generated/declaration_resolver.dart:768)
#33     DeclarationResolver.visitClassDeclaration (package:analyzer/src/generated/declaration_resolver.dart:125)
#34     ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:1914)
#35     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:8263)
#36     CompilationUnitImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:2511)
#37     RecursiveAstVisitor.visitCompilationUnit (package:analyzer/dart/ast/visitor.dart:707)
#38     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2504)
#39     DeclarationResolver.resolve (package:analyzer/src/generated/declaration_resolver.dart:71)
#40     LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:668)
#41     LibraryAnalyzer._analyze.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:127)
#42     _HashVMBase&MapMixin&&_LinkedHashMapMixin.forEach (dart:collection-patch/dart:collection/compact_hash.dart:363)
#43     LibraryAnalyzer._analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:126)
#44     LibraryAnalyzer.analyze.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:101)
<asynchronous suspension>
#45     _PerformanceTagImpl.makeCurrentWhileAsync (package:analyzer/src/generated/utilities_general.dart:220)
<asynchronous suspension>
#46     LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:97)
<asynchronous suspension>
#47     AnalysisDriver._computeAnalysisResult.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1223)
<asynchronous suspension>
#48     PerformanceLog.runAsync (package:front_end/src/base/performance_logger.dart:52)
<asynchronous suspension>
#49     AnalysisDriver._computeAnalysisResult (package:analyzer/src/dart/analysis/driver.dart:1182)
<asynchronous suspension>
#50     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:987)
<asynchronous suspension>
#51     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:1925)
<asynchronous suspension>
#52     AnalysisDriverScheduler.start (package:analyzer/src/dart/analysis/driver.dart:1868)
#53     new AnalysisServer (package:analysis_server/src/analysis_server.dart:395)
#54     SocketServer.createAnalysisServer (package:analysis_server/src/socket_server.dart:79)
#55     StdioAnalysisServer.serveStdio (package:analysis_server/src/server/stdio_server.dart:37)
#56     Driver.start.<anonymous closure> (package:analysis_server/src/server/driver.dart:444)
#57     _rootRun (dart:async/zone.dart:1126)
#58     _CustomZone.run (dart:async/zone.dart:1023)
#59     runZoned (dart:async/zone.dart:1501)
#60     Driver._captureExceptions (package:analysis_server/src/server/driver.dart:484)
#61     Driver.start (package:analysis_server/src/server/driver.dart:443)
#62     main (file:///E:/b/build/slave/Windows_Engine/build/src/third_party/dart/pkg/analysis_server/bin/server.dart:12)
#63     _startIsolate.<anonymous closure> (dart:isolate-patch/dart:isolate/isolate_patch.dart:277)
#64     _RawReceivePortImpl._handleMessage (dart:isolate-patch/dart:isolate/isolate_patch.dart:165)

1532104296682 <= {"event":"server.status","params":{"analysis":{"isAnalyzing":false}}}
1532104301165 => {"id":"442","method":"edit.getAssists","params":{"file":"F:\\Compartido\\flutter\\gp0_0_2\\lib\\main.dart","offset":2535,"length":16},"clientRequestTime":1532104301165}
1532104301166 <= {"event":"server.status","params":{"analysis":{"isAnalyzing":true}}}
1532104301172 <= {"id":"442","result":{"assists":[]}}
1532104301174 <= {"event":"server.status","params":{"analysis":{"isAnalyzing":false}}}
1532104301478 => {"id":"443","method":"edit.getAssists","params":{"file":"F:\\Compartido\\flutter\\gp0_0_2\\lib\\main.dart","offset":2532,"length":19},"clientRequestTime":1532104301478}
1532104301480 <= {"event":"server.status","params":{"analysis":{"isAnalyzing":true}}}
1532104301489 => {"id":"444","method":"edit.getAssists","params":{"file":"F:\\Compartido\\flutter\\gp0_0_2\\lib\\main.dart","offset":2532,"length":19},"clientRequestTime":1532104301489}
1532104301502 <= {"id":"443","result":{"assists":[]}}
1532104301514 <= {"id":"444","result":{"assists":[]}}
1532104301516 <= {"event":"server.status","params":{"analysis":{"isAnalyzing":false}}}
1532104301791 => {"id":"445","method":"edit.getAssists","params":{"file":"F:\\Compartido\\flutter\\gp0_0_2\\lib\\main.dart","offset":2531,"length":20},"clientRequestTime":1532104301791}
1532104301793 <= {"event":"server.status","params":{"analysis":{"isAnalyzing":true}}}
1532104301810 <= {"id":"445","result":{"assists":[]}}
1532104301814 <= {"event":"server.status","params":{"analysis":{"isAnalyzing":false}}}
1532104303864 => {"id":"446","method":"analysis.updateContent","params":{"files":{"F:\\Compartido\\flutter\\gp0_0_2\\lib\\main.dart":{"type":"add","content":"import 'dart:async';\nimport 'dart:convert
1532104303865 => {"id":"447","method":"edit.getAssists","params":{"file":"F:\\Compartido\\flutter\\gp0_0_2\\lib\\main.dart","offset":2531,"length":0},"clientRequestTime":1532104303865}
1532104303867 <= {"id":"446","result":{}}
1532104303868 <= {"event":"server.status","params":{"analysis":{"isAnalyzing":true}}}
1532104304080 <= {"id":"447","result":{"assists":[]}}
1532104304145 <= {"event":"analysis.errors","params":{"file":"F:\\Compartido\\flutter\\gp0_0_2\\test\\widget_test.dart","errors":[]}}
1532104304147 <= {"event":"server.status","params":{"analysis":{"isAnalyzing":false}}}
1532104304429 => {"id":"448","method":"edit.getAssists","params":{"file":"F:\\Compartido\\flutter\\gp0_0_2\\lib\\main.dart","offset":2838,"length":0},"clientRequestTime":1532104304429}
1532104304431 <= {"event":"server.status","params":{"analysis":{"isAnalyzing":true}}}
1532104304440 <= {"id":"448","result":{"assists":[]}}
1532104304442 <= {"event":"server.status","params":{"analysis":{"isAnalyzing":false}}}
1532104305684 => {"id":"449","method":"execution.createContext","params":{"contextRoot":"F:\\Compartido\\flutter\\gp0_0_2\\lib\\main.dart"},"clientRequestTime":1532104305684}
1532104305685 <= {"id":"449","result":{"id":"15"}}
1532104305765 <= {"event":"server.status","params":{"analysis":{"isAnalyzing":true}}}
1532104305791 <= {"event":"server.error","params":{"isFatal":false,"message":"Analysis failed: F:\\Compartido\\flutter\\gp0_0_2\\lib\\main.dart","stackTrace":"Element mismatch in F:\\Compartido\\flutt
Dart analysis server, SDK version 2.0.0-edge.3c4dccbd46f152be9e1b6ca95c57357e8e48057c, server version 1.20.0, error: Analysis failed: F:\Compartido\flutter\gp0_0_2\lib\main.dart
Element mismatch in F:\Compartido\flutter\gp0_0_2\lib\main.dart at {(Map<dynamic, dynamic>) → T creator}
#0      DeclarationResolver.resolve (package:analyzer/src/generated/declaration_resolver.dart:74)
#1      LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:668)
#2      LibraryAnalyzer._analyze.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:127)
#3      _HashVMBase

Trying to replicate https://stackoverflow.com/questions/23112130/creating-an-instance-of-a-generic-type-in-dart:

typedef S ItemCreator<S>();
class PagedListData<T>{
  ...
  ItemCreator<T> creator;
  PagedListData(ItemCreator<T> this.creator) {

  }

  void performMagic() {
      T item = creator();
      ... 
  }
}

My version, with a map to get values:

typedef S ItemCreator<S>(Map map);

abstract class DataCacher<T> {
  var cacheddata;
  ItemCreator<T> creator;
  var offsetLoaded = new Map<int, bool>();
  final RepaintCallback callback;
  int _total = -1;

  DataCacher({this.callback, this.creator(Map map)}) {
    cacheddata = new Map<int, T>();
  }

Metadata

Metadata

Assignees

Labels

P1A high priority bug; for example, a single project is unusable or has many test failuresdevexp-serverIssues related to some aspect of the analysis serverlegacy-area-analyzerUse area-devexp instead.type-bugIncorrect behavior (everything from a crash to more subtle misbehavior)

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions