Commit Graph

1240 Commits

Author SHA1 Message Date
Jens Johansen 235e5f3709 Allow component to easily adopt libraries at will
Change-Id: Ia84d56b4c7d7403467b04e90c2b63859ecee509d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96042
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-03-08 11:01:17 +00:00
Aske Simon Christensen b5a1f6c36b Reland "[CFE] Move constant evaluation number semantics handling to front end."
This is a reland of c2b466b09f

Original change's description:
> [CFE] Move constant evaluation number semantics handling to front end.
> 
> JavaScript number semantics is currently implemented as the simplistic
> version previously present in DDC. This is a starting point for fully
> detailed JS number semantics.
> 
> Change-Id: Id728b3dacec892a5cbf7ece0d9faea51427f5f9b
> Reviewed-on: https://dart-review.googlesource.com/c/94746
> Commit-Queue: Aske Simon Christensen <askesc@google.com>
> Reviewed-by: Sigmund Cherem <sigmund@google.com>

Change-Id: I1a488ef41bda819d34cb45cd481fd8fd88bfb01e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95460
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-03-06 10:30:37 +00:00
Aske Simon Christensen c769743f67 [CFE] Transform constants in annotations on all parameters.
The constant transformer would only transform optional parameters,
since these are the only ones that can contain default values. This
caused it to miss annotations on required positional parameters.

Change-Id: I49bfc84a1a533cec87db557306fdeb3569156947
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/93981
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-03-05 10:18:37 +00:00
Aske Simon Christensen bc2b78886d [CFE] handle set literals in constant evaluator.
Change-Id: I9dc5f7a3d2e7bc0f53e0370042bc59d688a8c4b3
Reviewed-on: https://dart-review.googlesource.com/c/95021
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-03-04 10:20:56 +00:00
Aske Simon Christensen 2b2e71770c [kernel] Add SetConstant node to Kernel.
Change-Id: I83da1afc9f15009c650a871a51ca8171b482d4df
Reviewed-on: https://dart-review.googlesource.com/c/94863
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-03-04 10:20:56 +00:00
Kevin Millikin 053dfbb2ac [cfe] Compile list spread elements into block expressions
Change-Id: Ic869cbfb2f3dc13a56be771acf0e12df850ff3c6
Reviewed-on: https://dart-review.googlesource.com/c/94748
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-03-04 08:29:56 +00:00
Aske Simon Christensen 1471b8e444 Revert "[CFE] Move constant evaluation number semantics handling to front end."
This reverts commit c2b466b09f.

Reason for revert: Broke precompiled, DDC and others.

Original change's description:
> [CFE] Move constant evaluation number semantics handling to front end.
> 
> JavaScript number semantics is currently implemented as the simplistic
> version previously present in DDC. This is a starting point for fully
> detailed JS number semantics.
> 
> Change-Id: Id728b3dacec892a5cbf7ece0d9faea51427f5f9b
> Reviewed-on: https://dart-review.googlesource.com/c/94746
> Commit-Queue: Aske Simon Christensen <askesc@google.com>
> Reviewed-by: Sigmund Cherem <sigmund@google.com>

TBR=sigmund@google.com,askesc@google.com

Change-Id: I732c75b72df0e0f084ad2784349bee346ae5b7ed
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/95027
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-03-01 14:34:15 +00:00
Jens Johansen 6e06047004 AST to Text more resilient in writeAdditionalExports
Change-Id: If2a3e87f935e75421802358b028894a8fbb093d9
Reviewed-on: https://dart-review.googlesource.com/c/95025
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-03-01 14:24:53 +00:00
Aske Simon Christensen c2b466b09f [CFE] Move constant evaluation number semantics handling to front end.
JavaScript number semantics is currently implemented as the simplistic
version previously present in DDC. This is a starting point for fully
detailed JS number semantics.

Change-Id: Id728b3dacec892a5cbf7ece0d9faea51427f5f9b
Reviewed-on: https://dart-review.googlesource.com/c/94746
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-03-01 13:30:53 +00:00
Paul Berry 545ebe1741 Prepare to publish analyzer 0.35.3
This is needed so that we can publish a version of analyzer_plugin
that depends on it; also so that dartfmt work on "UI as code" features
can proceed.

Change-Id: I7647fd69fec28b9e788f89e915c14779815fcc02
Reviewed-on: https://dart-review.googlesource.com/c/94803
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-02-28 20:54:19 +00:00
Kevin Millikin 38259ca3c8 [Kernel] Change block expression to have a block body
Having a block as body instead of a list of expressions simplifies
code handling block expressions.  Since it is always a block, it can
be left untagged in the serialized representation so the serialized
representation is not changed with this change.

Change-Id: I3c34f663041ff8cb4a530c2d6a148343e59c68fe
Reviewed-on: https://dart-review.googlesource.com/c/94223
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Auto-Submit: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-02-25 14:20:07 +00:00
Peter von der Ahé 76e3dfe096 Remove TypeEnvironment.legacyMode
Change-Id: I1bcebc66cbf4d3cb749fdc4cec382d936d4107ca
Reviewed-on: https://dart-review.googlesource.com/c/94212
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-02-25 12:17:54 +00:00
Peter von der Ahé 20da48c7cf Remove unused legacyMode from constant transformer
Change-Id: I3ccd276d1ebe5aa63d45625da70fd417b93d29c7
Reviewed-on: https://dart-review.googlesource.com/c/94211
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-25 12:17:54 +00:00
Peter von der Ahé ceb998ecc0 Remove unused TargetFlags
Change-Id: I33f1ffaec5bb9a936639424b78393cd187344ff9
Reviewed-on: https://dart-review.googlesource.com/c/94210
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-25 12:17:54 +00:00
Paul Berry 9b55682a5c Prepare to publish analyzer 0.35.2
Change-Id: I532d805f26e453aec0a38f4ce5f9213f6acd0b95
Reviewed-on: https://dart-review.googlesource.com/c/94020
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-02-22 22:20:42 +00:00
Peter von der Ahé 6b29680b12 Enable collection of type checks for benchmarking
Change-Id: Iea59fcac1e56e3335f08c2a8dd7accc2b883547a
Reviewed-on: https://dart-review.googlesource.com/c/93946
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-22 13:01:09 +00:00
Kevin Millikin c9b8bae4e6 [Kernel] Add BlockExpression to the Kernel language
This is not yet used or tested.

Change-Id: Id050802926ad6452df3c39ace12ea5dd56d4faaa
Reviewed-on: https://dart-review.googlesource.com/c/87970
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Kevin Millikin <kmillikin@google.com>
2019-02-22 12:38:26 +00:00
Aske Simon Christensen 25bd6a1bd8 [CFE] Remove dead code for boolean method invocation.
Boolean operations are translated into explicit kernel nodes, so they
will not appear as method calls during constant evaluation.

Change-Id: I30a0abfe37989228d5cff4b3fa3ff5407404e747
Reviewed-on: https://dart-review.googlesource.com/c/93980
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-02-22 11:31:15 +00:00
Dmitry Stefantsov ef9592a9c7 [kernel] Add (de)serialization for ExpressionStatements
Change-Id: I388e8201086227a92adb2b7ac6622ea9def340eb
Reviewed-on: https://dart-review.googlesource.com/c/92563
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-20 12:40:21 +00:00
Dmitry Stefantsov 187d6ceb20 [kernel] Add statements to Kernel (de)serialization verifier
Change-Id: I560a3cebf2b9f116b02cd1803d9fde4c50a1bf41
Reviewed-on: https://dart-review.googlesource.com/c/92562
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-20 12:40:21 +00:00
Dmitry Stefantsov 395c0e4b98 [kernel] Add text (de)serialization for NamedTypes
Change-Id: I70aa3092a4a7b9c7f77b4e007a9d6fd602883ccf
Reviewed-on: https://dart-review.googlesource.com/c/92560
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-20 12:40:21 +00:00
Dmitry Stefantsov 14f5936468 [kernel] Simplify (de)serialization encoding for FunctionTypes
Change-Id: I1fde87601eb57d1e73fbc262b5b6be659fa2d3a0
Reviewed-on: https://dart-review.googlesource.com/c/92431
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-20 12:40:21 +00:00
Dmitry Stefantsov 5e3e633d5d [kernel] Add text (de)serialization for TypeParameterTypes
Change-Id: I6a50629b40fab061f3bade650b11499b505f9c3d
Reviewed-on: https://dart-review.googlesource.com/c/92429
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-20 12:40:21 +00:00
Dmitry Stefantsov 923cea6652 [kernel] Add Bind and Binder combinators
Change-Id: I24bb40faa516eb7093561c2348854771c9eac7d1
Reviewed-on: https://dart-review.googlesource.com/c/93407
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-20 12:40:21 +00:00
Dmitry Stefantsov c19af8cee9 [kernel] Cleanup code for (De)SerializationEnvironment
Change-Id: I751d13014f44bea99733eccdb9665ce4a50da8b2
Reviewed-on: https://dart-review.googlesource.com/c/93222
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-20 12:40:21 +00:00
Dmitry Stefantsov d60354b521 [kernel] Add binders and close terms as separate operations
Change-Id: I3e9372df5f37cad91d4609d052f05c94fdc54ab1
Reviewed-on: https://dart-review.googlesource.com/c/92428
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-20 12:40:21 +00:00
Dmitry Stefantsov a3736868c0 [kernel] Add text (de)serialization for type parameters
Change-Id: Id661da5ff16d9151852a563be08adc702c06b60a
Reviewed-on: https://dart-review.googlesource.com/c/92420
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-20 12:40:21 +00:00
Aske Simon Christensen f4b649ca4f [CFE] Propagate unevaluated constants upward.
When evaluating a constant expression, first evaluate all children.
If any of these turn out to be unevaluated, produce a partially
evaluated clone of the expression as a new unevaluated constant.

For lazy operators, if the left-hand side turns out unevaluated, the
right-hand side is included unmodified (not partially evaluated) in
the resulting unevaluated constant expression tree.

The implementation is optimized for the typical case of no unevaluated
constants. The intent is that the handling of unevaluated constants
introduces as little overhead as possible in this case.

Change-Id: Ief8d36357fac01c07bc0049aede0888cd3bc7999
Reviewed-on: https://dart-review.googlesource.com/c/93029
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-18 15:21:03 +00:00
Aske Simon Christensen 5e70883859 [CFE] Refactor unevaluatedArguments
Change-Id: Ia4e108ceb2c37c3e73990f08d249db2360f38e4e
Reviewed-on: https://dart-review.googlesource.com/c/93032
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-18 15:21:03 +00:00
Aske Simon Christensen cba4168da3 [CFE] Use _evaluateSubexpression in more places.
Change-Id: I48053fe01c5466326aed26768c4a308570e2dbdf
Reviewed-on: https://dart-review.googlesource.com/c/92781
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-02-18 15:21:03 +00:00
Daco Harkes 20c3cd62fc Revert adding dart:ffi to core_types and fasta kernel_target
Change-Id: I0c8a05cf8715962ab6ebe787dafd14fe611a8a0e
Reviewed-on: https://dart-review.googlesource.com/c/93172
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-02-15 10:14:00 +00:00
Kevin Moore b15fe3a994 pkg:kernel: fix path to pkg:test in pubspec
Change-Id: I1518b916433746f75514f27fdc1456ac535a6dcb
Reviewed-on: https://dart-review.googlesource.com/c/93300
Auto-Submit: Kevin Moore <kevmoo@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-02-15 06:42:44 +00:00
Daco Harkes 6a5c9597c6 Revert adding enclosingLibrary to ast.dart
Change-Id: Iacc24b512d1ff40bd54e37ba0ad0611fa46234b7
Reviewed-on: https://dart-review.googlesource.com/c/93169
Auto-Submit: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2019-02-14 15:49:08 +00:00
Samir Jindel c8a2a7b719 [vm/ffi] Move FFI transformations from pkg/kernel to pkg/vm.
Change-Id: I8bc0c60ceb98ad88aca31934b6eaaf1e55128a10
Reviewed-on: https://dart-review.googlesource.com/c/93081
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Commit-Queue: Samir Jindel <sjindel@google.com>
2019-02-13 15:53:35 +00:00
Peter von der Ahé cf5a7cf36a Simplify class_hierarchy_test: Move tests of getLegacyLeastUpperBound to own file
Change-Id: Iff64676644f17c32dea2b01e0c25e92af1f63774
Reviewed-on: https://dart-review.googlesource.com/c/93024
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-13 14:35:15 +00:00
Peter von der Ahé a92ddcf34b Add package:expect/matchers_lite.dart
Change-Id: I671f317ee2c806380584646c75412762e549418e
Reviewed-on: https://dart-review.googlesource.com/c/93023
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-13 14:35:15 +00:00
Peter von der Ahé 0dfac95dac Simplify class_hierarchy_test: don't use package:test
Change-Id: I68319c20230b1194ef372fed4526bfcbb3b50442
Reviewed-on: https://dart-review.googlesource.com/c/93022
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-13 14:35:15 +00:00
Peter von der Ahé 5bf0065b46 Simplify class_hierarchy_test: don't use package:test_reflective_loader
Change-Id: I4eb3678ddda2b020404fba9adcc658362df8ebfa
Reviewed-on: https://dart-review.googlesource.com/c/93021
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-13 14:35:15 +00:00
Peter von der Ahé f954c0535c Simplify class_hierarchy_test: remove abstract class
Change-Id: I805325a165a8d0540c3c839b656cc39fb898228a
Reviewed-on: https://dart-review.googlesource.com/c/92980
Reviewed-by: Jens Johansen <jensj@google.com>
2019-02-13 14:35:15 +00:00
Daco Harkes 7d46d4b5cb [vm / library] Foreign function interface prototype
Prototype for `dart:ffi` on Linux/MacOS x64 in JIT mode.
`dart:ffi` is experimental and its API is likely to change in the future.
Progress and design decisions are tracked in https://github.com/dart-lang/sdk/projects/13


issue: https://github.com/dart-lang/sdk/issues/34452
Change-Id: Ifa4566388e42c8757f154741d11e303465ef305d
Cq-Include-Trybots: luci.dart.try:vm-kernel-optcounter-threshold-linux-release-x64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-precomp-linux-release-simarm-try, vm-kernel-precomp-linux-release-simarm64-try, vm-kernel-precomp-linux-release-x64-try, vm-kernel-precomp-mac-release-simarm64-try, vm-kernel-precomp-win-release-x64-try, vm-kernel-mac-debug-x64-try, vm-kernel-asan-linux-release-x64
Reviewed-on: https://dart-review.googlesource.com/c/80124
Reviewed-by: Samir Jindel <sjindel@google.com>
Auto-Submit: Daco Harkes <dacoharkes@google.com>
2019-02-13 12:42:47 +00:00
Paul Berry 9d280198a4 Prepare to publish analyzer version 0.35.1.
Change-Id: Ib3d31fa14ec2144a04d95f33bac385f38a47d6a7
Reviewed-on: https://dart-review.googlesource.com/c/92820
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-02-12 19:39:21 +00:00
Aske Simon Christensen ed5bdfa227 [CFE] Fix check for unavailable constructors.
To support separate compilation in DDC, the constant evaluator would
leave instantiations through unavailable constructors unevaluated.
These constructors were identified by being in an external library and
having no initializers. This check erroneously triggered on
"const Object()", breaking the bytecode generator.

Change-Id: I73c10982a36086a431e9fbd54d67cbcde90df68e
Reviewed-on: https://dart-review.googlesource.com/c/92721
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-02-12 14:26:09 +00:00
Aske Simon Christensen 250f9665fb [CFE] Get constants backend from backend target.
Change-Id: I04286cd38eb45ca38f8335d896c503becad16566
Reviewed-on: https://dart-review.googlesource.com/c/92136
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2019-02-12 09:56:57 +00:00
Aske Simon Christensen b7afb22323 [CFE] Eliminate redundant coreTypes parameter.
Change-Id: Ie76a70454ef6dd7e60b916e2820c1d4e78b3e88d
Reviewed-on: https://dart-review.googlesource.com/c/92134
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-12 09:56:57 +00:00
Aske Simon Christensen 44681fa98e [CFE] Move DDC specific behavior into ConstantsBackend.
This avoids subclassing the constant evaluator in DDC.

Change-Id: If529761dc3fac474fade925bf0daaff51ad6e71b
Reviewed-on: https://dart-review.googlesource.com/c/92046
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2019-02-12 09:56:57 +00:00
Dmitry Stefantsov 88fea76f58 [kernel] Add text (de)serialization for simple function types
Change-Id: Ied1be7c530793f94fea0c71ef8112a4524d6b815
Reviewed-on: https://dart-review.googlesource.com/c/92289
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-02-08 13:39:35 +00:00
Aske Simon Christensen ac95355fdb Compiler option for environment defines
Change-Id: I50f0085ebbc2c9a3af26769a0004bfb8361d85f2
Reviewed-on: https://dart-review.googlesource.com/c/91340
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-02-07 16:15:52 +00:00
Aske Simon Christensen 8a45b5eb57 Move environment handling into the front-end constant evaluator.
Change-Id: Id01bad9d9dbb7d5f6104a0f633d8303fecfa29db
Reviewed-on: https://dart-review.googlesource.com/c/91227
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-02-04 13:31:30 +00:00
Dmitry Stefantsov 971733a08b [kernel] Add a class to track variance of type parameters
Change-Id: Ib03f5be2a3a4a2e7e81bc573b7865e9cefe75e7e
Reviewed-on: https://dart-review.googlesource.com/c/85080
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2019-02-01 13:14:36 +00:00
Peter von der Ahé 7fa0376af7 Implement subtype rules for Null in Fasta types
Change-Id: I5ca9e1b16a463ad8101139769b189f3e9d00c52c
Reviewed-on: https://dart-review.googlesource.com/c/91720
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-02-01 13:07:57 +00:00