@Test
public void analyze21() throws Exception {

  final JavaAnalyzer analyzer = getAnalyzer();
  final String cp = getClasspath();
  List<File> files = new ArrayList<>();
  final File file =
      new File(
          project.getProjectRootPath(), "./src/main/java/meghanada/analyze/JavaAnalyzer.java");
  assertTrue(file.exists());
  files.add(file);
  final String tmp = System.getProperty("java.io.tmpdir");
  CompileResult cr =
      timeIt(
          () -> {
            final CompileResult compileResult = analyzer.analyzeAndCompile(files, cp, tmp);
            compileResult.getSources().values().forEach(Source::dump);
            return compileResult;
          });
  Source source = cr.getSources().get(file.getCanonicalFile());
  {
    Optional<TypeScope> scope = source.getTypeScope(355);
    assertTrue(scope.isPresent());
    TypeScope ts = scope.get();
    assertEquals("meghanada.analyze.JavaAnalyzer$AnalyzedEvent", ts.getFQCN());
  }
  {
    Optional<TypeScope> scope = source.getTypeScope(340);
    assertTrue(scope.isPresent());
    TypeScope ts = scope.get();
    assertEquals("meghanada.analyze.JavaAnalyzer$JavaSourceFromString", ts.getFQCN());
  }
}