org_aspectj_weaver_ParameterizedReferenceTypeTestCase_java
org.aspectj.weaver.BoundedReferenceType
@Override
    public UnresolvedType parameterize(Map<String, UnresolvedType> typeBindings) {
        if (this.kind == 0) {
            return this;
        }
        ReferenceType[] parameterizedAdditionalInterfaces = new ReferenceType[this.additionalInterfaceBounds == null ? 0 : this.additionalInterfaceBounds.length];
        for (int i = 0; i < parameterizedAdditionalInterfaces.length; ++i) {
            parameterizedAdditionalInterfaces[i] = (ReferenceType)this.additionalInterfaceBounds[i].parameterize(typeBindings);
        }
        if (this.kind == 1) {
            UnresolvedType parameterizedUpperBound = this.getUpperBound().parameterize(typeBindings);
            if (!(parameterizedUpperBound instanceof ReferenceType)) {
                throw new IllegalStateException("DEBUG551732: Unexpected problem processing bounds. Parameterizing " + this.getUpperBound() + " produced " + parameterizedUpperBound + " (Type: " + parameterizedUpperBound == null ? "null" : parameterizedUpperBound.getClass().getName() + ") (typeBindings=" + typeBindings + ")");
            }
            return new BoundedReferenceType((ReferenceType)parameterizedUpperBound, true, this.world, parameterizedAdditionalInterfaces);
        }
        UnresolvedType parameterizedLowerBound = this.getLowerBound().parameterize(typeBindings);
        if (!(parameterizedLowerBound instanceof ReferenceType)) {
            throw new IllegalStateException("PR543023: Unexpectedly found a non reference type: " + parameterizedLowerBound.getClass().getName() + " with signature " + parameterizedLowerBound.getSignature());
        }
        return new BoundedReferenceType((ReferenceType)parameterizedLowerBound, false, this.world, parameterizedAdditionalInterfaces);
    }
 -> java.lang.String.charAt(int): char -> java.lang.String.indexOf(java.lang.String): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.ref.WeakReference.get(): java.lang.Object -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.List.removeAll(java.util.Collection): boolean -> java.lang.ref.WeakReference.clear(): void -> java.lang.ref.WeakReference.clear(): void
 [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.indexOf(java.lang.String): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.ref.WeakReference.get(): java.lang.Object [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.List.removeAll(java.util.Collection): boolean [CALL] [EXIT] [CALL] -> java.lang.ref.WeakReference.clear(): void [EXIT] [CALL] -> java.lang.ref.WeakReference.clear(): void [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT]