Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 325397

Summary: [compiler][generics] CCE in generic nested team
Product: [Tools] Objectteams Reporter: Stephan Herrmann <stephan.herrmann>
Component: OTJAssignee: Stephan Herrmann <stephan.herrmann>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 0.7   
Target Milestone: 0.8 M4   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
fix for the CCEs
none
additional fix none

Description Stephan Herrmann CLA 2010-09-15 17:27:09 EDT
The following team causes grief in the compiler:

public team class TeamA121gnt1 {
	public team class Mid<A1> {
		protected class Inner<A> {}
	}
	public team class Mid2<A2> extends Mid<A2> {
	}
}

We get two CCEs and some incorrect errors/warnings.
Comment 1 Stephan Herrmann CLA 2010-09-16 11:59:13 EDT
Created attachment 179042 [details]
fix for the CCEs

This patch fixes the CCEs.

A full fix for the given testcase has to be deferred post 0.7.1,
since it will need significant changes for various combinations
of parameterized and weakened type bindings.
Comment 2 Stephan Herrmann CLA 2010-12-11 11:45:54 EST
Created attachment 185023 [details]
additional fix

Together with recent changes in bug 331877 this patch solves the issue:
 + don't let the MethodVerifier analyse those ifc-methods that are
   placeholders for non-public methods inherited from non-role super.
 + experimentally use the weak type in MethodVerifier.areEqualRoleTypes()
   which avoids incompatibility between two _OT$create$Confined methods.
Also:
 + don't report hiding of type parameters between class&ifc-part of 
   the same role
Comment 3 Stephan Herrmann CLA 2010-12-11 11:48:37 EST
Patch has been released for M4 as r1148 f.
Comment 4 Stephan Herrmann CLA 2010-12-16 15:42:14 EST
Verified for M4 using build 201012150343