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