DescriptionImplement strict and non-strict union types in completion UI.
I've included @scheglov as a reviewer because I believe he is most familiar
with the completion code. The semantics of strict and non-strict union types
are probably of interest to @jwren and @brianwilkerson however.
This CL comprises a significant refactoring of the completion code
related to computing the "names" defined on a type. The trouble is
that for the strict union-type semantics we want a name to only be
defined on the union type if it's defined on all member types in the
union. However, the code had been structured such that it mixed the
computation of possible names with adding possible names to the list
of all completions. For the strict semantics we need to know all the
names first and then take their intersection. So, most of the changes
-- besides the union-type name logic itself -- is related to making
the computation of possible completions separate from adding them to
the list of completions.
R=brianwilkerson@google.com, scheglov@google.com, jwren@google.com
BUG=
Committed: https://code.google.com/p/dart/source/detail?r=40698
Patch Set 1 #
Total comments: 2
Patch Set 2 : Factor out mapping of [getName] over elements per @brianwilkerson. #
Messages
Total messages: 6 (0 generated)
|