JvmDeclarationOrigin used in newClassBuilder()
This commit is contained in:
@@ -16,9 +16,7 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.org.objectweb.asm.ClassWriter;
|
||||
import org.jetbrains.org.objectweb.asm.util.TraceClassVisitor;
|
||||
|
||||
@@ -37,7 +35,7 @@ public class ClassBuilderFactories {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ClassBuilder newClassBuilder(PsiElement forElement, DeclarationDescriptor forDescriptor) {
|
||||
public ClassBuilder newClassBuilder(@NotNull JvmDeclarationOrigin origin) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
|
||||
@@ -62,7 +60,7 @@ public class ClassBuilderFactories {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ClassBuilder newClassBuilder(PsiElement forElement, DeclarationDescriptor forDescriptor) {
|
||||
public ClassBuilder newClassBuilder(@NotNull JvmDeclarationOrigin origin) {
|
||||
return new TraceBuilder(new BinaryClassWriter());
|
||||
}
|
||||
|
||||
@@ -92,7 +90,7 @@ public class ClassBuilderFactories {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ClassBuilder newClassBuilder(PsiElement forElement, DeclarationDescriptor forDescriptor) {
|
||||
public ClassBuilder newClassBuilder(@NotNull JvmDeclarationOrigin origin) {
|
||||
return new AbstractClassBuilder.Concrete(new BinaryClassWriter());
|
||||
}
|
||||
|
||||
|
||||
@@ -16,17 +16,14 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
|
||||
public interface ClassBuilderFactory {
|
||||
@NotNull
|
||||
ClassBuilderMode getClassBuilderMode();
|
||||
|
||||
@NotNull
|
||||
ClassBuilder newClassBuilder(@Nullable PsiElement forElement, @Nullable DeclarationDescriptor forDescriptor);
|
||||
ClassBuilder newClassBuilder(@NotNull JvmDeclarationOrigin origin);
|
||||
|
||||
String asText(ClassBuilder builder);
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ public class ClassFileFactory implements OutputFileCollection {
|
||||
String outputFilePath = asmType.getInternalName() + ".class";
|
||||
List<File> ioSourceFiles = toIoFilesIgnoringNonPhysical(sourceFiles);
|
||||
state.getProgress().reportOutput(ioSourceFiles, new File(outputFilePath));
|
||||
ClassBuilder answer = builderFactory.newClassBuilder(origin.getElement(), origin.getDescriptor());
|
||||
ClassBuilder answer = builderFactory.newClassBuilder(origin);
|
||||
generators.put(outputFilePath, new ClassBuilderAndSourceFileList(answer, ioSourceFiles));
|
||||
return answer;
|
||||
}
|
||||
|
||||
+2
-2
@@ -36,8 +36,8 @@ public abstract class SignatureCollectingClassBuilderFactory(
|
||||
origins: Collection<JvmDeclarationOrigin>
|
||||
)
|
||||
|
||||
override fun newClassBuilder(forElement: PsiElement?, forDescriptor: DeclarationDescriptor?): SignatureCollectingClassBuilder {
|
||||
return SignatureCollectingClassBuilder(JvmDeclarationOrigin(JvmDeclarationOriginKind.OTHER, forElement, forDescriptor), delegate.newClassBuilder(forElement, forDescriptor))
|
||||
override fun newClassBuilder(origin: JvmDeclarationOrigin): SignatureCollectingClassBuilder {
|
||||
return SignatureCollectingClassBuilder(origin, delegate.newClassBuilder(origin))
|
||||
}
|
||||
|
||||
public override fun asBytes(builder: ClassBuilder?): ByteArray? {
|
||||
|
||||
+2
-3
@@ -16,14 +16,13 @@
|
||||
|
||||
package org.jetbrains.jet.asJava;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.stubs.StubElement;
|
||||
import com.intellij.util.containers.Stack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.codegen.ClassBuilder;
|
||||
import org.jetbrains.jet.codegen.ClassBuilderFactory;
|
||||
import org.jetbrains.jet.codegen.ClassBuilderMode;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.codegen.JvmDeclarationOrigin;
|
||||
|
||||
/*package*/ class KotlinLightClassBuilderFactory implements ClassBuilderFactory {
|
||||
private final Stack<StubElement> stubStack;
|
||||
@@ -40,7 +39,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ClassBuilder newClassBuilder(PsiElement forElement, DeclarationDescriptor forDescriptor) {
|
||||
public ClassBuilder newClassBuilder(@NotNull JvmDeclarationOrigin origin) {
|
||||
return new StubClassBuilder(stubStack);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user