org_aspectj_ajde_internal_AspectJBuildManagerTest_java
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding
private void initializeTypeVariable(TypeVariableBinding variable, TypeVariableBinding[] existingVariables, SignatureWrapper wrapper, char[][][] missingTypeNames, ITypeAnnotationWalker walker) {
        ReferenceBinding type;
        if (!this.isPrototype()) {
            throw new IllegalStateException();
        }
        int colon = CharOperation.indexOf(':', wrapper.signature, wrapper.start);
        wrapper.start = colon + 1;
        ReferenceBinding firstBound = null;
        short rank = 0;
        if (wrapper.signature[wrapper.start] == ':') {
            type = this.environment.getResolvedJavaBaseType(TypeConstants.JAVA_LANG_OBJECT, null);
            rank = (short)(rank + 1);
        } else {
            short s = rank;
            rank = (short)(s + 1);
            TypeBinding typeFromTypeSignature = this.environment.getTypeFromTypeSignature(wrapper, existingVariables, this, missingTypeNames, walker.toTypeBound(s));
            type = typeFromTypeSignature instanceof ReferenceBinding ? (ReferenceBinding)typeFromTypeSignature : this.environment.getResolvedJavaBaseType(TypeConstants.JAVA_LANG_OBJECT, null);
            firstBound = type;
        }
        variable.modifiers |= 0x2000000;
        variable.setSuperClass(type);
        ReferenceBinding[] bounds = null;
        if (wrapper.signature[wrapper.start] == ':') {
            ArrayList<TypeBinding> types = new ArrayList<TypeBinding>(2);
            do {
                ++wrapper.start;
                short s = rank;
                rank = (short)(s + 1);
                types.add(this.environment.getTypeFromTypeSignature(wrapper, existingVariables, this, missingTypeNames, walker.toTypeBound(s)));
            } while (wrapper.signature[wrapper.start] == ':');
            bounds = new ReferenceBinding[types.size()];
            types.toArray(bounds);
        }
        variable.setSuperInterfaces(bounds == null ? Binding.NO_SUPERINTERFACES : bounds);
        if (firstBound == null) {
            firstBound = variable.superInterfaces.length == 0 ? null : variable.superInterfaces[0];
        }
        variable.setFirstBound(firstBound);
    }
 -> java.util.HashMap.get(java.lang.Object): java.lang.Object -> java.util.Arrays.hashCode(char[]): int -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.HashMap.get(java.lang.Object): java.lang.Object -> java.util.Arrays.hashCode(char[]): int -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.hashCode(char[]): int -> java.util.Arrays.equals(char[],char[]): boolean -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.util.HashMap.get(java.lang.Object): java.lang.Object -> java.util.Arrays.hashCode(char[]): int -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.HashMap.get(java.lang.Object): java.lang.Object -> java.util.Arrays.hashCode(char[]): int -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.hashCode(char[]): int -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.ArrayList.add(java.lang.Object): boolean -> java.util.ArrayList.size(): int -> java.util.ArrayList.toArray(java.lang.Object[]): java.lang.Object[]
 [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] -> java.util.HashMap.get(java.lang.Object): java.lang.Object [CALL] -> java.util.Arrays.hashCode(char[]): int [EXIT] [CALL] -> java.util.Arrays.equals(char[],char[]): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] -> java.util.HashMap.get(java.lang.Object): java.lang.Object [CALL] -> java.util.Arrays.hashCode(char[]): int [EXIT] [CALL] -> java.util.Arrays.equals(char[],char[]): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.util.Arrays.hashCode(char[]): int [EXIT] [CALL] -> java.util.Arrays.equals(char[],char[]): boolean [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] -> java.util.HashMap.get(java.lang.Object): java.lang.Object [CALL] -> java.util.Arrays.hashCode(char[]): int [EXIT] [CALL] -> java.util.Arrays.equals(char[],char[]): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] -> java.util.HashMap.get(java.lang.Object): java.lang.Object [CALL] -> java.util.Arrays.hashCode(char[]): int [EXIT] [CALL] -> java.util.Arrays.equals(char[],char[]): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean -> java.util.Arrays.equals(char[],char[]): boolean [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.util.Arrays.hashCode(char[]): int [EXIT] [CALL] -> java.util.Arrays.equals(char[],char[]): boolean [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.ArrayList.add(java.lang.Object): boolean -> java.util.ArrayList.size(): int -> java.util.ArrayList.toArray(java.lang.Object[]): java.lang.Object[] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT]