With this patch we allow any keyword to be used as a UDL operator, which
for example GCC compiles fine with. They are then no longer highlighted
as keywords but colored the same as normal text. This can be overridden
by coloring overloading operators differently.
Change-Id: If80faf0f3dc599ab4f12fe98977c556aaaefe6aa
Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
The implementation strategy is as follows:
- Implement an option to find potential matches during an AST
definition search.
- Store names that resolve to ProblemBindings in the index,
as references for the candidate bindings, annotated as being
potential matches.
- Add an option to Index.findNames() to include potential matches.
- Use the added options for the index and AST searches in
OpenDeclarationsJob, prioritizing them accordingly (e.g. exact index
matches take precedence over potential AST matches, but if there
are no exact matches, potential matches from the AST and the index
are combined).
Change-Id: I19f5c58820eb3ec79a31652d69fd5b86acaba115
This works around the fact that the optimization introduced in bug 316704
inteferes with the mechanism for offering completions for both alternatives
in an ambiguous context.
Change-Id: Ibe14c1b4f2f9c9b3394d4635c87424a25fbd7a53
This is a revised approach for fixing this bug by giving using-
declarations implicit names for each delegate binding.
Change-Id: Ib9695c30258b8cb322ae1548ab022e357318135c
According to the standard, if a friend declaration is the only
declaration of a class type, then that class type is only
visible to argument-dependent lookup until another declaration
is encountered.
Bug 508338 attempted to implement this rule for PDOM class
types by not storing the class type in the index at all when
that first declaration is encountered. However, this meant
not recording the friend relationship either, which regressed
CompletionTests.testTypes_FriendClass (which was then disabled).
Bug 512932 implemented this rule for AST class types in a
different way, by keeping track of which names are visible to
ADL only.
This change reverts the fix for bug 508338, and extends the
approach from bug 512932 to PDOM class types. It also re-
enabled CompletionTests.testTypes_FriendClass which now passes.
Change-Id: I9a845fdba514339d86c0c3761a85cf34a17a5613
- Have resolveUnknownBinding() run the full "resolve unknown type"
logic if the binding is a type.
- Handle EvalTypeId
Change-Id: I97946453755ddcf6f382195ddb9fc7dcb2672b68
This resolves a significant UI performance regression so
now line numbers don't need to be recalculated for areas
where they are already known.
Change-Id: I4668d620cde24b7cd8c6a22e9c022eaf5b237ff2
We previously modelled alias template specializations as alias template
instances, which was conceptually incorrect and problematic for a number
of reasons.
Change-Id: Ibca8b87bb3d54cd3ae312254a02e8522e446331d
This allows reusing more code, such as CommonCPPTypes and
BindingAssertionHelper, between the two test suites.
Change-Id: I8203191fc3a10565add0ae1bd25c98f743cd1e64
Re-wrote the BuildConsolePartitioner to do as many operations as possible
in the non-UI thread and only to update the UI thread in batches.
Key changes:
- The UI thread "pulls" changes when it is ready, this means that many
lines of output are updated in one go. This compares to the "push" that
the non-UI thread used to do. The previous code pushed a change to the
UI thread on every line of build output.
- The limit on console size is now soft, rather than recalcuating the
entire document on each line (i.e. add line at bottom, remove line
from top) the document is truncated to the limit size as it reaches
2x the limit size. This calculation is also done more effeciently by
tracking the number of lines each partition contains rather than
recalculating them.
- Folded most of the implementation of BuildConsolePartition into
BuildConsolePartitioner. This is because the partioner has a global
view and is much more efficient at determining if adjacent partitions
can be combined. In addition, rather than having the complexity of
splitting partitions that were too long, instead make sure we don't
create such partitions in the first place.
Change-Id: I47543db3fef754e779684cae44d3316982f1bc0a
Specifically, this patch:
- Adds support for a new builtin, __builtin_assume_aligned.
- Models __builtin_constant_p as a function instead of a macro.
This inhibits constexpr evaluation, but allows for correct
type-checking.
- Diagnoses misuses of known builtins, instead of ingoring them like
unknown builtins.
Change-Id: Ie5a26f2010dc5b19e6f32a8c6a1237fe88da393e
Manually testing this code shows it works, but this test fails
>50% of the time on Hudson causing significant numbers of
UNSTABLE builds.
Change-Id: Ie23e97e477d9b154ff33b38374bd257412241889
The break inserter test was running all display events for 200ms after
each simulated keystroke, but all sideeffects were happening synchronously
or being placed on the event queue synchronously. So speed-up is achieved
by running event queue until empty instead of effectively sleeping for
200ms
Change-Id: Icffd4d5526176e596cf8ce3ac716a4ae88d51159
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
This change enables future tests to use new style annotations,
for example using @RunWith(Parameterized.class)
Change-Id: I4998e8b50fc7574c057b4f4a556205ce5a2497d6
This removes a lot of pom.xml from the source tree. This is using the
"POM-less" Tycho functionality.
See
https://wiki.eclipse.org/Tycho/Release_Notes/0.24#POM-less_Tycho_builds
One advantage of this is that you do not need to update the version in
the pom.xml when you change it in the MANIFEST.MF because the pom.xml is
automatically generated. This also reduces a lot of the duplicated
information and pom.xml repetition.
- Maven 3.3 and up is required.
- Only eclipse-plugins and eclipse-features can be pom-less.
Repositories, target and others still have pom.xml.
- New parent poms are added because a parent is necessary directly one
level above the plug-in/feature that will have its pom generated
- Some test plug-ins had to be renamed .test -> .tests because it's
required so that it detects that it's a test plug-in
- Some suites were renamed so that they all use the same consistent name
"AutomatedIntegrationSuite"
- Profiles were added for the more common test configurations. They are
activated by the presence of simple .properties files that only serve to
activate the correct profile. The profiles:
- One for UI tests (UI present and start in UI thread)
- One for SWTBot tests (UI present and do not start in UI thread)
Other test plug-ins that are too different are kept intact and still
have
a pom.xml
- Fragments are kept intact since they all have different target
platform configurations
Change-Id: I9d73380eb766f547830c552daf08053a30b1845c
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
The change is invalid since a PDOMName can participate in only one
binding at a time through its BINDING_PREV_OFFSET/ BINDING_PREV_OFFSET
pointers.
This reverts commit 2706699543.
Change-Id: I1a4dd7b189b85a0d9c1cca2660d33ab7351a025c
Previously, the arguments shared the color of the template-name.
Now, the arguments get their own colors.
Change-Id: I27af4146717a19095f1ac22188eedb8a71d9466c