This adds checks for allocations and type values, and provides a compile
time error for type declarations, is-checks, and as-casts.
Change-Id: I3bfed41b0dd45abeb02158f0537102c779511998
Reviewed-on: https://dart-review.googlesource.com/36383
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
This takes the compile-time errors from dartk strong mode, and provisionally
puts them in a $fasta section, and puts the run-time errors into a
$compiler == dartk && $strong section. None of them are triaged,
many of them may be errors in the tests, not in fasta.
Change-Id: I71f0cf46584754e9f72005b1d8a2f6b7b3553026
Reviewed-on: https://dart-review.googlesource.com/38122
Reviewed-by: Peter von der Ahé <ahe@google.com>
From the docs of mixedInClass and mixin: the former is the direct thing that is
mixed in, but if it is a named mixin application it may not contain the actual
fields and procedures, instead the `.mixin` class does.
Change-Id: I049ced771925431d613b0b661154c1761fbe0a51
Reviewed-on: https://dart-review.googlesource.com/38161
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Emily Fortuna <efortuna@google.com>
This is a branch of co19 tests where the tests have been
made strong mode compliant. A co19_2_analyzer.status file
has been added with the current statuses of the tests when
run on dartanalyzer --strong. We expect more Dart 2 configurations
to start running these tests and adding status files.
Change-Id: I22077272707620b92dd1092c38bbb4f3d5964493
Reviewed-on: https://dart-review.googlesource.com/37743
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
also fixes#31058, DDC failed to execute all field initializers
(already fixed this in DDK when porting code_generator).
also fixes assertion_initializer_test, it was not strong mode clean, so
it was not giving any meaningful results for runtime behavior.
Change-Id: I290b266ad77ed92851cc2d0617690c6c021182a3
Reviewed-on: https://dart-review.googlesource.com/37866
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Since dart2js doesn't implement Dart 2 yet, the RuntimeError status must
be copied for each of the many dart2js configurations.
Change-Id: I7814546ce808922bf62c12d6c5443eee8600a5c7
Reviewed-on: https://dart-review.googlesource.com/37940
Reviewed-by: Jenny Messerly <jmesserly@google.com>
This CL refactors parseTopLevelMember so that it does not scan ahead
using findMemberName. This is the next step in removing findMemberName
to improve top level declaration recovery.
Change-Id: I4d949f72cba5618541448c08e1756bf45a4d1762
Reviewed-on: https://dart-review.googlesource.com/37680
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
'void' is now allowed as type annotation for locals, fields, and formal
parameters, in addition to being previously allowed as type argument.
Update status files.
Change-Id: I6459f56824dc0a695615d8dc87c9a8a1f9be29ef
Reviewed-on: https://dart-review.googlesource.com/37651
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
Dart 2 has no notion of "checked mode", so a failed assertion in a
const constructor should always be a compile error.
Change-Id: I02227c03613346918de1e3a7f7c70d209a940b90
Reviewed-on: https://dart-review.googlesource.com/37647
Reviewed-by: Leaf Petersen <leafp@google.com>
Whenever we install a getter or setter, we need to install a corresponding
one that calls `super`, because JS treats getters/setters as pairs for the
purposes of lookup. Normally we generate the paired super accessor, but for
mixins we cannot, because we don't know what the `super` will be at compile
time. So the fix is for `mixinMembers` to handle it at run time.
Change-Id: I2b14ea437720bd26f2879c7daac5b3f796d48038
Reviewed-on: https://dart-review.googlesource.com/37645
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
There's an assert in InvocationMirror_unpackTypeArguments checking that
the length of the incomming TypeArguments is positive (len > 0).
That's not a valid assert.
When creating TypeArguments it will be TypeArguments::null() if it is
empty or contains only dynamic.
TypeArguments::null() will answer 0 as length which is thus perfectly
valid.
This CL fixes the wrong assert (technically it returns before the assert,
but still).
Fixes#31381.
Change-Id: I7a253418b69751b13e98fcf2def2b23b32f96142
Reviewed-on: https://dart-review.googlesource.com/37480
Reviewed-by: Samir Jindel <sjindel@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
This reverts commit c5306595f4, which updated
the status for linux only, and updates it for all operating systems instead.
It also fixes a minor error in the status update tools.
Change-Id: I556dff775f221b872c5cea27b7ed5a0088d378a5
Reviewed-on: https://dart-review.googlesource.com/37261
Reviewed-by: Alexander Thomas <athom@google.com>