@@ -55,11 +55,12 @@ public boolean sourcesRequired() {
5555 return false ;
5656 }
5757
58- private static VirtualFile asVirtualFileOrNull (SourceFile sourceFile ) {
58+ private static VirtualFile asVirtualFile (SourceFile sourceFile , DelegatingReporter reporter ,
59+ Map <String , VirtualFile > placeholders ) {
5960 if (sourceFile .file () instanceof AbstractZincFile ) {
6061 return ((AbstractZincFile ) sourceFile .file ()).underlying ();
6162 } else {
62- return null ;
63+ return fallbackVirtualFile ( reporter , sourceFile , placeholders ) ;
6364 }
6465 }
6566
@@ -78,7 +79,10 @@ private static VirtualFile fallbackVirtualFile(DelegatingReporter reporter,
7879 Map <String , VirtualFile > placeholders ) {
7980 return placeholders .computeIfAbsent (sourceFile .path (), path -> {
8081 reportMissingFile (reporter , sourceFile );
81- return new PlaceholderVirtualFile (sourceFile );
82+ if (sourceFile .jfile ().isPresent ())
83+ return new BasicPathBasedFile (sourceFile );
84+ else
85+ return new PlaceholderVirtualFile (sourceFile );
8286 });
8387 }
8488
@@ -97,26 +101,14 @@ synchronized public void run(VirtualFile[] sources, AnalysisCallback callback, L
97101 sourcesSet .put (abstractFile );
98102 }
99103
100- DelegatingReporter reporter = new DelegatingReporter (delegate , sourceFile -> {
101- VirtualFile vf = asVirtualFileOrNull (sourceFile );
102- if (vf != null ) {
103- return vf .id ();
104- } else {
105- return sourceFile .path (); // same as in Zinc for 2.13
106- }
107- });
108-
109104 HashMap <String , VirtualFile > placeholders = new HashMap <>();
110105
106+ DelegatingReporter reporter = new DelegatingReporter (delegate , (self , sourceFile ) ->
107+ asVirtualFile (sourceFile , self , placeholders ).id ());
108+
111109 IncrementalCallback incCallback = new IncrementalCallback (callback , sourceFile -> {
112110 if (sourceFile instanceof SourceFile ) {
113- SourceFile sf = (SourceFile ) sourceFile ;
114- VirtualFile vf = asVirtualFileOrNull (sf );
115- if (vf != null ) {
116- return vf ;
117- } else {
118- return fallbackVirtualFile (reporter , sourceFile , placeholders );
119- }
111+ return asVirtualFile (((SourceFile ) sourceFile ), reporter , placeholders );
120112 } else {
121113 return fallbackVirtualFile (reporter , sourceFile , placeholders );
122114 }
0 commit comments