Passing virtual file instead of whole JetLightClass
This commit is contained in:
@@ -22,6 +22,7 @@ import com.intellij.openapi.progress.ProcessCanceledException;
|
|||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.openapi.util.Comparing;
|
import com.intellij.openapi.util.Comparing;
|
||||||
import com.intellij.openapi.util.Key;
|
import com.intellij.openapi.util.Key;
|
||||||
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import com.intellij.psi.*;
|
import com.intellij.psi.*;
|
||||||
import com.intellij.psi.impl.PsiClassImplUtil;
|
import com.intellij.psi.impl.PsiClassImplUtil;
|
||||||
import com.intellij.psi.impl.java.stubs.PsiClassStub;
|
import com.intellij.psi.impl.java.stubs.PsiClassStub;
|
||||||
@@ -210,7 +211,9 @@ public class JetLightClass extends AbstractLightClass implements JetJavaMirrorMa
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
GenerationState state = new GenerationState(project, builderFactory, context.getBindingContext(), Collections.singletonList(file));
|
GenerationState state = new GenerationState(project, builderFactory, context.getBindingContext(), Collections.singletonList(file));
|
||||||
GenerationStrategy strategy = new LightClassGenerationStrategy(this, stubStack, answer);
|
VirtualFile virtualFile = file.getVirtualFile();
|
||||||
|
assert virtualFile != null;
|
||||||
|
GenerationStrategy strategy = new LightClassGenerationStrategy(virtualFile, stubStack, answer);
|
||||||
|
|
||||||
strategy.compileCorrectFiles(state, CompilationErrorHandler.THROW_EXCEPTION);
|
strategy.compileCorrectFiles(state, CompilationErrorHandler.THROW_EXCEPTION);
|
||||||
state.getFactory().files();
|
state.getFactory().files();
|
||||||
|
|||||||
+5
-4
@@ -17,6 +17,7 @@
|
|||||||
package org.jetbrains.jet.asJava;
|
package org.jetbrains.jet.asJava;
|
||||||
|
|
||||||
import com.intellij.openapi.diagnostic.Logger;
|
import com.intellij.openapi.diagnostic.Logger;
|
||||||
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import com.intellij.psi.ClassFileViewProvider;
|
import com.intellij.psi.ClassFileViewProvider;
|
||||||
import com.intellij.psi.PsiManager;
|
import com.intellij.psi.PsiManager;
|
||||||
import com.intellij.psi.impl.PsiManagerImpl;
|
import com.intellij.psi.impl.PsiManagerImpl;
|
||||||
@@ -39,10 +40,10 @@ class LightClassGenerationStrategy extends GenerationStrategy {
|
|||||||
|
|
||||||
private final Stack<StubElement> stubStack;
|
private final Stack<StubElement> stubStack;
|
||||||
private final PsiJavaFileStubImpl answer;
|
private final PsiJavaFileStubImpl answer;
|
||||||
private final JetLightClass theClass;
|
private final VirtualFile virtualFile;
|
||||||
|
|
||||||
public LightClassGenerationStrategy(JetLightClass aClass, Stack<StubElement> stubStack, PsiJavaFileStubImpl answer) {
|
public LightClassGenerationStrategy(@NotNull VirtualFile virtualFile, Stack<StubElement> stubStack, PsiJavaFileStubImpl answer) {
|
||||||
this.theClass = aClass;
|
this.virtualFile = virtualFile;
|
||||||
this.stubStack = stubStack;
|
this.stubStack = stubStack;
|
||||||
this.answer = answer;
|
this.answer = answer;
|
||||||
}
|
}
|
||||||
@@ -59,7 +60,7 @@ class LightClassGenerationStrategy extends GenerationStrategy {
|
|||||||
|
|
||||||
answer.setPsiFactory(new ClsWrapperStubPsiFactory());
|
answer.setPsiFactory(new ClsWrapperStubPsiFactory());
|
||||||
final ClsFileImpl fakeFile =
|
final ClsFileImpl fakeFile =
|
||||||
new ClsFileImpl((PsiManagerImpl) manager, new ClassFileViewProvider(manager, theClass.getFile().getVirtualFile())) {
|
new ClsFileImpl((PsiManagerImpl) manager, new ClassFileViewProvider(manager, virtualFile)) {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public PsiClassHolderFileStub getStub() {
|
public PsiClassHolderFileStub getStub() {
|
||||||
|
|||||||
Reference in New Issue
Block a user