]> source.dussan.org Git - aspectj.git/commitdiff
proper handling of type variable signatures ("Txxx;")
authoracolyer <acolyer>
Thu, 11 Aug 2005 14:59:50 +0000 (14:59 +0000)
committeracolyer <acolyer>
Thu, 11 Aug 2005 14:59:50 +0000 (14:59 +0000)
weaver/src/org/aspectj/weaver/TypeFactory.java
weaver/src/org/aspectj/weaver/UnresolvedType.java

index 465747b4df8eb09cde61fd0110146ff4bb1be02b..b921d0aad50597486430434957dd1515b42c6491 100644 (file)
@@ -104,6 +104,12 @@ public class TypeFactory {
                        ret.typeKind = TypeKind.WILDCARD;
                        ret.setLowerBound(bound);
                        return ret;
+               } else if (signature.startsWith("T")) {
+                       String typeVariableName = signature.substring(1);
+                       if (typeVariableName.endsWith(";")) {
+                               typeVariableName = typeVariableName.substring(0, typeVariableName.length() -1);
+                       }
+                       return new UnresolvedTypeVariableReferenceType(new TypeVariable(typeVariableName));
                }
                return new UnresolvedType(signature);
        }
index aa657244c6ee044fc410b2c595f32ebbbfb21b3c..eee985b2909cb162bd680b0a512fab958088e0d3 100644 (file)
@@ -421,7 +421,7 @@ public class UnresolvedType implements TypeVariableDeclaringElement {
             case '+': return TypeFactory.createTypeFromSignature(signature);
             case '-' : return TypeFactory.createTypeFromSignature(signature);
             case '?' : return TypeFactory.createTypeFromSignature(signature);
-            case 'T' : return new UnresolvedTypeVariableReferenceType(new TypeVariable(signature.substring(1)));
+            case 'T' : return TypeFactory.createTypeFromSignature(signature);
             default:  throw new BCException("Bad type signature " + signature);
         }      
     }
@@ -773,7 +773,7 @@ public class UnresolvedType implements TypeVariableDeclaringElement {
     }
     
        public void write(DataOutputStream s) throws IOException {
-               s.writeUTF(signature);
+               s.writeUTF(getSignature());
        }
        
        public static UnresolvedType read(DataInputStream s) throws IOException {