GenerationStrategy is now a strategy
This commit is contained in:
@@ -35,10 +35,7 @@ import com.intellij.psi.util.*;
|
||||
import com.intellij.util.containers.Stack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.codegen.ClassBuilder;
|
||||
import org.jetbrains.jet.codegen.ClassBuilderFactory;
|
||||
import org.jetbrains.jet.codegen.ClassBuilderMode;
|
||||
import org.jetbrains.jet.codegen.CompilationErrorHandler;
|
||||
import org.jetbrains.jet.codegen.*;
|
||||
import org.jetbrains.jet.codegen.binding.PsiCodegenPredictor;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.codegen.state.GenerationStrategy;
|
||||
@@ -213,9 +210,10 @@ public class JetLightClass extends AbstractLightClass implements JetJavaMirrorMa
|
||||
GenerationState state = new GenerationState(project, builderFactory, context.getBindingContext(), Collections.singletonList(file));
|
||||
VirtualFile virtualFile = file.getVirtualFile();
|
||||
assert virtualFile != null;
|
||||
GenerationStrategy strategy = new LightClassGenerationStrategy(virtualFile, stubStack, answer);
|
||||
|
||||
strategy.compileCorrectFiles(state, CompilationErrorHandler.THROW_EXCEPTION);
|
||||
GenerationStrategy strategy = new LightClassGenerationStrategy(virtualFile, stubStack, answer);
|
||||
KotlinCodegenFacade.compileCorrectFiles(state, strategy, CompilationErrorHandler.THROW_EXCEPTION);
|
||||
|
||||
state.getFactory().files();
|
||||
}
|
||||
catch (ProcessCanceledException e) {
|
||||
|
||||
+7
-6
@@ -30,12 +30,13 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.codegen.CompilationErrorHandler;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.codegen.state.GenerationStrategy;
|
||||
import org.jetbrains.jet.codegen.state.StandardGenerationStrategy;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
class LightClassGenerationStrategy extends GenerationStrategy {
|
||||
class LightClassGenerationStrategy implements GenerationStrategy {
|
||||
private static final Logger LOG = Logger.getInstance("#org.jetbrains.jet.asJava.LightClassGenerationStrategy");
|
||||
|
||||
private final Stack<StubElement> stubStack;
|
||||
@@ -50,10 +51,10 @@ class LightClassGenerationStrategy extends GenerationStrategy {
|
||||
|
||||
@Override
|
||||
public void generateNamespace(
|
||||
GenerationState state,
|
||||
FqName fqName,
|
||||
Collection<JetFile> namespaceFiles,
|
||||
CompilationErrorHandler errorHandler
|
||||
@NotNull GenerationState state,
|
||||
@NotNull FqName fqName,
|
||||
@NotNull Collection<JetFile> namespaceFiles,
|
||||
@NotNull CompilationErrorHandler errorHandler
|
||||
) {
|
||||
PsiManager manager = PsiManager.getInstance(state.getProject());
|
||||
stubStack.push(answer);
|
||||
@@ -71,7 +72,7 @@ class LightClassGenerationStrategy extends GenerationStrategy {
|
||||
fakeFile.setPhysical(false);
|
||||
answer.setPsi(fakeFile);
|
||||
|
||||
super.generateNamespace(state, fqName, namespaceFiles, errorHandler);
|
||||
StandardGenerationStrategy.INSTANCE.generateNamespace(state, fqName, namespaceFiles, errorHandler);
|
||||
final StubElement pop = stubStack.pop();
|
||||
if (pop != answer) {
|
||||
LOG.error("Unbalanced stack operations: " + pop);
|
||||
|
||||
Reference in New Issue
Block a user