Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stack Overflow on compilation #44362

Closed
AndreyPavlenko opened this issue Dec 1, 2020 · 3 comments
Closed

Stack Overflow on compilation #44362

AndreyPavlenko opened this issue Dec 1, 2020 · 3 comments
Labels
area-front-end Use area-front-end for front end / CFE / kernel format related issues.

Comments

@AndreyPavlenko
Copy link

AndreyPavlenko commented Dec 1, 2020

I'm getting Stack Overflow error when compiling the following code:


import 'package:flutter/foundation.dart';

void main() {
print(valuesEqual(1, 2));
}

bool valuesEqual(T? v1, T? v2) {
return ((v1 == v2) || ((v1 is List) && (v2 is List) && listEquals(v1, v2)));
}


$ dart --version
Dart SDK version: 2.12.0-76.0.dev (dev) (Wed Nov 25 05:22:28 2020 -0800) on "linux_x64"


at character offset 120:
Stack Overflow
#0      isTypeParameterTypeWithoutNullabilityMarker (package:kernel/type_algebra.dart:1051:1)
#1      TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:377:9)
#2      TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#3      TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#4      TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#5      TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#6      TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#7      TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#8      TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#9      TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#10     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#11     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#12     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#13     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#14     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#15     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#16     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#17     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#18     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#19     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#20     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#21     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#22     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#23     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#24     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#25     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#26     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#27     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#28     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#29     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#30     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#31     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#32     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#33     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#34     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#35     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#36     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#37     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#38     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#39     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#40     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#41     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#42     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
#43     TypeConstraintGatherer._isNullabilityAwareSubtypeMatch (package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart:551:11)
...
...
#3909   TypeInferrerImpl._inferInvocation (package:front_end/src/fasta/type_inference/type_inferrer.dart:2133:29)
#3910   TypeInferrerImpl.inferInvocation (package:front_end/src/fasta/type_inference/type_inferrer.dart:1849:12)
#3911   InferenceVisitor.visitStaticInvocation (package:front_end/src/fasta/kernel/inference_visitor.dart:5296:49)
#3912   StaticInvocation.accept1 (package:kernel/ast.dart:4070:9)
#3913   TypeInferrerImpl._inferExpression (package:front_end/src/fasta/type_inference/type_inferrer.dart:1737:27)
#3914   TypeInferrerImpl.inferExpression (package:front_end/src/fasta/type_inference/type_inferrer.dart:1770:40)
#3915   InferenceVisitor.visitLogicalExpression (package:front_end/src/fasta/kernel/inference_visitor.dart:1782:54)
#3916   LogicalExpression.accept1 (package:kernel/ast.dart:4309:9)
#3917   TypeInferrerImpl._inferExpression (package:front_end/src/fasta/type_inference/type_inferrer.dart:1737:27)
#3918   TypeInferrerImpl.inferExpression (package:front_end/src/fasta/type_inference/type_inferrer.dart:1770:40)
#3919   InferenceVisitor.visitLogicalExpression (package:front_end/src/fasta/kernel/inference_visitor.dart:1782:54)
#3920   LogicalExpression.accept1 (package:kernel/ast.dart:4309:9)
#3921   TypeInferrerImpl._inferExpression (package:front_end/src/fasta/type_inference/type_inferrer.dart:1737:27)
#3922   TypeInferrerImpl.inferExpression (package:front_end/src/fasta/type_inference/type_inferrer.dart:1770:40)
#3923   InferenceVisitor.visitReturnStatement (package:front_end/src/fasta/kernel/inference_visitor.dart:5150:61)
#3924   ReturnStatement.accept (package:kernel/ast.dart:6677:43)
#3925   InferenceVisitor._visitStatements (package:front_end/src/fasta/kernel/inference_visitor.dart:3262:6)
#3926   InferenceVisitor.visitBlock (package:front_end/src/fasta/kernel/inference_visitor.dart:288:30)
#3927   Block.accept (package:kernel/ast.dart:5939:43)
#3928   TypeInferrerImpl.inferFunctionBody (package:front_end/src/fasta/type_inference/type_inferrer.dart:3274:24)
#3929   BodyBuilder.finishFunction (package:front_end/src/fasta/kernel/body_builder.dart:991:28)
#3930   DietListener.buildFunctionBody (package:front_end/src/fasta/source/diet_listener.dart:955:14)
#3931   DietListener.endTopLevelMethod (package:front_end/src/fasta/source/diet_listener.dart:358:5)
#3932   Parser.parseTopLevelMethod (package:_fe_analyzer_shared/src/parser/parser_impl.dart:2743:14)
#3933   Parser.parseTopLevelMemberImpl (package:_fe_analyzer_shared/src/parser/parser_impl.dart:2534:14)
#3934   Parser.parseTopLevelDeclarationImpl (package:_fe_analyzer_shared/src/parser/parser_impl.dart:501:14)
#3935   Parser.parseUnit (package:_fe_analyzer_shared/src/parser/parser_impl.dart:356:15)
#3936   SourceLoader.buildBody (package:front_end/src/fasta/source/source_loader.dart:458:14)
#3937   _rootRunUnary (dart:async/zone.dart:1194:47)
#3938   _CustomZone.runUnary (dart:async/zone.dart:1097:19)
#3939   _FutureListener.handleValue (dart:async/future_impl.dart:150:18)
#3940   Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:703:45)
#3941   Future._propagateToListeners (dart:async/future_impl.dart:732:32)
#3942   Future._completeWithValue (dart:async/future_impl.dart:536:5)
#3943   Future._asyncCompleteWithValue.<anonymous closure> (dart:async/future_impl.dart:574:7)
#3944   _rootRun (dart:async/zone.dart:1186:13)
#3945   _CustomZone.run (dart:async/zone.dart:1090:19)
#3946   _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1018:23)
#3947   _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#3948   _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#3949   _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:120:13)
#3950   _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:185:5)


#0      DietListener.buildFunctionBody (package:front_end/src/fasta/source/diet_listener.dart:998:7)
#1      DietListener.endTopLevelMethod (package:front_end/src/fasta/source/diet_listener.dart:358:5)
#2      Parser.parseTopLevelMethod (package:_fe_analyzer_shared/src/parser/parser_impl.dart:2743:14)
#3      Parser.parseTopLevelMemberImpl (package:_fe_analyzer_shared/src/parser/parser_impl.dart:2534:14)
#4      Parser.parseTopLevelDeclarationImpl (package:_fe_analyzer_shared/src/parser/parser_impl.dart:501:14)
#5      Parser.parseUnit (package:_fe_analyzer_shared/src/parser/parser_impl.dart:356:15)
#6      SourceLoader.buildBody (package:front_end/src/fasta/source/source_loader.dart:458:14)
<asynchronous suspension>
#7      Loader.buildBodies (package:front_end/src/fasta/loader.dart:240:9)
<asynchronous suspension>
#8      KernelTarget.buildComponent.<anonymous closure> (package:front_end/src/fasta/kernel/kernel_target.dart:392:7)
<asynchronous suspension>
#9      withCrashReporting (package:front_end/src/fasta/crash.dart:120:12)
<asynchronous suspension>
#10     generateKernelInternal.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart:161:19)
<asynchronous suspension>
#11     withCrashReporting (package:front_end/src/fasta/crash.dart:120:12)
<asynchronous suspension>
#12     generateKernel.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart:51:12)
<asynchronous suspension>
#13     generateKernel (package:front_end/src/kernel_generator_impl.dart:50:10)
<asynchronous suspension>
#14     kernelForModule (package:front_end/src/api_prototype/kernel_generator.dart:97:11)
<asynchronous suspension>
#15     SingleShotCompilerWrapper.compileInternal (file:///b/s/w/ir/cache/builder/src/third_party/dart/pkg/vm/bin/kernel_service.dart:377:11)
<asynchronous suspension>
#16     Compiler.compile.<anonymous closure> (file:///b/s/w/ir/cache/builder/src/third_party/dart/pkg/vm/bin/kernel_service.dart:197:45)
<asynchronous suspension>
#17     _processLoadRequest (file:///b/s/w/ir/cache/builder/src/third_party/dart/pkg/vm/bin/kernel_service.dart:843:37)
<asynchronous suspension>```

@franklinyow franklinyow added the area-tools A meta category for issues that should be addressed by tooling (prefer more concrete areas). label Dec 16, 2020
@devoncarew
Copy link
Member

@franklinyow - based on the stack trace this is likely an area front end issue.

@franklinyow franklinyow added area-front-end Use area-front-end for front end / CFE / kernel format related issues. and removed area-tools A meta category for issues that should be addressed by tooling (prefer more concrete areas). labels Dec 16, 2020
@franklinyow
Copy link
Contributor

@devoncarew thanks!

@johnniwinther
Copy link
Member

cc @stefantsov

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-front-end Use area-front-end for front end / CFE / kernel format related issues.
Projects
None yet
Development

No branches or pull requests

4 participants