Skip to content

dart2js: Internal Error: type 'InterfaceType' is not a subtype of type 'FunctionType' in type cast #56443

Description

@xvrh

Since Dart 3.5, we hit a compiler crash in the chrome_extension package (which use dart:js_interop internally).

Full error message:

Target dart2js failed: ProcessException: Process exited abnormally with exit code 253:
Target dart2js failed: ProcessException: Process exited abnormally with exit code 253:
           .dart_tool/flutter_build/b7629c0c1f24a1cdb3a354a01092bc2f/main.dart:
           Internal Error: The compiler crashed when compiling this element.
           
           The compiler is broken.
           
           When compiling the above element, the compiler crashed. It is not
           possible to tell if this is caused by a problem in your program or
           not. Regardless, the compiler should not crash.
           
           The Dart team would greatly appreciate if you would take a moment to
           report this problem at http://dartbug.com/new.
           
           Please include the following information:
           
           * the name and version of your operating system,
           
           * the Dart SDK build number (3.5.0), and
           
           * the entire message you see here (including the full stack trace
             below as well as the source location above).
           
           The compiler crashed: Crash when compiling:
           type 'InterfaceType' is not a subtype of type 'FunctionType' in type cast
           
           #0      JsUtilOptimizer._lowerFunctionToJS (package:_js_interop_checks/src/transformations/js_util_optimizer.dart:698:52)
           #1      JsUtilOptimizer.visitStaticInvocation (package:_js_interop_checks/src/transformations/js_util_optimizer.dart:502:20)
           #2      StaticInvocation.accept (package:kernel/ast.dart:6582:44)
           #3      Transformer.transform (package:kernel/visitor.dart:1771:17)
           #4      InstanceSet.transformChildren (package:kernel/ast.dart:4853:15)
           #5      Transformer.defaultTreeNode (package:kernel/visitor.dart:1805:10)
           #6      TreeVisitorDefault.defaultExpression (package:kernel/visitor.dart:618:43)
           #7      ExpressionVisitorDefaultMixin.visitInstanceSet (package:kernel/visitor.dart:109:43)
           #8      InstanceSet.accept (package:kernel/ast.dart:4835:44)
           #9      Transformer.transform (package:kernel/visitor.dart:1771:17)
           #10     ExpressionStatement.transformChildren (package:kernel/ast.dart:9141:20)
           #11     Transformer.defaultTreeNode (package:kernel/visitor.dart:1805:10)
           #12     TreeVisitorDefault.defaultStatement (package:kernel/visitor.dart:622:41)
           #13     StatementVisitorDefaultMixin.visitExpressionStatement (package:kernel/visitor.dart:343:7)
           #14     ExpressionStatement.accept (package:kernel/ast.dart:9128:43)
           #15     Transformer.transform (package:kernel/visitor.dart:1771:17)
           #16     Transformer.transformList (package:kernel/visitor.dart:1788:18)
           #17     Block.transformChildren (package:kernel/ast.dart:9193:7)
           #18     Transformer.defaultTreeNode (package:kernel/visitor.dart:1805:10)
           #19     TreeVisitorDefault.defaultStatement (package:kernel/visitor.dart:622:41)
           #20     StatementVisitorDefaultMixin.visitBlock (package:kernel/visitor.dart:345:31)
           #21     Block.accept (package:kernel/ast.dart:9181:43)
           #22     Transformer.transform (package:kernel/visitor.dart:1771:17)
           #23     FunctionNode.transformChildren (package:kernel/ast.dart:3905:16)
           #24     Transformer.defaultTreeNode (package:kernel/visitor.dart:1805:10)
           #25     TreeVisitorDefaultMixin.visitFunctionNode (package:kernel/visitor.dart:577:45)
           #26     FunctionNode.accept (package:kernel/ast.dart:3872:38)
           #27     Transformer.transform (package:kernel/visitor.dart:1771:17)
           #28     Constructor.transformChildren (package:kernel/ast.dart:2693:18)
           #29     JsUtilOptimizer.defaultMember (package:_js_interop_checks/src/transformations/js_util_optimizer.dart:143:10)
           #30     MemberVisitorDefaultMixin.visitConstructor (package:kernel/visitor.dart:409:43)
           #31     Constructor.accept (package:kernel/ast.dart:2671:40)
           #32     Transformer.transform (package:kernel/visitor.dart:1771:17)
           #33     Transformer.transformList (package:kernel/visitor.dart:1788:18)
           #34     Class.transformChildren (package:kernel/ast.dart:1524:7)
           #35     Transformer.defaultTreeNode (package:kernel/visitor.dart:1805:10)
           #36     TreeVisitorDefaultMixin.visitClass (package:kernel/visitor.dart:556:31)
           #37     Class.accept (package:kernel/ast.dart:1471:38)
           #38     Transformer.transform (package:kernel/visitor.dart:1771:17)
           #39     Transformer.transformList (package:kernel/visitor.dart:1788:18)
           #40     Library.transformChildren (package:kernel/ast.dart:609:7)
           #41     JsUtilOptimizer.visitLibrary (package:_js_interop_checks/src/transformations/js_util_optimizer.dart:135:10)
           #42     Dart2jsTarget.performModularTransformationsOnLibraries (package:compiler/src/kernel/dart2js_target.dart:169:25)
           #43     KernelTarget.runBuildTransformations (package:front_end/src/kernel/kernel_target.dart:1724:19)
           #44     KernelTarget.buildComponent.<anonymous closure> (package:front_end/src/kernel/kernel_target.dart:770:7)
           <asynchronous suspension>
           #45     withCrashReporting (package:front_end/src/base/crash.dart:138:12)
           <asynchronous suspension>
           #46     KernelTarget.buildComponent (package:front_end/src/kernel/kernel_target.dart:699:12)
           <asynchronous suspension>
           #47     _buildInternal (package:front_end/src/kernel_generator_impl.dart:239:19)
           <asynchronous suspension>
           #48     withCrashReporting (package:front_end/src/base/crash.dart:138:12)
           <asynchronous suspension>
           #49     compile.<anonymous closure> (package:front_end/src/api_unstable/dart2js.dart:165:37)
           <asynchronous suspension>
           #50     CompilerContext.clear (package:front_end/src/base/compiler_context.dart:128:3)
           <asynchronous suspension>
           #51     compile (package:front_end/src/api_unstable/dart2js.dart:163:36)
           <asynchronous suspension>
           #52     _loadFromSource (package:compiler/src/phase/load_kernel.dart:318:29)
           <asynchronous suspension>
           #53     run (package:compiler/src/phase/load_kernel.dart:412:36)
           <asynchronous suspension>
           #54     Compiler.loadKernel (package:compiler/src/compiler.dart:392:9)
           <asynchronous suspension>
           #55     Compiler.produceKernel (package:compiler/src/compiler.dart:399:36)
           <asynchronous suspension>
           #56     Compiler.runSequentialPhases (package:compiler/src/compiler.dart:633:20)
           <asynchronous suspension>
           #57     Compiler.runInternal.<anonymous closure> (package:compiler/src/compiler.dart:316:7)
           <asynchronous suspension>
           #58     Compiler.runInternal (package:compiler/src/compiler.dart:315:5)
           <asynchronous suspension>
           #59     Compiler.run.<anonymous closure> (package:compiler/src/compiler.dart:236:11)
           <asynchronous suspension>
           #60     compile.<anonymous closure> (package:compiler/compiler_api.dart:256:30)
           <asynchronous suspension>
           #61     compile.compilationDone (package:compiler/src/dart2js.dart:723:3)
           <asynchronous suspension>
           #62     main (package:compiler/src/dart2js.dart:1226:3)
           <asynchronous suspension>

Reproduction:

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1A high priority bug; for example, a single project is unusable or has many test failuresarea-web-jsIssues related to JavaScript support for Dart Web, including DDC, dart2js, and JS interop.type-bugIncorrect behavior (everything from a crash to more subtle misbehavior)web-dart2jsweb-js-interopIssues that impact all js interop

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions