org_aspectj_weaver_ReferenceTypeTestCase_java
org.aspectj.weaver.ResolvedType
@Override
    public UnresolvedType parameterize(Map<String, UnresolvedType> typeBindings) {
        if (!this.isParameterizedType()) {
            return this;
        }
        boolean workToDo = false;
        for (UnresolvedType typeParameter : this.typeParameters) {
            if (!typeParameter.isTypeVariableReference() && !(typeParameter instanceof BoundedReferenceType) && !typeParameter.isParameterizedType()) continue;
            workToDo = true;
        }
        if (!workToDo) {
            return this;
        }
        UnresolvedType[] newTypeParams = new UnresolvedType[this.typeParameters.length];
        for (int i = 0; i < newTypeParams.length; ++i) {
            newTypeParams[i] = this.typeParameters[i];
            if (newTypeParams[i].isTypeVariableReference()) {
                TypeVariableReferenceType tvrt = (TypeVariableReferenceType)newTypeParams[i];
                UnresolvedType binding = typeBindings.get(tvrt.getTypeVariable().getName());
                if (binding == null) continue;
                newTypeParams[i] = binding;
                continue;
            }
            if (newTypeParams[i] instanceof BoundedReferenceType) {
                BoundedReferenceType brType = (BoundedReferenceType)newTypeParams[i];
                newTypeParams[i] = brType.parameterize(typeBindings);
                continue;
            }
            if (!newTypeParams[i].isParameterizedType()) continue;
            newTypeParams[i] = newTypeParams[i].parameterize(typeBindings);
        }
        return TypeFactory.createParameterizedType(this.getGenericType(), newTypeParams, this.getWorld());
    }
 -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.ref.WeakReference.get(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.ref.WeakReference.get(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.ref.WeakReference.get(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.ref.WeakReference.get(): 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
 [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.ref.WeakReference.get(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.ref.WeakReference.get(): java.lang.Object [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.ref.WeakReference.get(): java.lang.Object [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.ref.WeakReference.get(): java.lang.Object [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [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] [EXIT] [EXIT]