integration into codegen system
This commit is contained in:
committed by
Alexander Udalov
parent
1ecca9f40b
commit
feb0918d99
@@ -138,6 +138,8 @@ public class PropertyCodegen {
|
|||||||
AnnotationCodegen annotationCodegen = AnnotationCodegen.forAnnotationDefaultValue(visitor, typeMapper);
|
AnnotationCodegen annotationCodegen = AnnotationCodegen.forAnnotationDefaultValue(visitor, typeMapper);
|
||||||
annotationCodegen.generateAnnotationDefaultValue(constant, descriptor.getType());
|
annotationCodegen.generateAnnotationDefaultValue(constant, descriptor.getType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
visitor.visitEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean generateBackingField(@NotNull JetNamedDeclaration p, @NotNull PropertyDescriptor descriptor) {
|
private boolean generateBackingField(@NotNull JetNamedDeclaration p, @NotNull PropertyDescriptor descriptor) {
|
||||||
|
|||||||
+4
@@ -41,6 +41,10 @@ public abstract class SignatureCollectingClassBuilderFactory(
|
|||||||
return delegate.asBytes((builder as SignatureCollectingClassBuilder)._delegate)
|
return delegate.asBytes((builder as SignatureCollectingClassBuilder)._delegate)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override fun asText(builder: ClassBuilder?): String? {
|
||||||
|
return delegate.asText((builder as SignatureCollectingClassBuilder)._delegate)
|
||||||
|
}
|
||||||
|
|
||||||
private inner class SignatureCollectingClassBuilder(
|
private inner class SignatureCollectingClassBuilder(
|
||||||
private val classCreatedFor: JvmDeclarationOrigin,
|
private val classCreatedFor: JvmDeclarationOrigin,
|
||||||
internal val _delegate: ClassBuilder
|
internal val _delegate: ClassBuilder
|
||||||
|
|||||||
@@ -190,6 +190,7 @@ public class AnonymousObjectTransformer {
|
|||||||
|
|
||||||
InlineResult result = inliner.doInline(resultVisitor, new LocalVarRemapper(parameters, 0), false, LabelOwner.NOT_APPLICABLE);
|
InlineResult result = inliner.doInline(resultVisitor, new LocalVarRemapper(parameters, 0), false, LabelOwner.NOT_APPLICABLE);
|
||||||
resultVisitor.visitMaxs(-1, -1);
|
resultVisitor.visitMaxs(-1, -1);
|
||||||
|
resultVisitor.visitEnd();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -276,6 +277,7 @@ public class AnonymousObjectTransformer {
|
|||||||
InlineResult result = inliner.doInline(capturedFieldInitializer, new LocalVarRemapper(constructorParameters, 0), false,
|
InlineResult result = inliner.doInline(capturedFieldInitializer, new LocalVarRemapper(constructorParameters, 0), false,
|
||||||
LabelOwner.NOT_APPLICABLE);
|
LabelOwner.NOT_APPLICABLE);
|
||||||
constructorVisitor.visitMaxs(-1, -1);
|
constructorVisitor.visitMaxs(-1, -1);
|
||||||
|
constructorVisitor.visitEnd();
|
||||||
|
|
||||||
AsmUtil.genClosureFields(capturedFieldsToGenerate, classBuilder);
|
AsmUtil.genClosureFields(capturedFieldsToGenerate, classBuilder);
|
||||||
//TODO for inline method make public class
|
//TODO for inline method make public class
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package org.jetbrains.jet.codegen.inline;
|
package org.jetbrains.jet.codegen.inline;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.org.objectweb.asm.AnnotationVisitor;
|
||||||
import org.jetbrains.org.objectweb.asm.Label;
|
import org.jetbrains.org.objectweb.asm.Label;
|
||||||
import org.jetbrains.org.objectweb.asm.MethodVisitor;
|
import org.jetbrains.org.objectweb.asm.MethodVisitor;
|
||||||
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter;
|
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter;
|
||||||
@@ -76,4 +77,30 @@ public class RemapVisitor extends InliningInstructionAdapter {
|
|||||||
super.visitFieldInsn(opcode, owner, name, desc);
|
super.visitFieldInsn(opcode, owner, name, desc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AnnotationVisitor visitAnnotationDefault() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void visitMaxs(int maxStack, int maxLocals) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void visitEnd() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AnnotationVisitor visitParameterAnnotation(int parameter, String desc, boolean visible) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import org.jetbrains.jet.codegen.*;
|
|||||||
import org.jetbrains.jet.codegen.binding.CodegenBinding;
|
import org.jetbrains.jet.codegen.binding.CodegenBinding;
|
||||||
import org.jetbrains.jet.codegen.inline.InlineCodegenUtil;
|
import org.jetbrains.jet.codegen.inline.InlineCodegenUtil;
|
||||||
import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods;
|
import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods;
|
||||||
|
import org.jetbrains.jet.codegen.optimization.OptimizationClassBuilderFactory;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
||||||
import org.jetbrains.jet.lang.diagnostics.DiagnosticHolder;
|
import org.jetbrains.jet.lang.diagnostics.DiagnosticHolder;
|
||||||
@@ -152,7 +153,7 @@ public class GenerationState {
|
|||||||
|
|
||||||
this.intrinsics = new IntrinsicMethods();
|
this.intrinsics = new IntrinsicMethods();
|
||||||
this.classFileFactory = new ClassFileFactory(this, new BuilderFactoryForDuplicateSignatureDiagnostics(
|
this.classFileFactory = new ClassFileFactory(this, new BuilderFactoryForDuplicateSignatureDiagnostics(
|
||||||
builderFactory, this.bindingContext, diagnostics));
|
new OptimizationClassBuilderFactory(builderFactory), this.bindingContext, diagnostics));
|
||||||
|
|
||||||
this.generateNotNullAssertions = generateNotNullAssertions;
|
this.generateNotNullAssertions = generateNotNullAssertions;
|
||||||
this.generateNotNullParamAssertions = generateNotNullParamAssertions;
|
this.generateNotNullParamAssertions = generateNotNullParamAssertions;
|
||||||
|
|||||||
Reference in New Issue
Block a user