public TypeDeclaration referenceType() { return methodScope().referenceType(); }
public TypeDeclaration referenceType() { return methodScope().referenceType(); }
public TypeDeclaration referenceType() { return methodScope().referenceType(); }
public TypeDeclaration referenceType() { return methodScope().referenceType(); }
public TypeDeclaration referenceType() { return methodScope().referenceType(); }
public TypeDeclaration referenceType() { return methodScope().referenceType(); }
public TypeDeclaration referenceType() { return methodScope().referenceType(); }
public TypeDeclaration referenceType() { return methodScope().referenceType(); }
public TypeDeclaration referenceType() { return methodScope().referenceType(); }
public TypeDeclaration referenceType() { return methodScope().referenceType(); }
public TypeDeclaration referenceType() { return methodScope().referenceType(); }
private void analyzeExceptions() { ExceptionHandlingFlowContext ehfc; try { this.body.analyseCode(this.scope, ehfc = new ExceptionInferenceFlowContext(null, this, Binding.NO_EXCEPTIONS, null, this.scope, FlowInfo.DEAD_END), UnconditionalFlowInfo.fakeInitializedFlowInfo(this.scope.outerMostMethodScope().analysisIndex, this.scope.referenceType().maxFieldCount)); this.thrownExceptions = ehfc.extendedExceptions == null ? Collections.emptySet() : new HashSet<TypeBinding>(ehfc.extendedExceptions); } catch (Exception e) { // drop silently. } } public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, final FlowInfo flowInfo) {
private void analyzeExceptions() { ExceptionHandlingFlowContext ehfc; try { this.body.analyseCode(this.scope, ehfc = new ExceptionInferenceFlowContext(null, this, Binding.NO_EXCEPTIONS, null, this.scope, FlowInfo.DEAD_END), UnconditionalFlowInfo.fakeInitializedFlowInfo(this.scope.outerMostMethodScope().analysisIndex, this.scope.referenceType().maxFieldCount)); this.thrownExceptions = ehfc.extendedExceptions == null ? Collections.emptySet() : new HashSet<TypeBinding>(ehfc.extendedExceptions); } catch (Exception e) { // drop silently. } } public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, final FlowInfo flowInfo) {
private void analyzeExceptions() { ExceptionHandlingFlowContext ehfc; try { this.body.analyseCode(this.scope, ehfc = new ExceptionInferenceFlowContext(null, this, Binding.NO_EXCEPTIONS, null, this.scope, FlowInfo.DEAD_END), UnconditionalFlowInfo.fakeInitializedFlowInfo(this.scope.outerMostMethodScope().analysisIndex, this.scope.referenceType().maxFieldCount)); this.thrownExceptions = ehfc.extendedExceptions == null ? Collections.emptySet() : new HashSet<TypeBinding>(ehfc.extendedExceptions); } catch (Exception e) { // drop silently. } } public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, final FlowInfo flowInfo) {
private void analyzeExceptions() { ExceptionHandlingFlowContext ehfc; CompilerOptions compilerOptions = this.scope.compilerOptions(); boolean oldAnalyseResources = compilerOptions.analyseResourceLeaks; compilerOptions.analyseResourceLeaks = false; try { this.body.analyseCode(this.scope, ehfc = new ExceptionInferenceFlowContext(null, this, Binding.NO_EXCEPTIONS, null, this.scope, FlowInfo.DEAD_END), UnconditionalFlowInfo.fakeInitializedFlowInfo(this.scope.outerMostMethodScope().analysisIndex, this.scope.referenceType().maxFieldCount)); this.thrownExceptions = ehfc.extendedExceptions == null ? Collections.emptySet() : new HashSet<TypeBinding>(ehfc.extendedExceptions); } catch (Exception e) { // drop silently. } finally { compilerOptions.analyseResourceLeaks = oldAnalyseResources; } } @Override
private void analyzeExceptions() { ExceptionHandlingFlowContext ehfc; CompilerOptions compilerOptions = this.scope.compilerOptions(); boolean oldAnalyseResources = compilerOptions.analyseResourceLeaks; compilerOptions.analyseResourceLeaks = false; try { this.body.analyseCode(this.scope, ehfc = new ExceptionInferenceFlowContext(null, this, Binding.NO_EXCEPTIONS, null, this.scope, FlowInfo.DEAD_END), UnconditionalFlowInfo.fakeInitializedFlowInfo(this.scope.outerMostMethodScope().analysisIndex, this.scope.referenceType().maxFieldCount)); this.thrownExceptions = ehfc.extendedExceptions == null ? Collections.emptySet() : new HashSet<TypeBinding>(ehfc.extendedExceptions); } catch (Exception e) { // drop silently. } finally { compilerOptions.analyseResourceLeaks = oldAnalyseResources; } } public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, final FlowInfo flowInfo) {
private boolean doesNotCompleteNormally() { try { return this.body.analyseCode(this.scope, new ExceptionHandlingFlowContext(null, this, Binding.NO_EXCEPTIONS, null, this.scope, FlowInfo.DEAD_END), UnconditionalFlowInfo.fakeInitializedFlowInfo(this.scope.outerMostMethodScope().analysisIndex, this.scope.referenceType().maxFieldCount)) == FlowInfo.DEAD_END; } catch (RuntimeException e) { this.scope.problemReporter().lambdaShapeComputationError(this); return this.valueCompatible; } } public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, final FlowInfo flowInfo) {
private boolean doesNotCompleteNormally() { try { return this.body.analyseCode(this.scope, new ExceptionHandlingFlowContext(null, this, Binding.NO_EXCEPTIONS, null, this.scope, FlowInfo.DEAD_END), UnconditionalFlowInfo.fakeInitializedFlowInfo(this.scope.outerMostMethodScope().analysisIndex, this.scope.referenceType().maxFieldCount)) == FlowInfo.DEAD_END; } catch (RuntimeException e) { this.scope.problemReporter().lambdaShapeComputationError(this); return this.valueCompatible; } } public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, final FlowInfo flowInfo) {
private boolean doesNotCompleteNormally() { try { return this.body.analyseCode(this.scope, new ExceptionHandlingFlowContext(null, this, Binding.NO_EXCEPTIONS, null, this.scope, FlowInfo.DEAD_END), UnconditionalFlowInfo.fakeInitializedFlowInfo(this.scope.outerMostMethodScope().analysisIndex, this.scope.referenceType().maxFieldCount)) == FlowInfo.DEAD_END; } catch (RuntimeException e) { this.scope.problemReporter().lambdaShapeComputationError(this); return this.valueCompatible; } } public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, final FlowInfo flowInfo) {
public boolean checkAccess(BlockScope scope, ReferenceBinding receiverType) { MethodScope methodScope = scope.methodScope(); // this/super cannot be used in constructor call if (methodScope.isConstructorCall) { methodScope.problemReporter().fieldsOrThisBeforeConstructorInvocation(this); return false; } // static may not refer to this/super if (methodScope.isStatic) { methodScope.problemReporter().errorThisSuperInStatic(this); return false; } else if (this.isUnqualifiedSuper()) { TypeDeclaration type = methodScope.referenceType(); if (type != null && TypeDeclaration.kind(type.modifiers) == TypeDeclaration.INTERFACE_DECL) { methodScope.problemReporter().errorNoSuperInInterface(this); return false; } } if (receiverType != null) scope.tagAsAccessingEnclosingInstanceStateOf(receiverType, false /* type variable access */); return true; }