| Summary: | CCE in LazyLinkingResource#resolveLazyCrossReferences(...) | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Modeling] TMF | Reporter: | Sebastian Benz <sebastian.benz> | ||||||
| Component: | Xtext | Assignee: | Project Inbox <tmf.xtext-inbox> | ||||||
| Status: | CLOSED FIXED | QA Contact: | |||||||
| Severity: | normal | ||||||||
| Priority: | P3 | CC: | knut.wannheden, sebastian.zarnekow, sven.efftinge | ||||||
| Version: | 2.0.0 | Flags: | sebastian.zarnekow:
indigo+
|
||||||
| Target Milestone: | M5 | ||||||||
| Hardware: | All | ||||||||
| OS: | All | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
|
Description
Sebastian Benz
I accidentally added an empty test case (XBinaryOperationTest) to the patch, which can be safely ignored. Created attachment 185228 [details]
Bug fix & tests
Created attachment 185237 [details]
Updated bug fix & test
Patch has been applied. Thanks. getArguments is now called getAllArguments and is no longer an EReference but an EOperation. I wonder whether we should exclude 'derived' and 'transient' cross references in LazyLinkingResource.resolveLazyCrossReference(InternalEObject, EStructuralFeature) An comments? (In reply to comment #5) > I wonder whether we should exclude 'derived' and 'transient' cross references > in > LazyLinkingResource.resolveLazyCrossReference(InternalEObject, > EStructuralFeature) > > An comments? I think it should behave like the EObjectValidator when it tries to detect unresolved proxies. (In reply to comment #6) > (In reply to comment #5) > > I wonder whether we should exclude 'derived' and 'transient' cross references > > in > > LazyLinkingResource.resolveLazyCrossReference(InternalEObject, > > EStructuralFeature) > > > > An comments? > > I think it should behave like the EObjectValidator when it tries to detect > unresolved proxies. I agree. In our projects we've used both transient and derived references which we normally want to be checked by the validation.
>
> I agree. In our projects we've used both transient and derived references which
> we normally want to be checked by the validation.
But derived or transient features do not contain lazy proxies, do they?
(In reply to comment #8) > > > > I agree. In our projects we've used both transient and derived references which > > we normally want to be checked by the validation. > > But derived or transient features do not contain lazy proxies, do they? In our case they actually sometimes do. In these cases the linker will in afterModelLinked() have installed a lazy proxy based on the node model for another EAttribute. We then dub this a "derived attribute based reference". One use case for this is languages like Ada with separate package specification and body files, where the package body name should also be an implicit reference to its package specification. Parsing this as a cross reference in the first place is not so good as this may cause problems for the builder when computing the corresponding EObjectDescription's name (or would alternatively require extracting the name from the node model). Of course subsequent (i.e. post parse) changes to the EAttribute must be tracked by an EAdapter, at which point the EReference no longer has a lazy proxy. Closing all bugs that were set to RESOLVED before Neon.0 Closing all bugs that were set to RESOLVED before Neon.0 |