Commit Graph

437 Commits

Author SHA1 Message Date
Alexander Markov 37a25d9100 [vm/bytecode] Add a compile-time error if there are too many arguments.
Issue: https://github.com/dart-lang/sdk/issues/37305
Change-Id: I9dac7c1b7b49fca8531ca2bf83b1c309d8217969
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106984
Reviewed-by: Aart Bik <ajcbik@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2019-06-24 16:02:05 +00:00
Alexander Markov da8cb470cc [vm/bytecode] Represent classes, libraries, scripts and recursive types in bytecode
Size of a large application:
Before: 26628600
After: 21480120 (-19.3%)

Size of snapshots:

isolate_snapshot_framework.bin
Before: 9322496
After: 6782976 (-27.2%)

isolate_snapshot_product_framework.bin
Before: 9166848
After: 6602752 (-27.9%)

Regressions in tests:

1) Test language_2/type_alias_equality_test/04 fails similarly to default mode, as VM
does not implement comparison of function types according to the specification.
Previously this test was passing as function types were canonicalized in bytecode,
which was not always correct. This CL fixes the problem with canonicalization of
function types in bytecode and the test starts failing again.

2) Tests standalone_2/entrypoints_verification_test, standalone_2/io/test_extension_test,
standalone_2/io/test_extension_fail_test fail as native extensions are not supported
in bytecode yet. These tests start passing after df5e7aac17,
which switched bytecode tests to kernel service (on x64), because kernel service doesn't
drop ASTs. This CL switches from reading AST library declarations to bytecode even if
AST is not removed, so tests fail again.

Change-Id: I8b7ba44bfa49d0b1599b2509553ff7c831a4e244
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104700
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2019-06-20 18:27:21 +00:00
Kevin Millikin 5ade5079b1 [cfe] Remove the set-literals experimental flag
This flag has been enabled since Dart 2.2.0.

Change-Id: I18e77e1659d4be1aaf06e1c2a6262ae9e8c7f922
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104760
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2019-06-19 15:06:05 +00:00
danrubel fee615c5a5 consolidate multiple modifier error codes
This consolidates the following error codes into MODIFIER_OUT_OF_ORDER

* COVARIANT_AFTER_VAR
* EXTERNAL_AFTER_CONST
* EXTERNAL_AFTER_FACTORY
* EXTERNAL_AFTER_STATIC
* STATIC_AFTER_CONST
* STATIC_AFTER_FINAL
* STATIC_AFTER_VAR

Change-Id: I3f8c41bacc65ebc5d9255806cbee89cddb5ffeb1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103880
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Auto-Submit: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-05-28 17:01:16 +00:00
Dmitry Stefantsov e6e2020fb2 [fasta] Allow only covariant uses of type parameters in supertypes
Closes #35792.

Bug: http://dartbug.com/35792
Change-Id: I1c647c74e1e8f8892fd76b735085b457e770f5b4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103521
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2019-05-28 09:56:43 +00:00
Dan Rubel ec1ddcdb83 improve extension message missing body error message
This improves the missing class, mixin, and extension method body
error messages and lays the groundwork for improving other
missing body error messages such as switch statement, finally clause,
and others.

Change-Id: I0a4d1338fe91eee3cfe7d61652e168df1302d212
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103570
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-05-24 17:03:25 +00:00
Lasse R.H. Nielsen eca6c8953f Allow async as an identifier everywhere.
Fixes #37063

Bug: http://dartbug.com/37063
Change-Id: I2253c3088fbe33eca1072f2480cf0cf3cc363362
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103524
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
2019-05-24 08:21:14 +00:00
Aske Simon Christensen c4e8cf469a [CFE] Clean out spread and if support from constant evaluator.
Change-Id: I01ab65980662183c94df3345796bafad2a335043
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103125
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-05-21 11:07:26 +00:00
Dmitry Stefantsov a0290f823c [fasta] Report invalid-type errors eagerly when possible
Change-Id: If1d111eb6ee4f93e1ab2b5901cc9492db96a37b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101820
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2019-05-09 07:43:56 +00:00
danrubel 81b028de78 cleanup some error codes
* replace CovariantAfterFinal with ModifierOutOfOrder
* replace ConstAndCovariant with ConflictingModifiers

Change-Id: If09551a28d4bffecaf009b4e836a67dfc939c0bb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100140
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-04-23 14:22:12 +00:00
danrubel 6384f629c0 new conflicting-modifiers error code
This adds a new "conflicting modifiers" error code for new NNBD
modifier errors and replaces the existing "const and var" error
code with the new error code.

Change-Id: I1997bbb7f66e62d2de3c5042b6ea85861f2e00d8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99760
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-04-18 16:44:08 +00:00
Sigmund Cherem f175b0baf8 Report errors for using control-flow and spread features in a const context
CFE detects the const context while parsing, so we can report the error message
early on before we do any transformations.

Change-Id: Ib1cadb28366eb6a9a18612206aa155b04a4a5b32
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99540
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-04-16 19:50:55 +00:00
Dan Rubel 80dd5ca3d4 new "modifier out of order" error code
This replaces the const-after-factory error code
with a more general modifier-out-of-order error code.

Change-Id: I71baf2c96656241475c344cb33b887d8e0d456fe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99481
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-04-16 19:28:55 +00:00
Paul Berry f3dbfee467 Fix the error message template for EXPERIMENT_NOT_ENABLED.
Given an experiment named foo, it doesn't make sense to ask the user
to enable experiment --foo, since that's not the syntax for enabling
an experiment (the syntax is --enable-experiment=foo).  Changed to
'foo'.

Change-Id: I055461fb389a4338578fc7f260e252b8e3fe9a13
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99286
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-04-13 16:19:23 +00:00
Aske Simon Christensen a3d13fbf54 [CFE] Option to report error on unevaluated constants.
Fixes https://github.com/dart-lang/sdk/issues/36565

Change-Id: I011e4b5242a02e06392af01ad77615c694fb62ba
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99121
Auto-Submit: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-04-12 08:15:57 +00:00
Aske Simon Christensen 313e0f5410 [CFE] Check if set element or map key overrides operator '=='.
Fixes https://github.com/dart-lang/sdk/issues/36444

Change-Id: I38b485ca538c65072e2ec3386e30c5ce49671fe4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98666
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-04-04 14:39:50 +00:00
Brian Wilkerson e58a8fade5 Fix typos in the diagnostic messages
Change-Id: I65a11e52933c37a63cb9d0a14b1961a20e16271f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98600
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-04-04 13:47:40 +00:00
danrubel fe2d66006d improve type-before-factory error message
Address comment in https://dart-review.googlesource.com/c/sdk/+/98449

Change-Id: I38e7cf04e2061dbd6c9b37cca713e8420a1e021d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98520
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-04-03 16:30:18 +00:00
Johnni Winther 14fd3b7d6a Report errors on invalid constants in == and !=
Invocation of == and != is only constant on receivers of types bool, int, double, and String or null operands. This is now handled correctly in constant evaluation. The case for method invocation of `a != b` is removed since it is parsed as `!(a == b)`.

Change-Id: I65d8ddf2716f319f61fc0609803a5237f4aba644
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98349
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2019-04-02 13:54:28 +00:00
Jens Johansen 8ce2d7a4e1 [CFE] Better error messages on errors with user definable operators
Fixes #36383

Change-Id: I24fd51bdb3ead75973009fe515819f9c8354e1b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98332
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-04-02 10:46:18 +00:00
Aske Simon Christensen 018fd36557 [CFE] Handle spread and if in const map literals.
Change-Id: I5250a115c1c98849a695e1d159532a49605c7caf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98014
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-03-28 15:00:58 +00:00
Aske Simon Christensen b5be157e09 [CFE] Handle spread and if in const set literals.
Change-Id: I7db79282c1caafb2f8f07cd676e4bbe0941cd264
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98009
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-03-28 15:00:58 +00:00
Aske Simon Christensen 102b1fa39e [CFE] Handle spread and if in const list literals.
Change-Id: I534dcd2e02d8d70b83b55a4890fb1a6e1bf6170d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97307
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-03-28 15:00:58 +00:00
Aske Simon Christensen 4c48062955 [CFE] Fail silently on invalid constructs during constant evaluation.
This acts as a stable backstop for situations where Fasta fails to
rewrite various erroneous constructs into invalid expressions.

Change-Id: Ibaac3d62b9cfdc597c0f85aadf9aec2920689222
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97511
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-03-26 13:25:34 +00:00
Vyacheslav Egorov c9ecdabe5d Revert "Combine override checks and override-based inference in one phase"
This reverts commit 9db4119b67.

Revert "Change default of 'keepFields' in constant transformation to true"

This reverts commit b1e14cbe5f.

Revert "[fasta] Don't create forwarding stub if there's already a member"

This reverts commit 51da94da76.

These commits are reverted to unblock rolls into Flutter.

b1e14cbe5f is reverted because it contained
changes that prevented clean revert of the other CLs.

Change-Id: I8d3c00f0c1b146f4debe7f1a1a7de75be154e265
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97802
Commit-Queue: Alexander Aprelev <aam@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2019-03-25 19:40:26 +00:00
danrubel 36e6eb36c5 rename and reword invalid initializer error messages
Change-Id: Ieae7b11f6aee46567247dbc9532098e7541774b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97720
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-03-23 15:59:43 +00:00
Peter von der Ahé 9db4119b67 Combine override checks and override-based inference in one phase
Change-Id: I2760f72f4eaa44bd192747179e843f017db30874
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97301
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-03-22 08:59:48 +00:00
danrubel 8b8a8f7b4e Report error for invalid this/super in initializer
Fix https://github.com/dart-lang/sdk/issues/36262

Change-Id: I20b0997f58a2835b87869952f186fbe83bfe5e3b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97404
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-03-22 01:43:13 +00:00
Aske Simon Christensen 330b958e20 [CFE] Check for null in constant evaluation.
Reland of https://dart-review.googlesource.com/c/sdk/+/95520

Change-Id: Ide2243edc1c32db0d55580a98f2de62be23b912b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97226
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-03-19 15:23:36 +00:00
William Hesse 3b2e368376 Revert 5 changes with failures
TBR=askesc@google.com

Revert "[CFE] Move constant evaluator to Fasta."

This reverts commit 845b5b2df1.

Revert "[CFE] Always call the constant evaluator by the evaluate method."

This reverts commit 91bc4ec2b9.

Revert "[CFE] Use Fasta diagnostics in the constant evaluator."

This reverts commit c7b572aa29.

Revert "[CFE] Check for null in constant evaluation"

This reverts commit e6d2751e9c.

Revert "Rename import after moving file."

This reverts commit a6e2c5eb4c.

Change-Id: Iadfe087c0110f6f331b82d990213f95d3ef4541b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97223
Reviewed-by: William Hesse <whesse@google.com>
2019-03-18 12:25:32 +00:00
Aske Simon Christensen e6d2751e9c [CFE] Check for null in constant evaluation
Change-Id: Iecd63572a29d605bb48dd79f9cd07f135bc6fc68
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95520
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-03-18 10:42:14 +00:00
Aske Simon Christensen dbea5c6884 [fasta] Commandline option to leave environment constants unevaluated.
Also, outdated description of -D option corrected.

Change-Id: Ie1dc011adc3ce2f5293826c96f22700a6528c9a7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96880
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-03-14 11:30:07 +00:00
Peter von der Ahé 68aeb5cec2 Tweak error messages related to inference and overriding.
Change-Id: I216da55c0b5a6c6cc5b6f26f7a4565ae1e392c72
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96644
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2019-03-13 06:46:21 +00:00
Dmitry Stefantsov 10b38fd3f9 Reland "[cfe] Handle spread elements of static type Null"
This is a reland of 0a13ef7d03

Original change's description:
> [cfe] Handle spread elements of static type Null
> 
> Change-Id: Idec027766e77237c25fe2274426f92e24f45dec4
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96043
> Reviewed-by: Kevin Millikin <kmillikin@google.com>

Change-Id: I222c2b153cdf0ed47a0e83aff5deca4686c10343
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96131
Reviewed-by: Régis Crelier <regis@google.com>
2019-03-08 19:04:03 +00:00
Dmitry Stefantsov c31be8ab5c Reland "[cfe] Disambiguate between sets and maps with spreads"
This is a reland of b817b274c2

Original change's description:
> [cfe] Disambiguate between sets and maps with spreads
> 
> Change-Id: I8da95178d0864dd0d59232a902cdb142be7f135e
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95649
> Reviewed-by: Kevin Millikin <kmillikin@google.com>

Change-Id: Id22b7513230f6410dc2af5146d292fc7fc47a0aa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96130
Reviewed-by: Régis Crelier <regis@google.com>
2019-03-08 19:03:27 +00:00
Régis Crelier 2b501b21aa Revert "[cfe] Disambiguate between sets and maps with spreads"
This reverts commit b817b274c2.

Reason for revert: very red bots, gardener not going to blindly approve all redness

Original change's description:
> [cfe] Disambiguate between sets and maps with spreads
> 
> Change-Id: I8da95178d0864dd0d59232a902cdb142be7f135e
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95649
> Reviewed-by: Kevin Millikin <kmillikin@google.com>

TBR=dmitryas@google.com,askesc@google.com,kmillikin@google.com

Change-Id: I008c42a5b50da98af32c923b233130920fdb2546
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96127
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2019-03-08 17:39:34 +00:00
Régis Crelier ff5f5de1be Revert "[cfe] Handle spread elements of static type Null"
This reverts commit 0a13ef7d03.

Reason for revert: very red bots, gardener not going to blindly approve all redness

Original change's description:
> [cfe] Handle spread elements of static type Null
> 
> Change-Id: Idec027766e77237c25fe2274426f92e24f45dec4
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96043
> Reviewed-by: Kevin Millikin <kmillikin@google.com>

TBR=dmitryas@google.com,askesc@google.com,kmillikin@google.com

Change-Id: I1cc4656cd7ed8d360dcc4736fe510ece9ea3bf8d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96126
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2019-03-08 17:35:43 +00:00
danrubel b2cb604b9d improve literal list/map/set control flow recovery
* new ExpectedElseOrComma parser error code
* update recovery tests to enable control flow recovery
* rework test to call parser.parseLiteralListSuffix rather than parser.parseLiteralListSuffix

Fix https://github.com/dart-lang/sdk/issues/36141

Change-Id: I5bdee19eb3828de8fbdc514a3820afaa1309df99
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95980
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-03-08 17:31:33 +00:00
Dmitry Stefantsov 0a13ef7d03 [cfe] Handle spread elements of static type Null
Change-Id: Idec027766e77237c25fe2274426f92e24f45dec4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96043
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-03-08 15:46:31 +00:00
Dmitry Stefantsov b817b274c2 [cfe] Disambiguate between sets and maps with spreads
Change-Id: I8da95178d0864dd0d59232a902cdb142be7f135e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95649
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-03-08 15:46:31 +00:00
Dmitry Stefantsov 76ff150df4 [cfe] Add type inference for spreads in map literals
Change-Id: Ibe39deb9c1a022b30b70e677150925205e58d8b5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/94741
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-03-08 12:08:42 +00:00
Dmitry Stefantsov 1da7c0d472 [cfe] Fix type checks in spreads within lists and sets
Change-Id: Id0eb5bc798fdd425cf1bc46d60efb3a1d5455938
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95383
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-03-05 19:54:11 +00:00
Dmitry Stefantsov b36c56ff84 [cfe] Add type inference for spreads in list literals
Change-Id: I4076fe82a0b4c0780dc53cc51f9abba3b1d85e8c
Reviewed-on: https://dart-review.googlesource.com/c/94520
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-03-01 15:17:13 +00:00
Aske Simon Christensen 120328aff7 [fasta] Commandline option to enable asserts
Since Fasta is only concerned with compile-time behavior, the option
only affects asserts in initializers in const constructors when
evaluated during constant evaluation.

Change-Id: I534cc7cc1f33f9b34d15550d38ea930ed7ac6709
Reviewed-on: https://dart-review.googlesource.com/c/94740
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Auto-Submit: Aske Simon Christensen <askesc@google.com>
2019-02-28 12:11:16 +00:00
danrubel 7829012e61 add new ExperimentNotEnabled error code
Change-Id: I541015db1f200de3f3846d7bd231b1996f947c6e
Reviewed-on: https://dart-review.googlesource.com/c/94420
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-02-27 15:40:17 +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
Jens Johansen 5e48ccb808 Give more context when initializing from dill fails
Previously, if failing when trying to load from a dill it would say
something like

Warning: Tried to initialize from a previous compilation
(build/app.dill), but couldn't. Error message was
'NoSuchMethodError: The method 'getReference' was called on null.
Receiver: null
Tried calling: getReference()'. This might be a bug.
The Dart team would greatly appreciate if you would take a moment to
report this problem at http://dartbug.com/new.

Which really doesn't give us a lot to go on.

This CL changes that to also give us a little go to on, and report
something like

Warning: Tried to initialize from a previous compilation
(org-dartlang-test:///initializeFrom.dill), but couldn't.
Error message was 'NoSuchMethodError: The method 'getReference' was
called on null.
Receiver: null
Tried calling: getReference()'. Stacktrace included '#0      Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:50:5)
#1      BinaryBuilder.readLibraryReference (package:kernel/binary/ast_from_binary.dart:692:9)
#2      BinaryBuilder.readLibraryDependency (package:kernel/binary/ast_from_binary.dart:837:25)
#3      BinaryBuilder._readLibraryDependencies (package:kernel/binary/ast_from_binary.dart:829:33)
#4      BinaryBuilder.readLibrary (package:kernel/binary/ast_from_binary.dart:803:5)
#5      BinaryBuilder._readOneComponent (package:kernel/binary/ast_from_binary.dart:634:7)
#6      BinaryBuilder.readComponent (package:kernel/binary/ast_from_binary.dart:441:7)
#7      IncrementalCompiler.initializeFromDill (package:front_end/src/fasta/incremental_compiler.dart:395:14)
<asynchronous suspension>
#8      IncrementalCompiler.computeDelta.<anonymous closure> (package:front_end/src/fasta/incremental_compiler.dart:126:23)
<asynchronous suspension>
#9      CompilerContext.runInContext.<anonymous closure>.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:120:46)
#10     new Future.sync (dart:async/future.dart:224:31)
#11     CompilerContext.runInContext.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:120:19)
#12     _rootRun (dart:async/zone.dart:1124:13)
#13     _CustomZone.run (dart:async/zone.dart:1021:19)
#14     _runZoned (dart:async/zone.dart:1516:10)
#15     runZoned (dart:async/zone.dart:1463:12)
#16     CompilerContext.runInContext (package:front_end/src/fasta/compiler_context.dart:119:12)
#17     IncrementalCompiler.computeDelta (package:front_end/src/fasta/incremental_compiler.dart:108:20)
<asynchronous suspension>
#18     initializedCompile (file:///usr/local/google/home/jensj/code/dart-sdk/sdk/pkg/front_end/test/incremental_load_from_dill_test.dart:397:51)
<asynchronous suspension>
#19     basicTest (file:///usr/local/google/home/jensj/code/dart-sdk/sdk/pkg/front_end/test/incremental_load_from_dill_test.dart:167:34)
<asynchronous suspension>
#20     RunCompilations.run (file:///usr/local/google/home/jensj/code/dart-sdk/sdk/pkg/front_end/test/incremental_load_from_dill_test.dart:101:15)
<asynchronous suspension>
#21     ChainContext.run.doStep.<anonymous closure> (package:testing/src/chain.dart:180:33)
<asynchronous suspension>
#22     new Future.<anonymous closure> (dart:async/future.dart:176:37)
#23     _rootRun (dart:async/zone.dart:1120:38)
#24     _CustomZone.run (dart:async/zone.dart:1021:19)
#25     _CustomZone.runGuarded (dart:async/zone.dart:923:7)
#26     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:963:23)
#27     _rootRun (dart:async/zone.dart:1124:13)
#28     _CustomZone.run (dart:async/zone.dart:1021:19)
#29     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:947:23)
#30     Timer._createTimer.<anonymous closure> (dart:async/runtime/libtimer_patch.dart:21:15)
#31     _Timer._runTimers (dart:isolate/runtime/libtimer_impl.dart:382:19)
#32     _Timer._handleMessage (dart:isolate/runtime/libtimer_impl.dart:416:5)
#33     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
'. This might be a bug. The Dart team would greatly appreciate if you would take a moment to report this problem at http://dartbug.com/new.

which will hopefully allow us to actually debug any such reports.

Change-Id: I13bdd4f96c1e4bb2dcce91e533442b48c87c9e0c
Reviewed-on: https://dart-review.googlesource.com/c/85348
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-02-11 09:58:40 +00:00
Kevin Millikin be79eb4517 Ship experiment 'set-literals'
Change-Id: Ief182017752b87ef099ac5140ff781cbb14d76a9
Reviewed-on: https://dart-review.googlesource.com/c/92125
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Kevin Millikin <kmillikin@google.com>
2019-02-08 16:17:55 +00:00
Kevin Millikin 0828d2c786 [Fasta] Implement exact types for Set literals
Set literals have an exact type of Set<T> for some T.  An implicit
downcast to a subtype is a static error.

Change-Id: I922b078b1b9e595243520e73c7130c23fe91f454
Reviewed-on: https://dart-review.googlesource.com/c/91640
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2019-02-05 07:43:52 +00:00
Peter von der Ahé f5fd281150 Prevent unsound promoted bounds from being used as arguments
Fixes https://github.com/dart-lang/sdk/issues/35100

Change-Id: I65f73f40d0ea970f0631599e01b177412fc32a40
Reviewed-on: https://dart-review.googlesource.com/c/90390
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-01-29 14:46:04 +00:00