Bug 480912 - [active annotations] Support for multiple passes
Summary: [active annotations] Support for multiple passes
Status: UNCONFIRMED
Alias: None
Product: Xtend
Classification: Tools
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows NT
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL: https://groups.google.com/forum/#!top...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-10-28 14:47 EDT by Kirsten M. Z. CLA
Modified: 2015-11-13 21:01 EST (History)
2 users (show)

See Also:


Attachments
Active Annotations for Extension Classes (14.16 KB, application/x-zip-compressed)
2015-11-13 20:58 EST, Kirsten M. Z. CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kirsten M. Z. CLA 2015-10-28 14:47:03 EDT
In some cases the generated code on basis of an active annotations is dependent on the application of another active annotation. However, cycles cannot always be detected correctly (e.g. newly generated classes/interfaces etc).

In such cases a multiple-pass approach of processing active annotations would help.

In my concrete use case, I even could not find any workaround, i.e. the project cannot be built from scratch in a clean way and after the basic build I have to open each xtend file, add a whitespace (change the file) and save/compile again. So in the end I have two passes and it works then.

(cp. https://groups.google.com/forum/#!topic/xtend-lang/t6awI3v3LKA)
Comment 1 Sven Efftinge CLA 2015-10-29 00:55:20 EDT
Could you provide a concrete example, in which case an extra spin would be necessary?
Comment 2 Kirsten M. Z. CLA 2015-11-13 20:58:33 EST
Created attachment 257940 [details]
Active Annotations for Extension Classes
Comment 3 Kirsten M. Z. CLA 2015-11-13 21:01:40 EST
I've added a short example which shows the reported behavior.

Let Eclipse build everything from scratch and it will result in two errors ("Component.xtend" and "Extensions.xtend"). Just opening these files, adding a space, or something, and save does the Job. Afterwards, everything works.