Skip to content

Generic function missing generic type causes a Dart Analyzer Error #30147

@rxlabz

Description

@rxlabz

I have a function declaring 2 generics types :

void sortOrderables<T extends Orderable<U>, U>(/* ... */ ) {/* ... */ }

The analyzer get completely lost, "crashes" and restart, when I omit to define the second type in the call

sortOrderables<Orderable<T>>(/*...*/);

instead of

sortOrderables<Orderable<T>, T>(/*...*/);

Analyzer Feedback from IntelliJ

Version information

  • IDEA 171.4694.9
  • 1.25.0-dev.4.0
  • IU-171.4694.9, JRE 1.8.0_112-release-736-b21x64 JetBrains s.r.o, OS Mac OS X(x86_64) v10.12.5 unknown, screens 2048x1152, 2560x1440

Exception

Please append the contents of:
file:///private/var/folders/d1/0vs5pl5122jd_jjksjvvrpvr0000gn/T/report1.txt

Dart analysis server, SDK version 1.25.0-dev.4.0, server version 1.18.1, error: Analysis failed: /Users/rxlabz/dev/labz/flutter/noob-labz/orderable_stack/lib/src/drag_reorder_screens.dart context: exception_20170712_200301_725
Invalid argument(s): argumentTypes.length (1) != parameterTypes.length (2)
#0      InterfaceTypeImpl.substitute2 (package:analyzer/src/dart/element/type.dart:2022)
#1      ErrorVerifier._checkTypeArguments (package:analyzer/src/generated/error_verifier.dart:6261)
#2      ErrorVerifier.visitMethodInvocation (package:analyzer/src/generated/error_verifier.dart:1002)
#3      MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:7598)
#4      ExpressionStatementImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4228)
#5      RecursiveAstVisitor.visitExpressionStatement (package:analyzer/dart/ast/visitor.dart:815)
#6      ExpressionStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:4224)
#7      NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7990)
#8      BlockImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1346)
#9      RecursiveAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:647)
#10     ErrorVerifier.visitBlock (package:analyzer/src/generated/error_verifier.dart:397)
#11     BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1342)
#12     BlockFunctionBodyImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1291)
#13     RecursiveAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:653)
#14     ErrorVerifier.visitBlockFunctionBody (package:analyzer/src/generated/error_verifier.dart:416)
#15     BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1287)
#16     FunctionExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5319)
#17     RecursiveAstVisitor.visitFunctionExpression (package:analyzer/dart/ast/visitor.dart:869)
#18     ErrorVerifier.visitFunctionExpression (package:analyzer/src/generated/error_verifier.dart:775)
#19     FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5313)
#20     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7990)
#21     ArgumentListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:428)
#22     RecursiveAstVisitor.visitArgumentList (package:analyzer/dart/ast/visitor.dart:605)
#23     ErrorVerifier.visitArgumentList (package:analyzer/src/generated/error_verifier.dart:330)
#24     ArgumentListImpl.accept (package:analyzer/src/dart/ast/ast.dart:424)
#25     MethodInvocationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:7605)
#26     RecursiveAstVisitor.visitMethodInvocation (package:analyzer/dart/ast/visitor.dart:1013)
#27     ErrorVerifier.visitMethodInvocation (package:analyzer/src/generated/error_verifier.dart:1004)
#28     MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:7598)
#29     ExpressionStatementImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4228)
#30     RecursiveAstVisitor.visitExpressionStatement (package:analyzer/dart/ast/visitor.dart:815)
#31     ExpressionStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:4224)
#32     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7990)
#33     BlockImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1346)
#34     RecursiveAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:647)
#35     ErrorVerifier.visitBlock (package:analyzer/src/generated/error_verifier.dart:397)
#36     BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1342)
#37     BlockFunctionBodyImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1291)
#38     RecursiveAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:653)
#39     ErrorVerifier.visitBlockFunctionBody (package:analyzer/src/generated/error_verifier.dart:416)
#40     BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1287)
#41     MethodDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:7486)
#42     RecursiveAstVisitor.visitMethodDeclaration (package:analyzer/dart/ast/visitor.dart:1007)
#43     ErrorVerifier.visitMethodDeclaration (package:analyzer/src/generated/error_verifier.dart:984)
#44     MethodDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:7477)
#45     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7990)
#46     ClassDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1974)
#47     RecursiveAstVisitor.visitClassDeclaration (package:analyzer/dart/ast/visitor.dart:683)
#48     ErrorVerifier.visitClassDeclaration (package:analyzer/src/generated/error_verifier.dart:481)
#49     ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:1906)
#50     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7990)
#51     CompilationUnitImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:2502)
#52     RecursiveAstVisitor.visitCompilationUnit (package:analyzer/dart/ast/visitor.dart:707)
#53     ErrorVerifier.visitCompilationUnit (package:analyzer/src/generated/error_verifier.dart:540)
#54     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2495)
#55     LibraryAnalyzer._computeVerifyErrors (package:analyzer/src/dart/analysis/library_analyzer.dart:303)
#56     LibraryAnalyzer._analyze.<anonymous closure>.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:103)
#57     _HashVMBase&MapMixin&&_LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:356)
#58     LibraryAnalyzer._analyze.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:102)
#59     _PerformanceTagImpl.makeCurrentWhile (package:analyzer/src/generated/utilities_general.dart:200)
#60     LibraryAnalyzer._analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:101)
#61     LibraryAnalyzer.analyze.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:64)
#62     _PerformanceTagImpl.makeCurrentWhile (package:analyzer/src/generated/utilities_general.dart:200)
#63     LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:63)
#64     AnalysisDriver._computeAnalysisResult.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1055)
#65     PerformanceLog.run (package:front_end/src/base/performace_logger.dart:34)
#66     AnalysisDriver._computeAnalysisResult (package:analyzer/src/dart/analysis/driver.dart:1043)
#67     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:900)
<asynchronous suspension>
#68     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:1595)
<asynchronous suspension>
#69     AnalysisDriverScheduler.start (package:analyzer/src/dart/analysis/driver.dart:1538)
#70     new AnalysisServer (package:analysis_server/src/analysis_server.dart:386)
#71     SocketServer.createAnalysisServer (package:analysis_server/src/socket_server.dart:86)
#72     StdioAnalysisServer.serveStdio (package:analysis_server/src/server/stdio_server.dart:37)
#73     Driver.start.<anonymous closure> (package:analysis_server/src/server/driver.dart:446)
#74     _rootRun (dart:async/zone.dart:1120)
#75     _CustomZone.run (dart:async/zone.dart:1001)
#76     runZoned (dart:async/zone.dart:1467)
#77     Driver._captureExceptions (package:analysis_server/src/server/driver.dart:485)
#78     Driver.start (package:analysis_server/src/server/driver.dart:445)
#79     main (file:///b/build/slave/dart-sdk-mac-dev/build/sdk/pkg/analysis_server/bin/server.dart:12)
#80     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:263)
#81     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1A high priority bug; for example, a single project is unusable or has many test failureslegacy-area-analyzerUse area-devexp instead.type-bugIncorrect behavior (everything from a crash to more subtle misbehavior)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions