Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 343594 - [compiler] VerifierError when synthetic accessor is copied during incremental build
Summary: [compiler] VerifierError when synthetic accessor is copied during incremental...
Status: VERIFIED FIXED
Alias: None
Product: Objectteams
Classification: Tools
Component: OTJ (show other bugs)
Version: 0.8   Edit
Hardware: Other Linux
: P3 normal (vote)
Target Milestone: 0.8 M7   Edit
Assignee: Stephan Herrmann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-21 13:19 EDT by Stephan Herrmann CLA
Modified: 2011-04-30 15:20 EDT (History)
0 users

See Also:


Attachments
test & proposed fix (3.96 KB, patch)
2011-04-21 13:28 EDT, Stephan Herrmann CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Stephan Herrmann CLA 2011-04-21 13:19:34 EDT
A synthetic access method (e.g., for this$0) will be generated with
wrong signature if tsuper role is read from .class file.

This manifests in a method signature with a role interface parameter,
but inside the method, this argument is treated as the role class.

Observed in OTSample-FlightBonus when only touching/saving role file
GUIConnector/FlightBonusDialog.
Comment 1 Stephan Herrmann CLA 2011-04-21 13:28:50 EDT
Created attachment 193864 [details]
test & proposed fix

The problem is rooted in the fact that copy inheritance triggers
(via resolveGeneratedMethod -> resolveTypesFor) wrapping of types in the
method signature even for copies of synthetic methods.

Solved by passing one more flag into resolveTypesFor.

Test results pending.
Comment 2 Stephan Herrmann CLA 2011-04-21 15:37:51 EDT
OTJLD tests pass.

Patch has been committed as r1443,4
Comment 3 Stephan Herrmann CLA 2011-04-30 15:20:13 EDT
Verified for 0.8M7 using build 201104300913