The goal is to renable it as soon as we migrate our constant-evaluator and
constant folding to use Bigint.
Change-Id: I3bba1bbe07517e9cb496896b3417f58173878d62
Reviewed-on: https://dart-review.googlesource.com/34302
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
The code to represent a tearoff of loadLibrary looked like this:
Future __loadLibrary__lib1 () {
lib1.loadLibrary();
}
but should have been like:
Future __loadLibrary__lib1 () {
return lib1.loadLibrary();
}
Change-Id: I31efb5bee9f7e376660602c1b842a90a0a2659a4
Reviewed-on: https://dart-review.googlesource.com/34510
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Emily Fortuna <efortuna@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Dart 2.0 fixed-size integers are enabled in Dart VM in all modes.
Status of legacy tests is updated.
This CL includes ff9fc413a7 with fixes.
Change-Id: I632d8177e9d07cd82ecea75ab6c325681b3a25c9
Reviewed-on: https://dart-review.googlesource.com/32443
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Dart 2.0 fixed-size integers are enabled in Dart VM in all modes.
Status of legacy tests is updated.
Change-Id: I967a413c0b81eb92cf6be78ad3ee324798288bd2
Reviewed-on: https://dart-review.googlesource.com/31406
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
One language test "passes" when we no longer complain about the mixin issue.
Bug:
Change-Id: I5aeb4ead7d3faf6ec756eeb11fecc20bcfb4c16e
Reviewed-on: https://dart-review.googlesource.com/31260
Reviewed-by: Sigmund Cherem <sigmund@google.com>
The analyzer used to emit a warning when a type parameter to a generic
method was used in an "is" check. This warning was there to help
users write code that worked correctly on both Dart 1.0 and 2.0. Now
that 2.0 generic methods are being more broadly supported and used,
this warning is blocking further library work, and is being removed.
Fixes https://github.com/dart-lang/sdk/issues/30530
Bug:
Change-Id: I70395305ad082aee3072b5beeb0b1b7f7883391b
Reviewed-on: https://dart-review.googlesource.com/29821
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
is specified as we will only support Dart 2.0 in kernel mode.
Change-Id: I712fa6e0f733738e4b722aeb10b5eba6a64316c5
Reviewed-on: https://dart-review.googlesource.com/28520
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
This CL normalizes all status files by the status file normalizer found at
pkg/status_file/bin/normalize.dart.
To make sure all status files are kept in pristine condition, a linter is placed
on the presubmit hook. The linter can be found at pkg/status_file/bin/lint.dart.
Bug:
Change-Id: I20bdb74824be65f079b8c9ab08b7ae38394d637f
Reviewed-on: https://dart-review.googlesource.com/24112
Commit-Queue: Morten Krogh-jespersen <mkroghj@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
This will allow for having automatic tools to alphabetize sections and entries.
Bug:
Change-Id: Ia7b7a100ca33197c4f3b1c50c11f24873dfbc09b
Reviewed-on: https://dart-review.googlesource.com/23675
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
If two sections are syntactically equal, they are considered same section.
The discovery of duplicate entries was perfomed by the test in the CL:
https://dart-review.googlesource.com/#/c/sdk/+/21341
All removals has been done by hand to make sure the best comment was chosen.
Bug:
Change-Id: I105f6375adc1b5f555eb7c2af7d7d1e4e1922a32
Reviewed-on: https://dart-review.googlesource.com/21340
Reviewed-by: Alexander Thomas <athom@google.com>
I only meant to change the language_2 ones, not language.
Change-Id: If7050245c6d4425c9d2ffdc60da3af0dc31f1024
Reviewed-on: https://dart-review.googlesource.com/22283
Reviewed-by: Natalie Weizenbaum <nweiz@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
This reverts commit 92ebd8aefa.
Reason: various failures on buildbots.
Change-Id: I03e877e240fdb010d1288baebc124a3e364d1025
Reviewed-on: https://dart-review.googlesource.com/21565
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Also, --limit-ints-to-64-bits is enabled when running tests in _2 test
suites.
Change-Id: I0b75e5e6e7af78adb29401d77ff55e735781ab73
Reviewed-on: https://dart-review.googlesource.com/20960
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Florian Loitsch <floitsch@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
The multi-test language_2/assertion_initializer_const_error2_test used
to have outcomes caused by a syntax error (arising for all other cases
than `cc02` in this multi-test). This CL moves that comma such that all
subtests have the intended shape, and the test actually tests the
intended property. This causes a rather large number of status file
entries to be adjusted.
Change-Id: I2e176611813e5706e553fb51cda7553f17dfa300
Reviewed-on: https://dart-review.googlesource.com/19191
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Florian Loitsch <floitsch@google.com>
This fixes a number of issues caused by constant evalation reporting
an error, but not correctly propergating that error in AOT mode.
Fixes#31298
Bug:
Change-Id: I43d378e96f033a9bd5bc0d90e1c2cf130d2cce2e
Reviewed-on: https://dart-review.googlesource.com/19183
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
This CL modifies the Dart source used from test.py such that it takes
`syntax error` into account as an expected outcome in test files (so
that we can have `//# 01: syntax error` with a similar meaning as
`//# 01: compile-time error`).
For all tools except the spec_parser, `syntax error` is the same
outcome as `compile-time error`; that is, nobody else will see the
difference.
For the spec_parser, `syntax error` is the outcome where parsing has
failed; `compile-time error` is taken to mean some other compile-time
error, i.e., the spec_parser is expected to _succeed_ when the
expected outcome is `compile-time error`.
Test files in language and language_2 have been adjusted to use the
outcome `syntax error` where appropriate.
The status files in language and language_2 for the spec_parser have
been adjusted such that they fit all the new `syntax error` outcomes
in test files.
Other status files have been adjusted in a few cases where tests were
corrected (because a compile-time error which was clearly not intended
to be a syntax error turned out to be caused by a typo, which means
that the actual compile-time error has never been tested).
The spec grammar Dart.g was adjusted in a few cases, when some bugs
were discovered. In particular, the treatment of Function has been
changed: It is now known by the parser that Function does not take
any type arguments. This makes no difference for developers, because
they cannot declare a type named Function anyway, but it means that
a number of tricky parsing issues were resolved.
Dart.g was also adjusted to allow `qualified` to contain three
identifiers, which is an old bug (preventing things like metadata on
the form `@p.C.myConst`).
Change-Id: Ie420887d45c882ef97c84143365219f8aa0d2933
Reviewed-on: https://dart-review.googlesource.com/18262
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
If the URI of a directive is invalid, use a special URI with a
scheme marking it as malformed. In the loader, treat a file with
an invalid URI as empty.
Order all dependencies (imports and exports) by source position to
allow the DietListener to match them up properly with metadata.
For the same reason, add imports and exports within parts to
dependencies even though they are not permitted here.
Closes https://github.com/dart-lang/sdk/issues/30997
Closes https://github.com/dart-lang/sdk/issues/31004
Change-Id: Ic7efd0da058c246531c165508b7474475b4bdad2
Reviewed-on: https://dart-review.googlesource.com/17901
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
It fails sporadically when I run dartk tests locally.
Change-Id: I935a1202595b35e534a2936bd3afc4c0b02ddf59
Reviewed-on: https://dart-review.googlesource.com/17041
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
This reverts commit eebbac4d78.
Reason for revert: Crash on ASAN bots
Original change's description:
> [vm] Tighten stack overflow check in the parser.
>
> A recent change increased the accuracy of the stack limit used in the stack overflow check. This allowed the parser to complete some example programs that previously tripped the limit, but the flow graph builder or optimizer (depending on mode) then experienced the overflow. Rather than sprinkle checks throughout the compiler pipeline, we now flag an error in the parser based on the amount of nesting instead of amount of call stack used.
>
> Bug: https://github.com/dart-lang/sdk/issues/31158
> Change-Id: I794e484d736e61499fe6812cf25185ce097bcdd8
> Reviewed-on: https://dart-review.googlesource.com/15651
> Reviewed-by: Zach Anderson <zra@google.com>
TBR=rmacnak@google.com,zra@google.com
Change-Id: I232d929b24c54191d6688530c6f4c59dcccb5890
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: https://github.com/dart-lang/sdk/issues/31158
Reviewed-on: https://dart-review.googlesource.com/16400
Reviewed-by: Ryan Macnak <rmacnak@google.com>
A recent change increased the accuracy of the stack limit used in the stack overflow check. This allowed the parser to complete some example programs that previously tripped the limit, but the flow graph builder or optimizer (depending on mode) then experienced the overflow. Rather than sprinkle checks throughout the compiler pipeline, we now flag an error in the parser based on the amount of nesting instead of amount of call stack used.
Bug: https://github.com/dart-lang/sdk/issues/31158
Change-Id: I794e484d736e61499fe6812cf25185ce097bcdd8
Reviewed-on: https://dart-review.googlesource.com/15651
Reviewed-by: Zach Anderson <zra@google.com>
This reverts commit 4bb83e9311
This reverts commit f1b07b2789.
Reason for revert on analyzer bots:
Analyzing pkg/analyzer...
error • Undefined name 'source' at pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart:625:9 • undefined_identifier
error • Undefined name 'CompileTimeErrorCode' at pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart:625:18 • undefined_identifier
error • Undefined name 'source' at pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart:626:13 • undefined_identifier
error • Undefined name 'source' at pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart:635:9 • undefined_identifier
error • Undefined name 'CompileTimeErrorCode' at pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart:635:18 • undefined_identifier
error • Undefined name 'source' at pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart:636:13 • undefined_identifier
error • Undefined name 'source' at pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart:645:9 • undefined_identifier
error • Undefined name 'CompileTimeErrorCode' at pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart:645:18 • undefined_identifier
error • Undefined name 'source' at pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart:646:13 • undefined_identifier
error • Undefined name 'source' at pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart:655:9 • undefined_identifier
error • Undefined name 'CompileTimeErrorCode' at pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart:655:18 • undefined_identifier
error • Undefined name 'source' at pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart:656:13 • undefined_identifier
12 errors found.
Change-Id: Ie2035bf40e50c48f85b514c7a3786141cd0f2453
Reviewed-on: https://dart-review.googlesource.com/14061
Reviewed-by: Martin Kustermann <kustermann@google.com>
Rewrite setter with invalid parameters into one with one parameter
and a body throwing a compile-time error.
Some analyzer tests fail until we sort out the expected form of the
generated kernel code in situations like this. This is tracked in
https://github.com/dart-lang/sdk/issues/31096
Closes https://github.com/dart-lang/sdk/issues/31069
Change-Id: I65033709813671ecb933e6a4dc00d1ff3b504661
Reviewed-on: https://dart-review.googlesource.com/13080
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
It looks like some of the tests in this block were already migrated,
but I re-migrated them and made a few tweaks that I think make them
better 2.0 tests.
Change-Id: I6d9058a53408f046d7db34f2244eeeb2c5eda625
Reviewed-on: https://dart-review.googlesource.com/13620
Reviewed-by: Ben Konyi <bkonyi@google.com>
This CL modifies tools/test.py such that it can run the spec parser
(after doing `make parser` in tools/spec_parser, and assuming that the
ANTLR 3 library is available at /usr/share/java/antlr3-runtime.jar)
with a command line like
`tools/test.py -c spec_parser -r none language/callable_test`
It also changes status files to have a name which follows the expected
patterns (e.g., `language/language_spec_parser.status`). Finally, it
adds/changes many entries in status files, such that parsing of the
directories `language` and `language_2` run successfully.
Change-Id: I82a22e32ac4fecd23ac0d4434bcac08f75dd8ffe
Reviewed-on: https://dart-review.googlesource.com/12680
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
This changes 'hasConcreteMatch' to search the superclass chain in the
kernel implementation. This matches what the Element model does.
Change-Id: I6a0ab69bc7e6fe705139d6fa69fffc2346582702
Reviewed-on: https://dart-review.googlesource.com/12843
Commit-Queue: Harry Terkelsen <het@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
They're back from the grave, and ready to party!
Change-Id: I088134a9be7ecabf1fbf751c015a656a15cabff9
Reviewed-on: https://dart-review.googlesource.com/12821
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
This allows us to construct the class hierarchy from the impact results.
Change-Id: Id10a197eb80e60d5e25e093ffdadf8d0af092ecf
Reviewed-on: https://dart-review.googlesource.com/10208
Commit-Queue: Harry Terkelsen <het@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
In kernel the loop level wasn't set correctly for for loops, resulting
in the loop variable not always being fresh.
Examples:
```
// Capture the loop variable, ensure we capture the right value.
for (int i = 0; i < 10; i++) { if (i == 7) f = () => "i = $i"; }
print(f());
// There is only one instance of k. The captured variable continues to change.
int k;
for (k = 0; k < 10; k++) { if (k == 7) f = () => "k = $k"; }
print(f());
```
resulted in
i = 10
k = 10
(i.e. it's wrong)
whereas
```
// Capture the loop variable, ensure we capture the right value.
for (int i = 0; i < 10; i++) { if (i == 7) { f = () => "i = $i"; } }
print(f());
{
// There is only one instance of k. The captured variable continues to change.
int k;
for (k = 0; k < 10; k++) { if (k == 7) { f = () => "k = $k"; } }
print(f());
}
```
resultet in
i = 7
k = 10
(i.e. it's correct).
Now both examples produce the correct result.
Change-Id: I1fb4c888c6a0eaa690f62226e093508992b33ed4
Reviewed-on: https://dart-review.googlesource.com/9961
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Previously we got the length of the class' type_parameters().
Now instead we use the class' NumTypeArguments().
Bug:
Change-Id: I3807443765e4926efc17eba54d3bf4f50e8e30c6
Reviewed-on: https://dart-review.googlesource.com/9482
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
+ use source locations for fasta messages
Change-Id: I1abba76f4f5653f8d7278cb2b368ae25ce33160b
Reviewed-on: https://dart-review.googlesource.com/8840
Reviewed-by: Stephen Adams <sra@google.com>
Two language tests are now passing as a result of
f0caee1b24
Change-Id: I1a2754515fa426b05bb1c45e79a22f95d590eba8
Reviewed-on: https://dart-review.googlesource.com/8900
Reviewed-by: Dan Rubel <danrubel@google.com>
- New handleRecoverImport event
for clauses in import directive that are out of order
- New error codes for
Duplicate prefix
Prefix after combinator
Change-Id: I0fea7ad4b4014a0b8578d3982e0515fe85044854
Reviewed-on: https://dart-review.googlesource.com/7980
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This reverts commit 1ca12788c6.
Patchset 1 is the reverted CL, patchset 2 shows the changes.
Bug:
Change-Id: I4ffcb9ec20f2ac3c59d09adc3a6693f52c71601d
Reviewed-on: https://dart-review.googlesource.com/6360
Reviewed-by: Peter von der Ahé <ahe@google.com>
Accept a missing super-constructor call if one of the constructor
initializers always throws. This matches dynamic error code generated
for various warnings, including duplicate final initializers.
Change-Id: If188c9d8d6d02bf9667123fbf679f1c103b5ef5a
Reviewed-on: https://dart-review.googlesource.com/7240
Reviewed-by: Sigmund Cherem <sigmund@google.com>
These are infrequent, so can be better tracked as a compile-time issue.
Change-Id: I79a25c3cad1e7b003244cc5baa1a8a788586a0af
Reviewed-on: https://dart-review.googlesource.com/6761
Reviewed-by: Sigmund Cherem <sigmund@google.com>
This reverts commit 321a4ec048.
Some VM tests expect to see the behavior with a raw type instead of
an invalid type. I'll revert first, then resend this CL with the default
result changed.
R=ahe@google.com
Change-Id: I2cdd855dbaec93d0a0c257f7e202518fd9b59c81
Reviewed-on: https://dart-review.googlesource.com/6342
Reviewed-by: Sigmund Cherem <sigmund@google.com>
This doesn't fix all of the errors with
'Error: ".function" called on null' stacktraces.
Change-Id: I7ddc0405db7e2f028eb27028c854dab29a0adf16
Reviewed-on: https://dart-review.googlesource.com/5522
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Harry Terkelsen <het@google.com>
This CL silences several tests for '$compiler = dartkp' configuration
in order to make vm-kernel-precomp-* buildbots greener.
These tests are already silenced for '$compiler = precompiler' or
'$compiler = dartk' configurations.
Change-Id: Ia3208853655868ae4cf39775d40db15218c1a1df
Reviewed-on: https://dart-review.googlesource.com/5286
Reviewed-by: Alexander Aprelev <aam@google.com>
This prevents the getFunctionTypeOfTypedef call from failing in
checked mode by returning a MalformedType.
Revert "Revert "Add types referenced in is-checks to the class hierarchy""
This reverts commit e0a4839c3e.
Change-Id: I1e94ba5ba345c36e04e54da6e8c0580a21836838
Reviewed-on: https://dart-review.googlesource.com/3422
Reviewed-by: Harry Terkelsen <het@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Also updated the tests so that we don't forget in the future.
Change-Id: I0a998af306a0b6fa54b3c86cf164fdfe1f76340d
Reviewed-on: https://dart-review.googlesource.com/3624
Reviewed-by: William Hesse <whesse@google.com>
Request particular attention to generic_creation_test and generic_field_mixin6_test, but all of the following required tweaks
to the status files to pass tests:
generic_closure_test
generic_function_bounds_test
generic_function_dcall_test
generic_function_typedef_test
generic_field_mixin6_test
generalized_void_syntax_test
generic_functions_test
BUG=
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/3008573002 .
Interesting tests requiring status file or other changes:
type_variable_promotion_test
type_variable_scope_test
type_variable_static_context_negative_test - changed from negative to compile-time error
unresolved_top_level_method_negative_test - changed from negative to compile-time error
unary_plus_negative_test
unhandled_exception_negative_test
unbound_getter_test
unresolved_in_factory_negative_test -
unresolved_top_level_var_negative_test - changed from negative to compile-time error
unresolved_top_level_method_negative_test - changed from negative to compile-time error
vm/async_await_catch_stacktrace_test
BUG=
R=lrn@google.com
Review-Url: https://codereview.chromium.org/3008723002 .
Interesting bits:
- Removed some behavior that is now unreachable in the presence of
type errors.
- Made if_null_behavior_test not a multitest since it doesn't need to
be any more.
- Likewise, if_null_evaluation_order_test never needed to be a
multitest.
R=lrn@google.com
Review-Url: https://codereview.chromium.org/3003933002 .
Interesting changes:
- A static getter colliding with an inherited non-static setter is a
compile error, not a type warning.
- Trying to call a setter on what is only a getter is a compile error
with no runtime behavior.
- Add support to test.dart for negative tests in DDC.
BUG=
R=jcollins@google.com
Review-Url: https://codereview.chromium.org/3005643002 .
There were tests that tested only checked mode, having their name on the form xx_checked_xx. Those files have been renamed to static.
We found an issue in the DDC regarding constant maps, the issue has been added to the status file.
R=rnystrom@google.com, whesse@google.com
Review-Url: https://codereview.chromium.org/2994383002 .
Obfuscation is controlled by obfuscate flag in Dart_IsolateFlags.
Obfuscation of identifiers is performed during script tokenization - when TokenStream is generated from the source. All kIDENT and kINTERPOL_VAR tokens are renamed consistently using a persistent obfuscation map stored in ObjectStore::obfuscation_map.
Some identifiers (pseudo-keywords, arithmetic operators, builtin recognized methods and entry-points) are not renamed to keep name based lookups from breaking. All other identifiers are renamed.
Constant instances of Symbol-s (both created via literal syntax #ident and using constant constructor const Symbol("ident")) are renamed consistently with corresponding identifiers.
Script urls and Library urls and names are also obfuscated.
Obfuscation map can be dumped as a JSON array at the end of precompilation using Dart_GetObfuscationMap API.
BUG=https://github.com/dart-lang/sdk/issues/30524R=rmacnak@google.com
Review-Url: https://codereview.chromium.org/3003583002 .