Only self properties for now.
No compound properties.
No virtual Container properties.
R=brianwilkerson@google.com
Change-Id: Icd61f45ecc95c45037c3998a927eb267fd13c4cd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109121
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This includes the RTI representation, string/canonical recipe
representations, recipe parsing, and subtyping. We do not yet support
optional parameters (named or positional), required named parameters, or
generic functions.
Change-Id: Ifb8d83f7842028fcd904c17d2e2774e42304d32c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108961
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
With this change, one can launch tests, e.g.,
> ddb -r chrome -d -k tests/compiler/dartdevc_native/subtype_test.dart
and step through Dart SDK code using source maps.
Change-Id: I1662a4df76d29e3ccb80a4754147839da784ebe6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107480
Auto-Submit: Vijay Menon <vsm@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
We don't need to support old versions for more than a couple of weeks,
and the ABI bot is struggling to keep up at the moment. Until we have
a more solid fix for the ABI bot issues, this is an easy mitigation.
Change-Id: I5fc17e3a70ca72c2cf817afb6284e40e7af0d9b5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109101
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
You fixed the issue (thank you!) that I introduced on Windows.
I think this approach is more explicit, so a bit better.
R=brianwilkerson@google.com
Change-Id: Ic27cf061e2316421ee2596dbe41829d040176fd6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109040
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
To insert covariant checks, CFE was searching for covariance in
contravariant positions and _not_ for non-covariant
(=contravariant+invariant) positions of type parameters. This
let to the omission of needed checks when type parameteres were
used in invariant positions (in function type parameter bounds).
Closes#37476
Change-Id: Icb4a827e75aee1a679ef7175d36904bbfbf6aa0a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108815
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Certain functions (e.g. abstract) don't have bytecode although they are
declared in bytecode. As CollectBytecodeFunctionTokenPositions is called
for all functions, it should account for absence of bytecode.
This fix prevents crashes when certain functions are opened in observatory profiler.
Change-Id: I191b01df60a1eff06c8b09fbce80f15fbf409a21
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108965
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
This change adds support for bytecode generation in incremental compiler in
kernel service. Bytecode generation is performed as a post-processing step,
after delta components are merged.
Bytecode generation requires CoreTypes and ClassHierarchy, which cannot be
constructed using delta component from incremental compilation (as it doesn't
contain platform or previously compiled libraries). The solution is to obtain
CoreTypes and ClassHierarchy directly from incremental compiler.
Now the following tests work:
vm/cc/IsolateReload_KernelIncrementalCompile
vm/cc/IsolateReload_KernelIncrementalCompileAppAndLib
Change-Id: I34c5870b01850c057ace71a63f8effa5b010cfcf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108682
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
This is performance test and on this particular bot it's performance is
unpredictable.
Change-Id: I39465e50240f89904de7ee59de3a05966c90aa7b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108980
Reviewed-by: Alexander Aprelev <aam@google.com>
Next step is the inject this in DDC generated code on Dart/JS boundaries.
Change-Id: If15ff1389b2ce5f6c264e3e31bddaade7f7687e2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108943
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Change-Id: Iafdf3e56a3e69b4d945799c541795e1fd6901178
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108806
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
The objective of this CL is to allow the incremental compiler to track
which dill input libraries it actually used (in order to - in a modular
context - be able to ignore changes to dependencies we didn't really
use).
This is done by:
* Making the dill library builder lazy (and mark if it has been used).
* Making kernels class hierarchy record which classes it has been
asked questions about.
* Add special handling to redirecting factory constructors as they
bypass the fasta-builders and directly use the kernel ast.
Please note that:
* This has to be enabled, but kernels class hierarchy always records
which classes it was asked about (even if disabled,
or not running though the incremental compiler).
There might potentially be some overhead to this (though setting
a bool to true is probably comparably cheap - we did just do a
map lookup).
* This was designed to be used together with modules
(e.g. setModulesToLoadOnNextComputeDelta) - as used via for instance
api_unstable/bazel_worker.dart. It might not function the way you'd
expect in other circumstances.
* The incremental compiler (potentially) gives you the full kernel tree
despite not having marked all of those libraries as 'used'. If a
client use such libraries it is the clients responsibility to take
that into account when answering any questions about this
libraries/dill files was used.
* This feature works on the library level. In practice it is most likely
needed at the dill-filename level. A translation from library to
dill-filename is up to the client.
* This is a new feature, and we cannot promise that 100% of actually
used libraries are marked. If you find used but un-marked libraries
please report a bug.
Change-Id: I01d7ff95b9baac9550b77d8e09ea772d43173641
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107280
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Make sure to use Printer methods when formatting class references
instead of going through TreeNode.toString which uses globalNames
instead of Printer's own syntheticNames.
Change-Id: I3107a1b4d5d6d2b26a9f0001f846bd74b85853df
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108803
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Auto-Submit: Vyacheslav Egorov <vegorov@google.com>
The file set could probably be reduced but this works. The running
time for the front-end-linux-release-x64-try is reduced from ~56
mins to ~22 mins.
Change-Id: Ia298a5a89d84b21d3d4c7fd858e712570c692176
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108580
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
The CheckStack bytecode does not denote a debug point anymore after the
introduction of the DebugCheck bytecode.
Fix caller/callee determination in mixed mode.
Factorize some code.
Change-Id: Ide1e0bbad022a83e6113243dc996396f9f5d2f3c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108565
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>