Steps towards generalizing summary creation bits (to allow for, among other things, flutter SDK summary creation). API is provisional (note still in `lib/src`).
Next up:
* move result writing out of `tool/` to allow for reuse
* `SummaryBuilder.forPackageMap(..)` factory (or similar) for use in the flutter SDK case
BUG=
R=brianwilkerson@google.com, paulberry@google.com
Review URL: https://codereview.chromium.org/2055543002 .
If 'trackCacheDependencies' is set to 'false', this makes DDC
compilation of Angular2 project about 10% faster.
Unfortunately I was not able to avoid creating ResultDescriptor(s) and
adding them into WorkItem.inputTargetedResults altogether. It is used
in AnalysisTask._findCyclicPath() to create InfiniteTaskLoopException
with additional information.
R=brianwilkerson@google.com, paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/2054453002 .
NativeBehavior for method calls and field load/store are now computed
during resolution and apply as part of the world impact. This prepares
for (full) serialization/deserialization of native elements.
R=het@google.com
Review URL: https://codereview.chromium.org/2045223002 .
This CL should fix the problem that arose with commit
543a51ff3e. Here's the description from
that CL:
This CL adds tests for previously uncovered elements of the semantics
and includes fixes such that the desired behavior is obtained. In
particular, an `isInitializingFormal` element may now occur in contexts
where it wasn't expected until now, and changes were made to handle it.
It is also checked that a capture of an initializing formal (in a
function literal) captures the parameter, not the field.
R=johnniwinther@google.com
Review URL: https://codereview.chromium.org/2042293002 .
Follow-up from https://codereview.chromium.org/2043963004/, where a number of test cases were identified. In particular:
> - What if the package map is empty?
> - What if the package map doesn't have a package with an embedder file?
> - What is there is no package with an ext?
> - What if we don't find either one?
> - What happens if one or both of those files are invalid?
BUG=
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org/2046493006 .
This code should no longer be reachable. I think it was part of our early non-null primitive type experimentation. (Currently `null` literal is treated as bottom, so it should never be a downcast if casting from null.)
R=leafp@google.com
Review URL: https://codereview.chromium.org/2050443002 .
It turns out that these overrides aren't necessary, since the
element's location contains enough information to distinguish between
getters and setters. Removing the overrides makes
PropertyAccessorElementImpl's behavior match that of
PropertyAccessorElementHandle, which is important when summaries are
in use.
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org/2042393002 .
This CL adds tests for previously uncovered elements of the semantics
and includes fixes such that the desired behavior is obtained. In
particular, an `isInitializingFormal` element may now occur in contexts
where it wasn't expected until now, and changes were made to handle it.
It is also checked that a capture of an initializing formal (in a
function literal) captures the parameter, not the field.
R=johnniwinther@google.com
Review URL: https://codereview.chromium.org/2039833002 .
The modelx implementation of getDefaultConstructor() (surprisingly)
returned constructors with only optional arguments. This CL aligns the
modelz implementation with this, adding a TODO to figure out what the
best behavior is.
R=sigmund@google.com
Review URL: https://codereview.chromium.org/2033893004 .
This CL removes the [intEnvironment], [boolEnvironment] and [stringEnvironment]
from [Compiler] and instead determine .fromEnvironment directly from the
constructor element itself.
R=sigmund@google.com
Review URL: https://codereview.chromium.org/2033383002 .