List of usage examples for org.eclipse.jdt.internal.compiler.lookup LookupEnvironment methodVerifier
public MethodVerifier methodVerifier()
From source file:com.codenvy.ide.ext.java.server.internal.codeassist.SelectionEngine.java
License:Open Source License
protected MethodBinding findOverriddenMethodInType(ReferenceBinding overriddenType, MethodBinding overriding) throws JavaModelException { if (overriddenType == null) return null; MethodBinding[] overriddenMethods = overriddenType.availableMethods(); LookupEnvironment lookupEnv = this.lookupEnvironment; if (lookupEnv != null && overriddenMethods != null) { for (int i = 0; i < overriddenMethods.length; i++) { if (lookupEnv.methodVerifier().isMethodSubsignature(overriding, overriddenMethods[i])) { return overriddenMethods[i]; }/*from w w w. ja v a 2s . c o m*/ } } return null; }
From source file:com.redhat.ceylon.eclipse.core.model.loader.JDTMethod.java
License:Open Source License
public JDTMethod(MethodBinding method, LookupEnvironment lookupEnvironment) { this.method = method; this.lookupEnvironment = lookupEnvironment; this.methodVerifier = lookupEnvironment.methodVerifier(); }
From source file:org.codehaus.jdt.groovy.internal.compiler.ast.JDTClassNode.java
License:Open Source License
private void initializeMembers() { if (jdtBinding instanceof SourceTypeBinding) { SourceTypeBinding sourceType = (SourceTypeBinding) jdtBinding; if (sourceType.scope != null) { TypeDeclaration typeDecl = sourceType.scope.referenceContext; if (typeDecl instanceof GroovyTypeDeclaration) { groovyDecl = typeDecl;/* ww w .jav a 2 s. c o m*/ } } } MethodBinding[] bindings = null; if (jdtBinding instanceof ParameterizedTypeBinding) { ReferenceBinding genericType = ((ParameterizedTypeBinding) jdtBinding).genericType(); bindings = genericType.methods(); } else { bindings = jdtBinding.methods(); } if (bindings != null) { for (int i = 0; i < bindings.length; i++) { if (bindings[i].isConstructor()) { ConstructorNode cNode = constructorBindingToConstructorNode(bindings[i]); addConstructor(cNode); } else { MethodNode mNode = methodBindingToMethodNode(bindings[i]); addMethod(mNode); } } } if (jdtBinding instanceof BinaryTypeBinding) { MethodBinding[] infraBindings = ((BinaryTypeBinding) jdtBinding).infraMethods(); for (int i = 0; i < infraBindings.length; i++) { if (infraBindings[i].isConstructor()) { ConstructorNode cNode = constructorBindingToConstructorNode(infraBindings[i]); addConstructor(cNode); } else { MethodNode mNode = methodBindingToMethodNode(infraBindings[i]); addMethod(mNode); } } } // Synthetic bindings are created for features like covariance, where the method implementing an interface method uses a // different return type (interface I { A foo(); } class C implements I { AA foo(); } - this needs a method 'A foo()' in C. if (jdtBinding instanceof SourceTypeBinding) { SourceTypeBinding jdtSourceTypeBinding = (SourceTypeBinding) jdtBinding; ClassScope classScope = jdtSourceTypeBinding.scope; // a null scope indicates it has already been 'cleaned up' so nothing to do (CUDeclaration.cleanUp()) if (classScope != null) { CompilationUnitScope cuScope = classScope.compilationUnitScope(); LookupEnvironment environment = classScope.environment(); MethodVerifier verifier = environment.methodVerifier(); cuScope.verifyMethods(verifier); } SyntheticMethodBinding[] syntheticMethodBindings = ((SourceTypeBinding) jdtBinding).syntheticMethods(); if (syntheticMethodBindings != null) { for (int i = 0; i < syntheticMethodBindings.length; i++) { if (syntheticMethodBindings[i].isConstructor()) { ConstructorNode cNode = constructorBindingToConstructorNode(bindings[i]); addConstructor(cNode); } else { MethodNode mNode = methodBindingToMethodNode(syntheticMethodBindings[i]); addMethod(mNode); } } } } FieldBinding[] fieldBindings = null; if (jdtBinding instanceof ParameterizedTypeBinding) { fieldBindings = ((ParameterizedTypeBinding) jdtBinding).genericType().fields(); } else { fieldBindings = jdtBinding.fields(); } if (fieldBindings != null) { for (int i = 0; i < fieldBindings.length; i++) { FieldNode fNode = fieldBindingToFieldNode(fieldBindings[i], groovyDecl); addField(fNode); } } }
From source file:org.nabucco.framework.mda.model.java.JavaModelLoader.java
License:Open Source License
/** * Process a compilation unit already parsed and build. * /*from ww w .jav a 2 s .c om*/ * @param environment * the lookup environment * @param parser * the parser * @param unit * the compilation unit */ private void process(LookupEnvironment environment, Parser parser, CompilationUnitDeclaration unit) { environment.unitBeingCompleted = unit; parser.getMethodBodies(unit); // fault in fields & methods if (unit.scope != null) { unit.scope.faultInTypes(); } // verify inherited methods if (unit.scope != null) { unit.scope.verifyMethods(environment.methodVerifier()); } // type checking unit.resolve(); // flow analysis unit.analyseCode(); // code generation unit.generateCode(); if (JavaModelSupport.createCompilerOptions().produceReferenceInfo && unit.scope != null) { unit.scope.storeDependencyInfo(); } unit.finalizeProblems(); environment.unitBeingCompleted = null; unit.ignoreFurtherInvestigation = false; unit.cleanUp(); }