org_aspectj_ajde_core_tests_model_SavedModelConsistencyTest_java
org.aspectj.org.eclipse.jdt.internal.compiler.ast.FieldDeclaration
public void resolve(MethodScope initializationScope) {
        if ((this.bits & 0x10) != 0) {
            return;
        }
        if (this.binding == null || !this.binding.isValidBinding()) {
            return;
        }
        this.bits |= 0x10;
        ClassScope classScope = initializationScope.enclosingClassScope();
        if (classScope != null) {
            FieldBinding existingVariable;
            SourceTypeBinding declaringType = classScope.enclosingSourceType();
            if (declaringType.superclass != null && (existingVariable = classScope.findField(declaringType.superclass, this.name, this, false, true)) != null && existingVariable.isValidBinding() && existingVariable.original() != this.binding && existingVariable.canBeSeenBy(declaringType, this, initializationScope)) {
                initializationScope.problemReporter().fieldHiding(this, existingVariable);
            } else {
                FieldBinding existingField;
                Binding existingVariable2;
                Scope outerScope = classScope.parent;
                if (outerScope.kind != 4 && (existingVariable2 = outerScope.getBinding(this.name, 3, this, false)) != null && existingVariable2.isValidBinding() && existingVariable2 != this.binding && (!(existingVariable2 instanceof FieldBinding) || (existingField = (FieldBinding)existingVariable2).original() != this.binding && (existingField.isStatic() || !declaringType.isStatic()))) {
                    initializationScope.problemReporter().fieldHiding(this, existingVariable2);
                }
            }
        }
        if (this.type != null) {
            this.type.resolvedType = this.binding.type;
        }
        FieldBinding previousField = initializationScope.initializedField;
        int previousFieldID = initializationScope.lastVisibleFieldID;
        try {
            initializationScope.initializedField = this.binding;
            initializationScope.lastVisibleFieldID = this.binding.id;
            FieldDeclaration.resolveAnnotations((BlockScope)initializationScope, this.annotations, this.binding);
            if (this.annotations != null) {
                int i = 0;
                int max = this.annotations.length;
                while (i < max) {
                    TypeBinding resolvedAnnotationType = this.annotations[i].resolvedType;
                    if (resolvedAnnotationType != null && (resolvedAnnotationType.getAnnotationTagBits() & 0x20000000000000L) != 0L) {
                        this.bits |= 0x100000;
                        break;
                    }
                    ++i;
                }
            }
            if ((this.binding.getAnnotationTagBits() & 0x400000000000L) == 0L && (this.binding.modifiers & 0x100000) != 0 && initializationScope.compilerOptions().sourceLevel >= 0x310000L) {
                initializationScope.problemReporter().missingDeprecatedAnnotationForField(this);
            }
            if (this.initialization == null) {
                this.binding.setConstant(Constant.NotAConstant);
            } else {
                this.binding.setConstant(Constant.NotAConstant);
                TypeBinding fieldType = this.binding.type;
                this.initialization.setExpressionContext(ExpressionContext.ASSIGNMENT_CONTEXT);
                this.initialization.setExpectedType(fieldType);
                if (this.initialization instanceof ArrayInitializer) {
                    TypeBinding initializationType = this.initialization.resolveTypeExpecting(initializationScope, fieldType);
                    if (initializationType != null) {
                        ((ArrayInitializer)this.initialization).binding = (ArrayBinding)initializationType;
                        this.initialization.computeConversion(initializationScope, fieldType, initializationType);
                    }
                } else {
                    TypeBinding initializationType = this.initialization.resolveType(initializationScope);
                    if (initializationType != null) {
                        if (TypeBinding.notEquals(fieldType, initializationType)) {
                            initializationScope.compilationUnitScope().recordTypeConversion(fieldType, initializationType);
                        }
                        if (this.initialization.isConstantValueOfTypeAssignableToType(initializationType, fieldType) || initializationType.isCompatibleWith(fieldType, classScope)) {
                            this.initialization.computeConversion(initializationScope, fieldType, initializationType);
                            if (initializationType.needsUncheckedConversion(fieldType)) {
                                initializationScope.problemReporter().unsafeTypeConversion(this.initialization, initializationType, fieldType);
                            }
                            if (this.initialization instanceof CastExpression && (this.initialization.bits & 0x4000) == 0) {
                                CastExpression.checkNeedForAssignedCast(initializationScope, fieldType, (CastExpression)this.initialization);
                            }
                        } else if (this.isBoxingCompatible(initializationType, fieldType, this.initialization, initializationScope)) {
                            this.initialization.computeConversion(initializationScope, fieldType, initializationType);
                            if (this.initialization instanceof CastExpression && (this.initialization.bits & 0x4000) == 0) {
                                CastExpression.checkNeedForAssignedCast(initializationScope, fieldType, (CastExpression)this.initialization);
                            }
                        } else if (((fieldType.tagBits | initializationType.tagBits) & 0x80L) == 0L) {
                            initializationScope.problemReporter().typeMismatchError(initializationType, fieldType, this.initialization, null);
                        }
                        if (this.binding.isFinal()) {
                            this.binding.setConstant(this.initialization.constant.castTo((this.binding.type.id << 4) + this.initialization.constant.typeID()));
                        }
                    } else {
                        this.binding.setConstant(Constant.NotAConstant);
                    }
                }
                if (this.binding == Expression.getDirectBinding(this.initialization)) {
                    initializationScope.problemReporter().assignmentHasNoEffect(this, this.name);
                }
            }
        }
        finally {
            initializationScope.initializedField = previousField;
            initializationScope.lastVisibleFieldID = previousFieldID;
            if (this.binding.constant(initializationScope) == null) {
                this.binding.setConstant(Constant.NotAConstant);
            }
        }
    }
 -> java.lang.Object.hashCode(): int -> java.util.LinkedHashSet.add(java.lang.Object): boolean -> java.lang.Math.min(int,int): int -> java.lang.Math.min(int,int): int -> java.lang.Object.hashCode(): int -> java.util.LinkedHashSet.add(java.lang.Object): boolean
 [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] -> java.lang.Object.hashCode(): int [EXIT] [EXIT] -> java.util.LinkedHashSet.add(java.lang.Object): boolean [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.lang.Math.min(int,int): int [EXIT] [CALL] -> java.lang.Math.min(int,int): int [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] -> java.lang.Object.hashCode(): int [EXIT] [EXIT] -> java.util.LinkedHashSet.add(java.lang.Object): boolean [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT]