-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Labels
crashProcess exits with SIGSEGV, SIGABRT, etc. An unhandled exception is not a crash.Process exits with SIGSEGV, SIGABRT, etc. An unhandled exception is not a crash.legacy-area-front-endLegacy: Use area-dart-model instead.Legacy: Use area-dart-model instead.
Milestone
Description
Consider the following program:
typedef F = Function(Function<X extends F>());
void main() {}This program crashes the front end with a fresh dart from 342f9f0, with a stack trace that indicates an infinite loop. Hence, some extra checks for cyclic dependencies in a type alias seem to be needed.
Crash when compiling null,
at character offset null:
Stack Overflow
#0 FunctionType.visitChildren (package:kernel/ast.dart:7487:3)
#1 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:603:10)
#2 Visitor.defaultDartType (package:kernel/visitor.dart:518:39)
#3 Visitor.visitFunctionType (package:kernel/visitor.dart:525:45)
#4 FunctionType.accept (package:kernel/ast.dart:7481:42)
#5 FunctionType.visitChildren (package:kernel/ast.dart:9504:14)
#6 RecursiveVisitor.defaultNode (package:kernel/visitor.dart:603:10)
#7 Visitor.defaultDartType (package:kernel/visitor.dart:518:39)
#8 Visitor.visitFunctionType (package:kernel/visitor.dart:525:45)
#9 FunctionType.accept (package:kernel/ast.dart:7481:42)
#10 TypeParameter.visitChildren (package:kernel/ast.dart:8552:11)
...
#14170 Visitor.defaultTreeNode (package:kernel/visitor.dart:603:10)
#14171 TreeVisitor.visitLibrary (package:kernel/visitor.dart:246:35)
#14172 List.forEach (dart:core-patch/growable_array.dart:313:8)
#14173 transformLibraries (package:vm/transformations/call_site_annotator.dart>
#14174 VmTarget.performModularTransformationsOnLibraries (package:vm/target/vm>
#14175 KernelTarget.runBuildTransformations (package:front_end/src/fasta/kerne>
#14176 KernelTarget.buildComponent.<anonymous closure> (package:front_end/src/>
#14177 _rootRunUnary (dart:async/zone.dart:1198:47)
#14178 _CustomZone.runUnary (dart:async/zone.dart:1100:19)
...
Variants like typedef F = List<Function<X extends F>()> Function(); and typedef F = Function(List<Function<X extends F>()>); encounter the same issue.
Metadata
Metadata
Assignees
Labels
crashProcess exits with SIGSEGV, SIGABRT, etc. An unhandled exception is not a crash.Process exits with SIGSEGV, SIGABRT, etc. An unhandled exception is not a crash.legacy-area-front-endLegacy: Use area-dart-model instead.Legacy: Use area-dart-model instead.