1 package com.github.javaparser.symbolsolver; 2 3 import com.github.javaparser.ast.CompilationUnit; 4 import com.github.javaparser.ast.expr.MethodCallExpr; 5 import com.github.javaparser.symbolsolver.javaparser.Navigator; 6 import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade; 7 import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest; 8 import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver; 9 import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver; 10 import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver; 11 import com.github.javaparser.symbolsolver.utils.LeanParserConfiguration; 12 import org.junit.jupiter.api.Test; 13 14 import java.io.IOException; 15 import java.nio.file.Path; 16 17 import static com.github.javaparser.StaticJavaParser.parse; 18 import static org.junit.jupiter.api.Assertions.assertNotNull; 19 20 21 class Issue185Test extends AbstractResolutionTest { 22 23 @Test testIssue()24 void testIssue() throws IOException { 25 Path src = adaptPath("src/test/resources/recursion-issue"); 26 CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver(); 27 combinedTypeSolver.add(new JavaParserTypeSolver(src, new LeanParserConfiguration())); 28 combinedTypeSolver.add(new ReflectionTypeSolver()); 29 CompilationUnit agendaCu = parse(adaptPath("src/test/resources/recursion-issue/Usage.java")); 30 MethodCallExpr foo = Navigator.findMethodCall(agendaCu, "foo").get(); 31 assertNotNull(foo); 32 JavaParserFacade.get(combinedTypeSolver).getType(foo); 33 } 34 35 } 36