diff options
author | aclement <aclement> | 2005-07-11 10:46:30 +0000 |
---|---|---|
committer | aclement <aclement> | 2005-07-11 10:46:30 +0000 |
commit | c7f2d49d5b8b3b5c62ae53fd89287bff9ea8cb7f (patch) | |
tree | 173472eee947c9020679e5c9ad4704d7fe10ba2b /weaver | |
parent | a4492af50cb0eafd85918b2755125f0bab162c63 (diff) | |
download | aspectj-c7f2d49d5b8b3b5c62ae53fd89287bff9ea8cb7f.tar.gz aspectj-c7f2d49d5b8b3b5c62ae53fd89287bff9ea8cb7f.zip |
generics: few bug fixes to ensure typex's know if they represent generics/raws or simples.
Diffstat (limited to 'weaver')
-rw-r--r-- | weaver/src/org/aspectj/weaver/ReferenceType.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/ReferenceType.java b/weaver/src/org/aspectj/weaver/ReferenceType.java index 217c32bb7..f2c160ecc 100644 --- a/weaver/src/org/aspectj/weaver/ReferenceType.java +++ b/weaver/src/org/aspectj/weaver/ReferenceType.java @@ -39,6 +39,13 @@ public class ReferenceType extends ResolvedTypeX { ISourceContext sourceContext = null; int startPos = 0; int endPos = 0; + + public static ReferenceType fromTypeX(TypeX tx, World world) { + ReferenceType rt = new ReferenceType(tx.getRawTypeSignature(),world); + rt.typeKind = tx.typeKind; + return rt; + } + // cached values for members ResolvedMember[] parameterizedMethods = null; @@ -57,6 +64,7 @@ public class ReferenceType extends ResolvedTypeX { public ReferenceType(TypeX genericType, World world) { super(genericType.getSignature(),world); genericSignature=genericType.genericSignature; + typeKind=GENERIC; } public final boolean isClass() { @@ -290,7 +298,13 @@ public class ReferenceType extends ResolvedTypeX { } public void setGenericType(ReferenceType rt) { - this.genericType = rt; + genericType = rt; + // Should we 'promote' this reference type from simple to raw? + // makes sense if someone is specifying that it has a generic form + if ( typeKind == TypeX.SIMPLE ) { + typeKind = TypeX.RAW; + rawTypeSignature = signature; + } } public ResolvedTypeX getGenericType() { |