-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
dart2js crashes on "a &&= a" #30340
Comments
If you assign this to area-fasta, I'll fix it in the parser :-) |
Also crashes in fasta:
|
This was caused by CL 2895803002 or CL 2903063003. Moving forward, we should ensure that all new features added to the shared front-end have a corresponding test in tests/language (or whatever the new location is). In my opinion, we shouldn't be adding experimental features to the shared front-end, and we should remove them from the analyzer instead. |
This feature is not really experimental. It is supposed to get implemented everywhere: |
@floitschG could you elaborate on how this feature isn't experimental and how this is implied by the existence of issue #26996? |
@peter-ahe-google the quickest short term fix is to put lazy assignments behind a flag again (partially revert CL 2903063003). I'll start work on that tomorrow unless I hear otherwise. |
I'd like to avoid having flags. Flags don't solve the issue (which is lack of testing), and creates more problems (increasing the number of test configurations we must test, and creating horrible error message). Adding a flag doesn't relieve us from having to test code, and for dart2js, that would mean doubling the number of build bots. The real issue here is lack of testing. When we implement a new feature in a shared component, we need to also write tests that can exercise all of our tools. There's nothing wrong with writing an analyzer unit test, but we must also write shared tests. Alternatives are
As far as I'm concerned, each new feature that is implemented before we switch to the shared front-end is delaying the switch to the shared front-end, and will actually be counter productive towards getting these features delivered to our customers. For this reason, the above order of alternatives go from the first being my least preferred to the last being my most preferred. |
@danrubel ping |
I'll try to dig into this next week. |
&&= is not a valid assignment operator.
The VM signals a syntax error
dart2js crashes instead of rejecting the syntax error.
The text was updated successfully, but these errors were encountered: