generic signatures for properties #KT2677 fixed
This commit is contained in:
@@ -24,6 +24,7 @@ import org.jetbrains.asm4.MethodVisitor;
|
||||
import org.jetbrains.asm4.Type;
|
||||
import org.jetbrains.asm4.commons.InstructionAdapter;
|
||||
import org.jetbrains.jet.codegen.context.CodegenContext;
|
||||
import org.jetbrains.jet.codegen.signature.JvmMethodSignature;
|
||||
import org.jetbrains.jet.codegen.signature.JvmPropertyAccessorSignature;
|
||||
import org.jetbrains.jet.codegen.signature.kotlin.JetMethodAnnotationWriter;
|
||||
import org.jetbrains.jet.codegen.state.GenerationStateAware;
|
||||
@@ -192,12 +193,13 @@ public class PropertyCodegen extends GenerationStateAware {
|
||||
}
|
||||
|
||||
JvmPropertyAccessorSignature signature = typeMapper.mapGetterSignature(propertyDescriptor, kind);
|
||||
final String descriptor = signature.getJvmMethodSignature().getAsmMethod().getDescriptor();
|
||||
final JvmMethodSignature jvmMethodSignature = signature.getJvmMethodSignature();
|
||||
final String descriptor = jvmMethodSignature.getAsmMethod().getDescriptor();
|
||||
String getterName = getterName(propertyDescriptor.getName());
|
||||
MethodVisitor mv = v.newMethod(origin, flags, getterName, descriptor, null, null);
|
||||
MethodVisitor mv = v.newMethod(origin, flags, getterName, descriptor, jvmMethodSignature.getGenericsSignature(), null);
|
||||
PropertyGetterDescriptor getter = propertyDescriptor.getGetter();
|
||||
generateJetPropertyAnnotation(mv, signature.getPropertyTypeKotlinSignature(),
|
||||
signature.getJvmMethodSignature().getKotlinTypeParameter(), propertyDescriptor,
|
||||
jvmMethodSignature.getKotlinTypeParameter(), propertyDescriptor,
|
||||
getter == null
|
||||
? propertyDescriptor.getVisibility()
|
||||
: getter.getVisibility());
|
||||
@@ -298,12 +300,13 @@ public class PropertyCodegen extends GenerationStateAware {
|
||||
|
||||
JvmPropertyAccessorSignature signature = typeMapper.mapSetterSignature(propertyDescriptor, kind);
|
||||
assert true;
|
||||
final String descriptor = signature.getJvmMethodSignature().getAsmMethod().getDescriptor();
|
||||
MethodVisitor mv = v.newMethod(origin, flags, setterName(propertyDescriptor.getName()), descriptor, null, null);
|
||||
final JvmMethodSignature jvmMethodSignature = signature.getJvmMethodSignature();
|
||||
final String descriptor = jvmMethodSignature.getAsmMethod().getDescriptor();
|
||||
MethodVisitor mv = v.newMethod(origin, flags, setterName(propertyDescriptor.getName()), descriptor, jvmMethodSignature.getGenericsSignature(), null);
|
||||
PropertySetterDescriptor setter = propertyDescriptor.getSetter();
|
||||
assert setter != null;
|
||||
generateJetPropertyAnnotation(mv, signature.getPropertyTypeKotlinSignature(),
|
||||
signature.getJvmMethodSignature().getKotlinTypeParameter(), propertyDescriptor,
|
||||
jvmMethodSignature.getKotlinTypeParameter(), propertyDescriptor,
|
||||
setter.getVisibility());
|
||||
|
||||
assert !setter.hasBody();
|
||||
|
||||
Reference in New Issue
Block a user