Commit graph

38620 commits

Author SHA1 Message Date
Johnni Winther fa5b98126c Revert "Fix code-size regression"
This reverts commit 565b30123c.

BUG=

Review URL: https://codereview.chromium.org/2037593002 .
2016-06-02 11:41:44 +02:00
Johnni Winther f1ba23bd15 Compute non-final static fields without the constant compiler.
Previously the non-final static fields were pulled from the constant compiler.
Now, since all fields have a valid [constant] field, these fields are now computed
directly from the set of all referenced static fields.

R=sigmund@google.com

Review URL: https://codereview.chromium.org/2024873002 .
2016-06-02 11:33:48 +02:00
Johnni Winther b0bc802b5c Register deserialized lazy statics.
Register non-const fields without constant initializers as 'lazy statics' during deserialization.

R=sigmund@google.com

Review URL: https://codereview.chromium.org/2023863002 .
2016-06-02 11:24:12 +02:00
Erik Ernst c35caf253e Introduces "--initializing-formal-access".
This CL is an adjusted version of CL 2025853002, adding updates to
`InitializingFormalElementZ` to match the updates applied to
`InitializingFormalElementX`, and adding the new option to the
`MessageKind.DUPLICATE_DEFINITION` example.

Description from 2025853002:

This CL adjusts the treatment of initializing formals, such that they
can be used in initializers and in constructor bodies. E.g., `x` can be
used as in `C(this.x) : y = x { var z = x + 2; }`.

It hides the new feature under the option '--initializing-formal-access'
which is used in the test 'initializing_formal_access_test.dart'.

It also adds an `example` test to `MessageKind.DUPLICATE_DEFINITION` to
verify that name clashes among initializing formals and other
parameters are detected (which was previously not the case).

Finally, it fixes a typo in a comment, `InitializingFormalParameter` ->
`InitializingFormalElement`.

R=johnniwinther@google.com

Review URL: https://codereview.chromium.org/2029003002 .
2016-06-02 11:09:56 +02:00
Johnni Winther 7499d74f4b Compute and check members for serialization
R=sigmund@google.com

Review URL: https://codereview.chromium.org/2015903002 .
2016-06-02 11:00:13 +02:00
Johnni Winther ac1bc765d9 Support references to unserialized libraries.
This adds initial support for combining serialized and unserialized libraries
even in the case where the serialized library refers to the unserialized library.

R=sigmund@google.com

Review URL: https://codereview.chromium.org/2024783003 .
2016-06-02 10:39:29 +02:00
Johnni Winther 5916ee557f Improve equivalence testing of unnamed mixin applications.
The equivalence of unnamed mixin applications cannot be tested directly since
they are not nominal entities. In the example below two classes by the synthetic
name `S+M` are introduces. This CL adds a reference to the introducing class so
that the unnamed mixin applications can be distinguished as `S+M from C1` and
`S+M from C2`.

class S {}
class M {}
class C1 extends S with M {}
class C2 extends S with M {}

R=sigmund@google.com

Review URL: https://codereview.chromium.org/2017903002 .
2016-06-02 10:26:26 +02:00
Johnni Winther 565b30123c Fix code-size regression
This reinserts the native spec-string interpretation.

The CL https://codereview.chromium.org/2004833003/ changed the interpretation of `List` from `List<E>` to `List<dynamic>` causing these native classes to be added through subtyping:

NativeUint8List <: List
NativeUint8ClampedList <: List
NativeUint32List <: List
NativeUint16List <: List
NativeInt8List <: List
NativeInt32List <: List
NativeInt16List <: List
NativeFloat64List <: List
NativeFloat32List <: List
NativeTypedArrayOfInt <: List
NativeTypedArrayOfDouble <: List

R=sra@google.com

Review URL: https://codereview.chromium.org/2021723003 .
2016-06-02 10:16:44 +02:00
Konstantin Shcheglov a6b93661fd Fix two build failures - for typeProvider and findElement.
TBR

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2032893002 .
2016-06-01 18:54:10 -07:00
Harry Terkelsen add59a9607 mark now-passing tests in the dart2js-linux bots
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/2036553003 .
2016-06-01 17:38:22 -07:00
Konstantin Shcheglov 18d296261a Delay 'supertype' for ClassElementImpl and EnumElementImpl.
This requires "unbanning" AnalysisContext.typeProvider access during
analysis to make 'supertype' lazy. We can make it lazy for summaries
by using ResynthesizerContext, but for non-summary case there is no
other way.

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2034473002 .
2016-06-01 17:20:05 -07:00
Konstantin Shcheglov be47b2121e Start pulling apart ClassElementImpl and EnumElementImpl.
So far just moving data and accessors for this data, which exist
only in ClassElementImpl into this class.

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2029303002 .
2016-06-01 17:13:39 -07:00
Harry Terkelsen 2b534b70bb triage failing dart2js-jsshell tests
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/2026393003 .
2016-06-01 15:46:01 -07:00
Vijay Menon c9510acfc9 Roll DDC forward
R=cbracken@google.com, keertip@google.com

Review URL: https://codereview.chromium.org/2032703002 .
2016-06-01 14:42:49 -07:00
Konstantin Shcheglov fb0020f6e0 Move constant expression resynthesis into ConstVariableElement mixin.
This adds a megamorphic call into 'get constantInitializer', but
allows us to remove duplicate code.

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2023393003 .
2016-06-01 14:37:32 -07:00
Ryan Macnak 907a6b1c3b Revert "VM: Add result cid information for recognized methods."
In Flutter, this caused

  RangeError (index): Index out of range: index should be less than null: 0
  Uint32List.[]= (dart:typed_data)
  _HashVMBase&MapMixin&&_LinkedHashMapMixin._insert (dart:collection-patch/compact_hash.dart)

This reverts commit 0ae4ae5033.

TBR=fschneider@google.com

Review URL: https://codereview.chromium.org/2023423002 .
2016-06-01 14:08:48 -07:00
Konstantin Shcheglov 59d62fd72c Infer only ClassElementImpl in InstanceMemberInferrer, tweaks for link.
R=paulberry@google.com, brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2028253002 .
2016-06-01 13:01:35 -07:00
Ryan Macnak 435b371cb7 Make the object store visible in Observatory.
R=turnidge@google.com

Review URL: https://codereview.chromium.org/2012333002 .
2016-06-01 13:00:22 -07:00
Konstantin Shcheglov 3fd3f07ba2 Start making constructor elements lazy.
R=paulberry@google.com, brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2032663002 .
2016-06-01 12:56:21 -07:00
Konstantin Shcheglov 554df80cd7 Rename ClassElementImpl and its subclasses.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2025233003 .
2016-06-01 12:41:02 -07:00
Konstantin Shcheglov be990cd134 Start separating ClassElementImpl for Class and Enum.
Maybe they should be named differently though, like ClassElementImpl
and EnumElementImpl.

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2027893002 .
2016-06-01 10:38:38 -07:00
Konstantin Shcheglov 720a850208 Tweaks for resynthesizing class fields.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2029113002 .
2016-06-01 10:26:59 -07:00
Terry Lucas 5a9b600360 Updated to latest WebKit changes
TBR=jacobr@google.com

Review URL: https://codereview.chromium.org/2032563002 .
2016-06-01 09:48:53 -07:00
Brian Wilkerson 3fbb349629 Update status pages to include newer properties
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2023273002 .
2016-06-01 08:26:30 -07:00
Brian Wilkerson 62eb45dc32 Display additional context information in status pages
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2030573002 .
2016-06-01 08:11:31 -07:00
Konstantin Shcheglov 097b11ce04 Remove buildTopLevelFunctions() and resynthesize top-level functions directly.
The performance is OK despite the use of the where/map.toList chain.

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2026123003 .
2016-06-01 08:06:20 -07:00
Konstantin Shcheglov 3b671f6355 Replace buildVariableInitializer() with explicit initializer function creation.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2027043003 .
2016-06-01 08:03:19 -07:00
Florian Loitsch e1bf3506d1 Make linked-list non-circular.
This bug was introduced when making the collection library strong-mode clean.

Fixes #26522
BUG= http://dartbug.com/26522
R=lrn@google.com

Review URL: https://codereview.chromium.org/2015513006 .
2016-06-01 14:19:37 +02:00
Florian Schneider 0ae4ae5033 VM: Add result cid information for recognized methods.
We already had this for recognized factories. This CL adds a result cid
for the remaining recognized methods.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2018363004 .
2016-06-01 09:42:48 +02:00
William Hesse 915d9b2db2 Update dartium status on Windows for co19 roll
TBR=sgjesse@google.com
R=sgjesse@google.com
BUG=

Review URL: https://codereview.chromium.org/2024103006 .
2016-06-01 09:11:04 +02:00
William Hesse 7c76d4d3c9 Update status for dartium tests after co19 roll
BUG=
TBR=sgjesse@google.com
R=sgjesse@google.com

Review URL: https://codereview.chromium.org/2029503002 .
2016-06-01 08:13:23 +02:00
Sigmund Cherem 4b0865142d Rewind version of schedule_test, it causes failures that require additional
fixing

BUG= https://github.com/dart-lang/sdk/issues/26585
R=whesse@google.com

Review URL: https://codereview.chromium.org/2028883002 .
2016-05-31 16:28:24 -07:00
Harry Terkelsen c5d7d27ed5 fix status file for d8-checked build bot
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/2024293002 .
2016-05-31 16:21:26 -07:00
William Hesse ca6983b9af Make dartium tests continue if layout tests result uploading fails
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/2026093002 .
2016-06-01 00:58:04 +02:00
Sigmund Cherem d1d46593d5 Make test.dart override only those dependencies declared in the pubspec.yaml
file (attempt #2).

Differences from before:
 - pull in transitive dependencies that were missing
 - pass on the package-root in standalone/io/test_runner_test

BUG= http://dartbug.com/26563
R=whesse@google.com

Review URL: https://codereview.chromium.org/2019163002 .
2016-05-31 15:48:54 -07:00
Ryan Macnak 6e2c4636cd Bump the C stack pointer when building Dart frames to maintain the ARM64 ABI requirements without guessing the stack limit.
Fixes running with the profiler on ARM64.

Cf. 5d02929fa0.

BUG=http://dartbug.com/26472
R=vegorov@google.com, zra@google.com

Review URL: https://codereview.chromium.org/2014413003 .
2016-05-31 15:36:44 -07:00
Paul Berry 858407ebf0 Fix analyzer bot flakiness (correctly this time).
In f54e667773 I attempted to work around
analyzer flakiness in
co19/Language/Libraries_and_Scripts/Scripts/syntax_t11, but I
accidentally applied the change to
Language/Mixins/Mixin_Application/syntax_t11 instead.

This CL applies the workaround to the correct instance of syntax_t11.

TBR=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/2022343002 .
2016-05-31 15:29:53 -07:00
Paul Berry 73c7ca9a25 Fix AST-based type inference with explicit type parameters for method calls.
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2028713003 .
2016-05-31 15:17:15 -07:00
Konstantin Shcheglov 2390d5d0c0 Resynthesize local functions lazily.
Now we can remove 'buildExecutableCommonParts'.

R=paulberry@google.com, brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2026013002 .
2016-05-31 12:23:57 -07:00
Harry Terkelsen 7b2edf83df mark more tests as missing compile-time errors
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/2027593004 .
2016-05-31 12:22:30 -07:00
Konstantin Shcheglov 1eccc0f244 Resynthesize type parameters of executables lazily.
This allows us to finish moving type parameters resynthesis to
elements and remove the workaround code.

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2023043002 .
2016-05-31 12:07:09 -07:00
Zachary Anderson a89ee91480 Fixes observatory crash for DBC
Review URL: https://codereview.chromium.org/2024223002 .
2016-05-31 11:18:44 -07:00
Harry Terkelsen e9d41ebc23 declare that dart2js fails some 'yield*' tests
These tests assert that 'yield*' expressions in non-generator functions
should be a compile-time error. But the spec does not have yield as a
reserved word, so a statement like 'yield* e;' can be interpreted as an
expression statement multiplying the variable 'yield' by e. This is how
dart2js and the VM interpret yield outside of generator functions.

See the discussion in issue #25495

R=sigmund@google.com

Review URL: https://codereview.chromium.org/2024203002 .
2016-05-31 11:10:23 -07:00
Konstantin Shcheglov 79d0750417 Rollback the previous List<TypeParameterType> change and refix.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2022993002 .
2016-05-31 10:59:11 -07:00
Konstantin Shcheglov 3d70bc399e Rollback checking bounds of type parameters of function type aliases.
The line:

List<DartType> parameterTypes = element.type.typeArguments;

returns an empty list for typedefs.

For now I want to unblock Keerti.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2027723002 .
2016-05-31 10:51:23 -07:00
Paul Berry f54e667773 Co19 fixes for analyzer and runtime.
The runtime fix is from whesse@google.com.

R=whesse@google.com

Review URL: https://codereview.chromium.org/2023763008 .
2016-05-31 10:45:20 -07:00
Konstantin Shcheglov 8d639129fb Resynthesize labels lazily.
R=paulberry@google.com, brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2028693002 .
2016-05-31 10:37:51 -07:00
Regis Crelier 070bb612b3 Reference newly filed issue instead of unrelated closed issue.
R=hausner@google.com

Review URL: https://codereview.chromium.org/2028703002 .
2016-05-31 10:07:57 -07:00
Konstantin Shcheglov 1c69a71bf1 Create List<DartType> instead of List<TypeParameterType>.
FunctionTypeImpl needs List<DartType>, so we cannot use more specific
List<TypeParameterType> as is. In order to avoid conversion (and
creating additional objects), we have to use List<DartType>.

R=paulberry@google.com, brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2028443003 .
2016-05-31 09:14:21 -07:00
Konstantin Shcheglov 33d8f770ca Resynthesize typedefs lazily.
R=paulberry@google.com, brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2026743002 .
2016-05-31 09:08:11 -07:00