Commit Graph

329 Commits

Author SHA1 Message Date
Jens Johansen 21f7da094b [kernel] When building type arguments interpret malformed type as dynamic
Bug:
Change-Id: I996bb912262414bc37fa25b4a335a993d0dce7f0
Reviewed-on: https://dart-review.googlesource.com/10041
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2017-10-05 12:26:20 +00:00
Jens Johansen 5fff3689d6 [kernel] Report error instead of crashing in constant evaluator.
Change-Id: I2c116cdc6add54194d0641631b3603313603c89e
Reviewed-on: https://dart-review.googlesource.com/11442
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2017-10-05 12:13:03 +00:00
Jens Johansen 2e75b6cce9 [kernel] Fix closure in for loop
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>
2017-10-03 07:56:13 +00:00
Jens Johansen 471d92dfe4 [kernel] Get class type arguments correctly
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>
2017-10-03 07:26:28 +00:00
Dan Rubel f0caee1b24 Improve import directive recovery and report analyzer errors
- 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>
2017-09-27 12:56:46 +00:00
Alexander Markov 6fbab08b21 [Tests] Update status files for dartkp configuration
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>
2017-09-12 20:08:51 +00:00
Beeravolu Siva Chandra Reddy 004a515217 Populate library imports and exports when loading library from kernel.
Change-Id: If6cc94aa186948caa8798212d6161da650ff2d8e
Reviewed-on: https://dart-review.googlesource.com/4381
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2017-09-12 10:44:49 +00:00
Karl Klose d8218d1fc3 [gardening] Mark language/reexport_core_test as no longer crashing
TBR=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/3008963002 .
2017-08-31 08:05:27 +02:00
Janice Collins e31e611101 Fix many bots.
This covers the following cases:

python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language_2/bad_constructor_test/05
python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language_2/closures_with_complex_params_test
python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language_2/generic_async_star_test
python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language_2/generic_async_test
python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language_2/generic_field_mixin6_test/01
python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language_2/generic_field_mixin6_test/none
python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language_2/generic_function_typedef_test/01
python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language_2/generic_method_types_test/01
python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language_2/generic_method_types_test/02
python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language_2/typecheck_multifield_declaration_test
python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language_2/unused_overridden_async_test
python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language_2/vm/allocation_sinking_vm_test
python tools/test.py -m release -c dart2js -r d8 --minified --dart2js-with-kernel --use-sdk --dart2js-batch --reset-browser-configuration language/reexport_core_test
python tools/test.py -m release -c dartk language_2/bad_constructor_test/05
python tools/test.py -m release -c dartk language/reexport_core_test

BUG=
R=rnystrom@google.com

Review-Url: https://codereview.chromium.org/3005863003 .
2017-08-30 14:55:29 -07:00
Janice Collins 3a8a1ca54c Migrate test block 113 to Dart 2.0.
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 .
2017-08-30 08:50:16 -07:00
Alexander Aprelev 7cbb96c199 Wholesale update tests status in attempt to make (fyi) dartkp buildbots green.
Buildbots are here: https://build.chromium.org/p/client.dart.fyi/console.

BUG=
R=asiva@google.com

Review-Url: https://codereview.chromium.org/3000423002 .
2017-08-28 18:32:21 -07:00
Bob Nystrom 46320c5208 Migrate block 115.
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 .
2017-08-28 16:17:28 -07:00
Peter von der Ahé c89fb50056 Fix issues from CL 3009573002.
R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/3003993002 .
2017-08-28 13:51:52 +02:00
Morten Krogh-Jespersen 706d4231ea Migrating block 59, first commit, after tool has run.
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 .
2017-08-25 12:10:13 +02:00
Martin Kustermann 055dbbfd68 [VM] Disable --deoptimize-every/--stacktrace-every in kernel isolate
Since the kernel isolate is just an auxiliary service, it makes little sense that it "inherit" these flag (similarly --checked is not "inherited" by kernel isolate)

Fixes https://github.com/dart-lang/sdk/issues/28788
Fixes https://github.com/dart-lang/sdk/issues/28933

R=vegorov@google.com

Review-Url: https://codereview.chromium.org/2997403002 .
2017-08-24 11:15:15 +02:00
Bob Nystrom 243d1c74eb Migrate language block 46 - canonical_const ... char_escape.
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2996533003 .
2017-08-04 16:52:13 -07:00
Florian Loitsch f16c187649 Update the function_type tests for Dart 2.0.
Mainly ensures that `dynamic Function(int)` and `int Function(int)` aren't treated as assignable.

R=sigmund@google.com

Committed: https://github.com/dart-lang/sdk/commit/46418dc31ab124fe4f6a4f24809ff7ef8afd34ff
Reverted:
Committed: https://github.com/dart-lang/sdk/commit/05bb0edf41ec1f96c069f8a8876c091e3b03d716
Review-Url: https://codereview.chromium.org/2987133002 .
2017-08-03 10:54:41 +02:00
Florian Loitsch 05bb0edf41 Revert "Update the function_type tests for Dart 2.0."
This reverts commit 46418dc31a.

Review-Url: https://codereview.chromium.org/2986313002 .
2017-08-02 17:45:03 +02:00
Florian Loitsch 46418dc31a Update the function_type tests for Dart 2.0.
Mainly ensures that `dynamic Function(int)` and `int Function(int)` aren't treated as assignable.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2987133002 .
2017-08-02 17:07:27 +02:00
Bob Nystrom ad7e4df362 Migrate block 39 language/async_backwards ... /async_star_take.
R=bkonyi@google.com

Review-Url: https://codereview.chromium.org/2990973002 .
2017-07-28 14:28:57 -07:00
Bob Nystrom f32d1b2bcd Migrate block 37, language/arithmetic2 ... /async_await_syntax_test.
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2992003002 .
2017-07-28 11:16:23 -07:00
Erik Corry e431e93e87 Revert two Kernel changes that were causing test failures.
Example failure:
python tools/test.py -m release -c dartk --builder-tag no_ipv6 \
    language/function_type/function_type63_test

Revert "Serialize typedef parameters (including function typed ones) to Kernel and use it to resynthesize typedefs from Kernel."
This reverts commit afc392b66d.
Reverts https://codereview.chromium.org/2990783002

Revert "Add Member.documentationComment and use it to resynthesize documentation from Kernel."
This reverts commit 47ecf72272.
Reverts https://codereview.chromium.org/2990873002

Also reverts some attempts to fix test files:
302b410364
https://codereview.chromium.org/2984343002
05ccf27015
https://codereview.chromium.org/2992683002
f71dcd7834
https://codereview.chromium.org/2984363003

Also had to revert some test changes that were committed on top of a red buildbot, in order to try to get back to a place where bots were green:

23952fdf56
https://codereview.chromium.org/2990773002
557cab2a3e
https://codereview.chromium.org/2985173002

R=johnniwinther@google.com, karlklose@google.com
BUG=

Review-Url: https://codereview.chromium.org/2986093002 .
2017-07-28 14:08:23 +02:00
Bob Nystrom 23952fdf56 Migrate language/arithmetic2_test ... language/async_await_syntax_test.
R=sra@google.com

Review-Url: https://codereview.chromium.org/2990773002 .
2017-07-27 16:13:47 -07:00
Bob Nystrom 557cab2a3e Migrate language/async_backwards... ... language/async_star_take...
R=bkonyi@google.com

Review-Url: https://codereview.chromium.org/2985173002 .
2017-07-27 15:48:30 -07:00
Erik Ernst bb8d6ed680 Added status for syntax_test/none.
Other tools had this status entry, but dartk/dartkp were omitted. In
all cases, the change is needed because the allowed usages of `void`
have been relaxed, but most tools do not support that yet.

R=floitsch@google.com

Review-Url: https://codereview.chromium.org/2984273002 .
2017-07-27 14:03:07 +02:00
Siva Annamalai 33c50e9374 1. Correctly set root_library based on the application script URI instead of looking for the library that has the 'main' method.
2. Adjust the Dart front end to not require a 'main' method when the in memory filesystem is used, this allows execution of VM unit tests which all do not necessarily have a 'main' method (integrated CL from siggi)

3. Change kernel reader to not look for a 'main' methos when Dart_LoadKernel is called.

4. Change Dart_LoadScript to also support loading of dart programs when Dart front end is used

R=aam@google.com, sigmund@google.com

Review-Url: https://codereview.chromium.org/2948273002 .
2017-07-19 18:09:19 -07:00
Sigmund Cherem 9bbe761f4b Update status files for kernel tests
Now kernel-service sends an "error" status whenever there are compile time errors,
so many of these tests that were not executed at runtime are now correctly being
reported by the VM as compile time errors.

This was only possible now that we are plumbing all error messages through a
single API, we can later evaluate whether it makes sense to recover
on some of these errors and how to deal better with recovery

Review-Url: https://codereview.chromium.org/2976403002 .
2017-07-18 20:29:20 -07:00
Erik Ernst 182c4d5923 Added test using void in new positions.
This is the first step of addressing issue 30176.
The test contains syntax errors according to all tools, and status
files have been adjusted accordingly.

R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2980293002 .
2017-07-18 13:27:33 +02:00
Lasse R.H. Nielsen 8e21707a47 Fix bug in test's /none version. Update status files.
R=eernst@google.com

Review-Url: https://codereview.chromium.org/2975193002 .
2017-07-14 14:04:10 +02:00
Lasse R.H. Nielsen 609d26a227 Add assert-in-initializer-list to formal specification.
Add tests for new syntax.
Not dart-formatted yet since the formatter doesn't accept the new syntax.

R=eernst@google.com, floitsch@google.com

Review-Url: https://codereview.chromium.org/2962153002 .
2017-07-10 13:59:38 +02:00
Peter von der Ahé 6bb89e4fbf Use type variables on Typedef correctly.
R=johnniwinther@google.com, paulberry@google.com

Review-Url: https://codereview.chromium.org/2967923002 .
2017-07-05 13:12:27 +02:00
Vyacheslav Egorov f167ad18da test.py: temporarily disable background optimizer in vm-dartk-debug config.
It is causing flakiness on bots.

Unmark tests marked as flaky by 45e4d848d2

See https://github.com/dart-lang/sdk/issues/30016.

BUG=
R=kustermann@google.com

Review-Url: https://codereview.chromium.org/2970733002 .
2017-07-03 17:05:12 +02:00
Peter von der Ahé 45e4d848d2 [gardening] Update status files for kernel debug mode.
Review-Url: https://codereview.chromium.org/2969883002 .
2017-07-03 15:37:16 +02:00
Jens Johansen 6873d96db3 [kernel] Update status file
Removed no-longer-current status-file entry.

See issue #28790.

BUG=
R=vegorov@google.com

Review-Url: https://codereview.chromium.org/2962303002 .
2017-07-03 08:17:17 +02:00
Jens Johansen 6cb702b723 [Kernel] Add check in the constant evaluator.
Currently some tests pass in checked mode but fails in non-checked mode
because we don't check the result of a constant-evaluation that should
be bool in non-checked mode.
This CL changes it so we always check the bool result in the constant-evaluator.

BUG=
R=kustermann@google.com

Review-Url: https://codereview.chromium.org/2956493003 .
2017-06-29 11:18:10 +02:00
Paul Berry 0958e40357 Adjust return types of spec-mode function expressions to match VM.
R=scheglov@google.com

The spec is unclear about what is supposed to happen here (see
https://github.com/dart-lang/sdk/issues/30044).  Matching the VM
behavior allows us to pass the existing tests.
Review-Url: https://codereview.chromium.org/2958363002 .
2017-06-28 14:36:00 -07:00
Ben Konyi 89eda8a533 Updated status file to fix kernel bot failures.
TBR=zra@google.com
BUG=

Review-Url: https://codereview.chromium.org/2953933003 .
2017-06-22 15:09:49 -07:00
Ben Konyi 143baba8fc Reintroducing parser changes to cause compile-time errors when trying to reinitialize a final field. Updated status files to hopefully address the test failures. Issue 29658.
This reverts commit 12e93cc41e.

BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2953843003 .
2017-06-22 13:48:57 -07:00
Martin Kustermann 42e2ae40e8 Update status file for dartk-checked (status files are out-dated due to builder being on FYI)
Closes https://github.com/dart-lang/sdk/issues/29225

R=jensj@google.com

Review-Url: https://codereview.chromium.org/2948153005 .
2017-06-22 15:36:30 +02:00
Ryan Macnak 095ff155fd VM: Allow trailing comma in assert statements.
Issue #29959

R=regis@google.com

Review-Url: https://codereview.chromium.org/2946173002 .
2017-06-21 09:08:16 -07:00
Jens Johansen 202306f39b [kernel] Fix loading of type argument in catch.
Catch simply gave NullConstant as arguments to _instanceOf,
now I've copied what the IsExpression does, and made
LoadInstantiatorTypeArguments actually work in this case
(by filling out the scopes_->this_variable value,
by actually visiting the catch guard in the scope builder
rather than skipping it).

Fixes #29553.

BUG=
R=kmillikin@google.com

Review-Url: https://codereview.chromium.org/2938173002 .
2017-06-21 10:56:21 +02:00
Jens Johansen 29036d398b [kernel] Fix loss of supertype arguments.
Before this, if a generic class was instantiated with only dynamic,
TypeArgument::null would be used as the type argument, ignoring
types from the super.
Now it only returns TypeArguments::null if the class directly gives all
type arguments (and they are all dynamic).

Fixes #29537

BUG=
R=kmillikin@google.com

Review-Url: https://codereview.chromium.org/2941983002 .
2017-06-21 10:22:40 +02:00
Alan Knight 12e93cc41e Revert "Updated parser to produce error when trying to reinitialize final variables in class constructors. Fixes issue #29658."
This reverts commit 9755a98b00.

BUG=

Review-Url: https://codereview.chromium.org/2949943002 .
2017-06-20 15:25:55 -07:00
Ben Konyi 9755a98b00 Updated parser to produce error when trying to reinitialize final variables in class constructors. Fixes issue #29658.
BUG=
R=zra@google.com

Example:
Foo {
  final int x = 10;
  Foo(this.x); // Error
  Foo.named() : x = 42; // Error
}
Review-Url: https://codereview.chromium.org/2947043002 .
2017-06-20 14:40:36 -07:00
Jens Johansen 5472eb7831 [kernel] Don't emit field initializers in a redirecting constructor
BUG=
R=vegorov@google.com

Review-Url: https://codereview.chromium.org/2940323002 .
2017-06-20 13:54:25 +02:00
Jens Johansen c649557584 [kernel] Check type for list literals
BUG=
R=kmillikin@google.com

Review-Url: https://codereview.chromium.org/2949493002 .
2017-06-20 13:04:08 +02:00
Ben Konyi a4a227e375 Revert "Updated parser to produce error when trying to reinitialize final variables in class constructors. Fixes issue #29658."
This reverts commit b5cff3f68f.

TBR=zra@google.com

Review-Url: https://codereview.chromium.org/2944223002 .
2017-06-19 17:23:01 -07:00
Ben Konyi b5cff3f68f Updated parser to produce error when trying to reinitialize final variables in class constructors. Fixes issue #29658.
BUG=
R=asiva@google.com

Example:
Foo {
  final int x = 10;
  Foo(this.x); // Error
  Foo.named() : x = 42; // Error
}
Review-Url: https://codereview.chromium.org/2939553005 .
2017-06-19 12:07:37 -07:00
Jens Johansen 0a1583aa04 [kernel] Fix assert message.
This mimics the behaviour of the source-based pipeline,
i.e. instead of "manually" calling _AssertionError._create and giving
the correct parameters (wrong parameters, actually), use the helper
method _AssertionError.ThrowNew.

BUG=
R=ahe@google.com, vegorov@google.com

Review-Url: https://codereview.chromium.org/2940283002 .
2017-06-16 12:28:18 +02:00
Jens Johansen dc72d9c34e Update language_kernel.status for closed issue.
BUG=
R=vegorov@google.com

Review-Url: https://codereview.chromium.org/2940073002 .
2017-06-15 13:41:13 +02:00