genericitds: field type mungers now understand a map from type variable names to positions (for generic itds). Some changes to assignable rules to support the new possibilities.
changes to construction and representation of parameterized types, and enforcement of the constraint that type mungers always operate on the generic type (never raw or parameterized)
This is the beginning of a significant refactoring needed to cleanly support generics. We need to be much crisper about when we have an unresolved type (plain old TypeX) and when we have a resolved type. This refactoring renames TypeX to UnresolvedType and ResolvedTypeX to ResolvedType. In addition, it moves a number of methods that were defined on TypeX but which can only be answered by resolved types down onto ResolvedType. At the moment, ResolvedType still extends UnresolvedType - but a ResolvedType is *not* a UnresolvedType and this inheritance of convenience will be broken down the line so that ResolvedType does not extend UnresolvedType. Full signature information can only be known for ResolvedTypes.
Finally ... type mungers now remember where they came from in their attributes. So during binary weaving we can determine the source of the declarations. We will still understand the old form of attribute that is missing the source location.
(This means incremental compilation of ITDs will work properly for the IDE.)
- Enhanced structure model support.
- *Incremental* structure model support written and tested (currently switched off, see incModelTests.xml)
- -showWeaveInfo compiler option
- existence of a 'runtimetest' surfaced through relationships
- UI can determine if errors/warnings came from DEOWs.
- Code to enable type mungers to remember source locations written (currently switched off)
binary aspect-declared methods conflict, lost their exception clauses
larger fix to address more issues with aspect-declared methods in bytecode form
also addressed declared exception issue more generally
this fix should be more stable than a smaller hack that just fixed this specific bug
report would have been. added a few tests to match increased scope.