101101import com .sun .tools .javac .tree .JCTree .JCCompilationUnit ;
102102import com .sun .tools .javac .util .Context ;
103103import com .sun .tools .javac .util .DiagnosticSource ;
104+ import com .sun .tools .javac .util .Names ;
104105import com .sun .tools .javac .util .Options ;
105106
106107/**
@@ -573,6 +574,12 @@ public CompilationUnit toCompilationUnit(org.eclipse.jdt.internal.compiler.env.I
573574 return res ;
574575 }
575576
577+ private static Names names = new Names (new Context ()) {
578+ public void dispose () {
579+ // do nothing, keep content for re-use
580+ }
581+ };
582+
576583 private Map <org .eclipse .jdt .internal .compiler .env .ICompilationUnit , CompilationUnit > parse (org .eclipse .jdt .internal .compiler .env .ICompilationUnit [] sourceUnits , int apiLevel ,
577584 Map <String , String > compilerOptions , boolean resolveBindings , int flags , IJavaProject javaProject , WorkingCopyOwner workingCopyOwner ,
578585 int focalPoint , IProgressMonitor monitor ) {
@@ -581,6 +588,7 @@ private Map<org.eclipse.jdt.internal.compiler.env.ICompilationUnit, CompilationU
581588 }
582589 var compiler = ToolProvider .getSystemJavaCompiler ();
583590 Context context = new Context ();
591+ context .put (Names .namesKey , names );
584592 CachingJarsJavaFileManager .preRegister (context );
585593 CachingJDKPlatformArguments .preRegister (context );
586594 Map <org .eclipse .jdt .internal .compiler .env .ICompilationUnit , CompilationUnit > result = new HashMap <>(sourceUnits .length , 1.f );
0 commit comments