| Summary: | [compiler][generics] import issues with inherited playedBy binding inside parameterized team | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Tools] Objectteams | Reporter: | Stephan Herrmann <stephan.herrmann> | ||||
| Component: | OTJ | Assignee: | Stephan Herrmann <stephan.herrmann> | ||||
| Status: | VERIFIED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | ||||||
| Version: | 0.8 | ||||||
| Target Milestone: | 0.8 M5 | ||||||
| Hardware: | Other | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
Created attachment 187701 [details]
test & fix
Apparently some alien scope type references were simply missing
a roll back after first resolve attempt failed.
Patch has been committed as r1251, r1252. The main issues has been verified for 0.8M5 using build 201101290806. Filed a FUP as bug 335774. |
given these teams: import pack.MyBase; public team class SuperTeam<U> { protected class R playedBy MyBase {} } public team class SubTeam extends SuperTeam<String> { @Override protected class R {} } Here the compiler complains at SubTeam.R that MyBase cannot be resolved. When adding an explicit import for MyBase - that import is marked as unused - the bogus error disappears - a warning appears that MyBase should be imported using a base import (which in turn wouldn't work). The problem does go away if SuperTeam uses a base import as recommended. (SuperTeam did have a 'bindingconventions' warning in the first place).