Skip to content

fasta crashes when parsing "||=" (invalid operators) #31060

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

Closed
sigmundch opened this issue Oct 10, 2017 · 2 comments
Closed

fasta crashes when parsing "||=" (invalid operators) #31060

sigmundch opened this issue Oct 10, 2017 · 2 comments
Labels
closed-duplicate Closed in favor of an existing report front-end-fasta legacy-area-front-end Legacy: Use area-dart-model instead.

Comments

@sigmundch
Copy link
Member

The following program makes fasta crash:

var x = false;
main() {
  x ||= true;
}

When running: ./pkg/front_end/tool/fasta compile input.dart you get:

Unhandled exception:
foo/oror.dart:3:5: Internal problem: Unhandled ||= in handleAssignment.
  x ||= true;
    ^
#0      internalProblem (package:front_end/src/fasta/problems.dart:29:3)
#1      unhandled (package:front_end/src/fasta/problems.dart:41:10)
#2      DelayedAssignment.handleAssignment (package:front_end/src/fasta/kernel/body_builder.dart:3599:14)
#3      DelayedAssignment.buildForEffect (package:front_end/src/fasta/kernel/body_builder.dart:3551:12)
#4      BodyBuilder.toEffect (package:front_end/src/fasta/kernel/body_builder.dart:243:44)
#5      BodyBuilder.popForEffect (package:front_end/src/fasta/kernel/body_builder.dart:218:32)
#6      BodyBuilder.endExpressionStatement (package:front_end/src/fasta/kernel/body_builder.dart:691:40)
#7      Parser.parseExpressionStatement (package:front_end/src/fasta/parser/parser.dart:3463:14)
#8      Parser.parseType (package:front_end/src/fasta/parser/parser.dart:1845:16)
#9      Parser.parseExpressionStatementOrDeclaration (package:front_end/src/fasta/parser/parser.dart:3427:12)
#10     Parser.parseStatementX (package:front_end/src/fasta/parser/parser.dart:3330:14)
#11     Parser.parseStatement (package:front_end/src/fasta/parser/parser.dart:3322:20)
#12     Parser.parseFunctionBody (package:front_end/src/fasta/parser/parser.dart:3252:15)
#13     DietListener.parseFunctionBody (package:front_end/src/fasta/source/diet_listener.dart:611:14)
#14     DietListener.buildFunctionBody (package:front_end/src/fasta/source/diet_listener.dart:483:5)
#15     DietListener.endTopLevelMethod (package:front_end/src/fasta/source/diet_listener.dart:230:5)
#16     Parser.parseTopLevelMethod (package:front_end/src/fasta/parser/parser.dart:2278:14)
#17     Parser.parseTopLevelMember (package:front_end/src/fasta/parser/parser.dart:2183:11)
#18     Parser.parseTopLevelDeclarationImpl (package:front_end/src/fasta/parser/parser.dart:333:14)
#19     Parser.parseUnit (package:front_end/src/fasta/parser/parser.dart:280:15)
#20     SourceLoader.buildBody (package:front_end/src/fasta/source/source_loader.dart:176:14)
<asynchronous suspension>
#21     Loader.buildBodies (package:front_end/src/fasta/loader.dart:125:13)
<asynchronous suspension>
#22     KernelTarget.buildProgram (package:front_end/src/fasta/kernel/kernel_target.dart:281:20)
...
@sigmundch sigmundch changed the title crash with "||=" fasta crashes when parsing "||=" (invalid operators) Oct 10, 2017
@lrhn
Copy link
Member

lrhn commented Oct 11, 2017

The ||= and &&= syntaxes are part of Dart 2, they are not allowed in Dart 1.
I wouldn't expect Fasta to support it yet (but it shuldn't crash, obviously).

@peter-ahe-google
Copy link
Contributor

Duplicate of #30340.

@peter-ahe-google peter-ahe-google added the closed-duplicate Closed in favor of an existing report label Oct 12, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
closed-duplicate Closed in favor of an existing report front-end-fasta legacy-area-front-end Legacy: Use area-dart-model instead.
Projects
None yet
Development

No branches or pull requests

3 participants