public static SemanticModel createFor(CompilationUnitTree tree, SquidClassLoader classLoader) { ParametrizedTypeCache parametrizedTypeCache = new ParametrizedTypeCache(); BytecodeCompleter bytecodeCompleter = new BytecodeCompleter(classLoader, parametrizedTypeCache); Symbols symbols = new Symbols(bytecodeCompleter); SemanticModel semanticModel = new SemanticModel(bytecodeCompleter); try { Resolve resolve = new Resolve(symbols, bytecodeCompleter, parametrizedTypeCache); TypeAndReferenceSolver typeAndReferenceSolver = new TypeAndReferenceSolver(semanticModel, symbols, resolve, parametrizedTypeCache); new FirstPass(semanticModel, symbols, resolve, parametrizedTypeCache, typeAndReferenceSolver).visitCompilationUnit(tree); typeAndReferenceSolver.visitCompilationUnit(tree); new LabelsVisitor(semanticModel).visitCompilationUnit(tree); } finally { handleMissingTypes(tree); } return semanticModel; }
public static SemanticModel createFor(CompilationUnitTree tree, SquidClassLoader classLoader) { ParametrizedTypeCache parametrizedTypeCache = new ParametrizedTypeCache(); BytecodeCompleter bytecodeCompleter = new BytecodeCompleter(classLoader, parametrizedTypeCache); Symbols symbols = new Symbols(bytecodeCompleter); SemanticModel semanticModel = new SemanticModel(bytecodeCompleter); try { Resolve resolve = new Resolve(symbols, bytecodeCompleter, parametrizedTypeCache); TypeAndReferenceSolver typeAndReferenceSolver = new TypeAndReferenceSolver(semanticModel, symbols, resolve, parametrizedTypeCache); new FirstPass(semanticModel, symbols, resolve, parametrizedTypeCache, typeAndReferenceSolver).visitCompilationUnit(tree); typeAndReferenceSolver.visitCompilationUnit(tree); new LabelsVisitor(semanticModel).visitCompilationUnit(tree); } finally { handleMissingTypes(tree); } return semanticModel; }
public static SemanticModel createFor(CompilationUnitTree tree, List<File> projectClasspath) { ParametrizedTypeCache parametrizedTypeCache = new ParametrizedTypeCache(); BytecodeCompleter bytecodeCompleter = new BytecodeCompleter(projectClasspath, parametrizedTypeCache); Symbols symbols = new Symbols(bytecodeCompleter); SemanticModel semanticModel = new SemanticModel(); semanticModel.bytecodeCompleter = bytecodeCompleter; try { Resolve resolve = new Resolve(symbols, bytecodeCompleter, parametrizedTypeCache); TypeAndReferenceSolver typeAndReferenceSolver = new TypeAndReferenceSolver(semanticModel, symbols, resolve, parametrizedTypeCache); new FirstPass(semanticModel, symbols, resolve, parametrizedTypeCache, typeAndReferenceSolver).visitCompilationUnit(tree); typeAndReferenceSolver.visitCompilationUnit(tree); new LabelsVisitor(semanticModel).visitCompilationUnit(tree); } finally { handleMissingTypes(tree); } return semanticModel; }
public static SemanticModel createFor(CompilationUnitTree tree, List<File> projectClasspath) { ParametrizedTypeCache parametrizedTypeCache = new ParametrizedTypeCache(); BytecodeCompleter bytecodeCompleter = new BytecodeCompleter(projectClasspath, parametrizedTypeCache); Symbols symbols = new Symbols(bytecodeCompleter); SemanticModel semanticModel = new SemanticModel(); semanticModel.bytecodeCompleter = bytecodeCompleter; semanticModel.createParentLink((JavaTree) tree); try { Resolve resolve = new Resolve(symbols, bytecodeCompleter, parametrizedTypeCache); TypeAndReferenceSolver typeAndReferenceSolver = new TypeAndReferenceSolver(semanticModel, symbols, resolve, parametrizedTypeCache); new FirstPass(semanticModel, symbols, resolve, parametrizedTypeCache, typeAndReferenceSolver).visitCompilationUnit(tree); typeAndReferenceSolver.visitCompilationUnit(tree); new LabelsVisitor(semanticModel).visitCompilationUnit(tree); } finally { handleMissingTypes(tree); } return semanticModel; }