This reverts commit 17faf89d02.
The fix is in eventhandler_fuchsia.cc. Rather than changing the
condition on line 401, I've just weakened the assert.
Change-Id: Ia6b1f35e479e4b2fdf1adc77e9513551221a7696
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157564
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
Updates to the latest unpublished version which has been migrated to
null safety.
Change-Id: If999af780b7788da7b78673cb541bfdb3c1e25cf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157401
Reviewed-by: Kevin Moore <kevmoo@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
This is in preparation for working on external and abstract fields,
which will require introducing some NNBD-only tests to this file.
Change-Id: Ida714ce7e3136acfaf05d12fe287ec9e1de1258c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157472
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Abstract final fields don't need to be initialized (in fact they can't
be initialized), so we shouldn't report "uninitialized field" errors
for them.
This CL also adds some basic tests of the functionality of abstract
final fields, making sure they don't introduce setters, and that the
getters they introduce are properly resolved and that their types are
properly respected by inheritance checks.
Change-Id: I885f23ce7ca554ba8f48e932ba9d76e128ac0bbd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157520
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
These tests weren't being referenced in the test's main() function, so
they weren't being run. Fortunately they pass :)
Change-Id: Ie04039e36bbcaea8d13973efb7fee19112407648
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157467
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Abstract fields whose type is non-nullable don't need to be
initialized (in fact they can't be initialized), so we shouldn't
report "uninitialized field" errors for them.
This CL also adds some basic tests of the functionality of abstract
fields, making sure that the getters and setters they introduce are
properly resolved and that their types are properly respected by
inheritance checks.
Change-Id: I1fe7b6f40456d03533b85403ec6f428656820706
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157466
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
This cl implements deferred loading of class types. The bulk of the
logic is hidden behind a flag.
Change-Id: I7d5139eff72c7d29226a7e46c427c82fc5bda728
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154580
Commit-Queue: Joshua Litt <joshualitt@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
I wanted to get your feedback on one change like this before updating
other places where we're excluding the nullability from the display
string. Is it reasonable to always display the nullability? (For
example, could this lead to displaying nullability in legacy code?) Is
there any risk of displaying stars (`int*`)?
Change-Id: I5ac78a4b8559c2fbba6b69b1665f36061432726e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157471
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Exposing this helper method will allow comparison between program info without using buildComparisonTreemap
Change-Id: Ib771801530dd34515ccecc4ec01e39cd4546e916
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157080
Commit-Queue: Kenzie Schmoll <kenzieschmoll@google.com>
Reviewed-by: Kenzie Schmoll <kenzieschmoll@google.com>
When converting InstanceCall to LoadField don't adjust deoptimization
environment because when we deoptimize from LoadField back to
InstanceCall we would expect to have receiver on the stack.
This is a different situation from LoadField to LoadField lazy
deoptimization in which case receiver should not be on the stack.
Regression test provided by Ryan.
Fixed: 42900
Change-Id: I6041ff02abf22a2bae0fdcd65d5b49ef8aec6204
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157182
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
This is in preparation for working on external and abstract fields,
which will require introducing some NNBD-only tests to this file.
Change-Id: Idb389a079f7405fe4adc51bafd715a3f31a9cc7a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157465
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
They were sometimes timing out, or close to the 60min execution timeout.
Also moved the co19 nnbd tests with asserts to the end to ensure that is
what is running on the local shard. This should reduce wasted capacity
when waiting on shards (co19 with asserts is the slowest config).
Change-Id: I18235f1f710190aaea2021a7923ec03e7c75b595
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157489
Auto-Submit: Alexander Thomas <athom@google.com>
Commit-Queue: William Hesse <whesse@google.com>
Reviewed-by: William Hesse <whesse@google.com>
This is in preparation for working on external and abstract fields,
which will require introducing some NNBD-only tests to this file.
In the process, I discovered a flow analysis bug
(https://github.com/dart-lang/sdk/issues/42957), which I plan to fix
in a follow-up CL. For now the test that provoked the bug is marked
as failing.
Change-Id: I0767d650cfaecb125b0cea27c0c7971d3112deff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157464
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
If a static error test only has expectations for *warnings* then it
still has well-defined runtime semantics that we want to test.
This distinguishes those tests and runs them on non-front-end
configurations.
Change-Id: I41b8d84a229ba53ad0db0271b28a9b9482ad582d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155305
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Karl Klose <karlklose@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
In a follow-up CL I will update error reporting logic.
Change-Id: I6fd2916c24a531b1f41bd2872301ffec1fdb8722
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157382
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
The documentation states the parameter must be an integer satisfying
`0 <= fractionDigits <= 20`. Given the existing implementation
passing `null` works like passing 0 but the VM and dart2js both throw
on `null` so it makes sense to enforce the precondition.
Change-Id: I71648b76dc5a4cece2f9b873bdcf58c2ff0563bc
Fixes: https://github.com/dart-lang/sdk/issues/42919
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157421
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
lib/html/js_typed_interop_type_test.
Also update the error produced when an interop type contains a
non-external member in case users run into it via a late field.
Change-Id: I5968f4c8b3a71a3d467412c4499524ec4cc9d838
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157161
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
This change adds support for generating simple kernel files. More exotic
kernel generation can still be done using the gen_kernel script.
Fixes https://github.com/dart-lang/sdk/issues/42602
Change-Id: If5f281770dada4a81d85d81d2c36439174540724
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153389
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
In AOT mode, TFA turns optional arguments (named or positional) that are
always provided into required positional arguments and increases the
number of required arguments accordingly. Thus, from the standpoint of
the VM, whether it's reading in bytecode or kernel, these are just
regular fixed positional arguments. However, TFA originally left the
parameter flags alone for these parameters, so required named parameters
that were converted to positional arguments still had the required flag
set.
This CL does two things:
1. It fixes TFA to clear the required bit on a parameter if it is
converted from a named parameter to a required positional parameter.
2. It adds ASSERT()s and RELEASE_ASSERT()s on the VM side to ensure that
only named parameters have the required bit set.
Change-Id: I1c36d777a7e9e7d703bcc23ee1b798bffeffa29e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157381
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
std::function is not safe to use in the VM because it will leak on longjmp.
Bug: https://github.com/dart-lang/sdk/issues/42934
Change-Id: Id14e7a5ee6ff28c9b3f4ea5d7a46470ec3530a3e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157101
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Change-Id: I2969f8c089d087042b2aa681d2d8a61a8f956556
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/156101
Auto-Submit: Kevin Moore <kevmoo@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
Fixes the change in d7feab5a, which created a base definition for
BinaryIntegerOpInstr::InferRange from BinaryInt32OpInstr (which used
GetSmiRange to get the operand ranges) instead of BinaryInt64OpInstr
(which used the operand ranges directly).
Instead, just use GetInputRange to get an appropriate range based on
the representation of each input.
Change-Id: Ib62199ecc3ea3246fcf5deffc69285a15124f462
Bug: https://github.com/dart-lang/sdk/issues/42948
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/156906
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>