Paul thinks that there is a bug in gyp or make, and we should generate
only one output. So, we generate the whole bundle with all summaries
and index information. And then we have separate actions that take
this bundle and extract one output each - spec.sum and strong.sum files.
R=paulberry@google.com, whesse@google.com
BUG=
Review URL: https://codereview.chromium.org/1775973003 .
The 'element' is still accessible, but as a computed property.
In many cases we don't need to know the containing element, and need
only the unit source, or the LibraryElement. So, by computing it on
demand we may save some time and make SearchMatch usable with the
new index - where we don't know the Element.
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org/1764553002 .
When a circularity is found during task model evaluation, we need to
continue evaluating task inputs (skipping the inputs that contribute
to the circularity) in order to find the largest possible strongly
connected component that contributes to the circularity. Previously,
the skipping logic was implemented by comparing WorkItem.target and
WorkItem.spawningResult. However, since WorkItems are equality
compared using WorkItem.target and WorkItem.descriptor, it was
possible that a WorkItem might not have been skipped when it should
be.
This CL updates the skipping logic so that it uses WorkItem.target and
WorkItem.descriptor to decide which WorkItems to skip.
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org/1748933005 .
This gets us roughly half+ way there. We should defintely consider automating this to speed up the rest. (Even with the quick-fix it's VERY tedious and slow going.)
Once we've done this in bulk, I'd like to add the `annotate_overrides` lint to analyzer and server `.analysis_options`.
BUG=
R=brianwilkerson@google.com, scheglov@google.com
Review URL: https://codereview.chromium.org/1749143003 .
If an attempt is made to read an unrecognized enum value, then rather
than crashing, we will read the default (first) value of the enum type.
This facilitates forwards compatibility by ensuring that if a new enum
value is added in the future, older code will still be able to read the
resulting summary files without crashing.
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1747413002 .
If an IDL field is marked as `@deprecated`, no setter will be
generated for it, and the getter generated for it will throw an
UnimplementedError. This is similar to the behavior of standard
Flatbuffer tools (which generate neither setters nor getters for
deprecated fields) except that we have to generate a getter in order
to avoid warnings.
Once we have begun using summaries in the wild, we will need to make
use of this feature in order to avoid changing Id numbers and breaking
backwards compatibility.
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1753883002 .
Note: my expectation is that we won't start bumping the version
numbers until summaries begin being used in the wild. While summary
support remains experimental, the version number will remain at 1.0.
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1754793002 .
This prevents the ElementFactory's ClassElement for `Object` (which it
stores statically) from getting accidentally shared between separate
unit tests in a single test run, which could cause state to leak
between the tests.
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org/1752023002 .
It turned out that for used names we don't need any flags because we
want to store only qualified unresolved (potential) class member
usages. So, no flags for used names at all, at least for now.
R=paulberry@google.com
BUG=
Review URL: https://codereview.chromium.org/1750163003 .