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