From 16917dea4f36a1f23238dbe7cc4bf66e294b4d4f Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Fri, 2 Mar 2012 23:18:50 +0400 Subject: [PATCH] fix prop modality reading from class files --- .../jetbrains/jet/codegen/PropertyCodegen.java | 8 ++++++++ .../resolve/java/JavaDescriptorResolver.java | 17 ++++++++++++++--- .../jet/lang/resolve/java/PsiFieldWrapper.java | 5 +++++ .../jet/lang/resolve/java/PsiMemberWrapper.java | 2 ++ .../testData/readJavaBinaryClass/FieldAsVar.txt | 2 +- .../readJavaBinaryClass/FieldOfArrayType.txt | 2 +- .../readJavaBinaryClass/FinalFieldAsVal.txt | 2 +- .../testData/readJavaBinaryClass/TwoFields.txt | 4 ++-- .../notNull/NotNullField.txt | 2 +- .../classObject/ClassObjectDeclaresVal.txt | 2 +- .../classObject/ClassObjectDeclaresVar.txt | 2 +- .../ConstructorCollectionParameter.txt | 2 +- .../readKotlinBinaryClass/prop/ClassVal.txt | 2 +- .../prop/ClassValAbstract.txt | 2 +- .../readKotlinBinaryClass/prop/ClassVar.txt | 2 +- .../prop/CollectionSize.txt | 2 +- .../readKotlinBinaryClass/prop/ExtValClass.txt | 2 +- .../prop/ExtValInClass.txt | 2 +- .../readKotlinBinaryClass/prop/ExtValInt.txt | 2 +- .../prop/ExtValIntCharSequence.txt | 2 +- .../prop/ExtValIntCharSequenceQ.txt | 2 +- .../prop/ExtValIntListQOfIntInClass.txt | 2 +- .../prop/ExtValIntTInClass.txt | 2 +- .../prop/ExtValIntTQInClass.txt | 2 +- .../prop/ExtValTIntInClass.txt | 2 +- .../readKotlinBinaryClass/prop/ExtVarClass.txt | 2 +- .../prop/ExtVarInClass.txt | 2 +- .../readKotlinBinaryClass/prop/ExtVarInt.txt | 2 +- .../prop/ExtVarIntTInClass.txt | 2 +- .../prop/ExtVarIntTQInClass.txt | 2 +- .../prop/ExtVarMapPQInt.txt | 2 +- .../prop/ExtVarTIntInClass.txt | 2 +- .../prop/ExtVarTQIntInClass.txt | 2 +- .../readKotlinBinaryClass/prop/ExtVarl.txt | 4 ++-- .../readKotlinBinaryClass/prop/NsVal.txt | 2 +- .../readKotlinBinaryClass/prop/NsVar.txt | 2 +- .../jet/compiler/NamespaceComparator.java | 3 +++ 37 files changed, 66 insertions(+), 37 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java index 6848156a197..a1d805b6154 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java @@ -160,6 +160,10 @@ public class PropertyCodegen { if(isTrait && !(kind instanceof OwnerKind.DelegateKind)) flags |= Opcodes.ACC_ABSTRACT; + if (propertyDescriptor.getModality() == Modality.FINAL) { + flags |= Opcodes.ACC_FINAL; + } + JvmPropertyAccessorSignature signature = state.getTypeMapper().mapGetterSignature(propertyDescriptor, kind); final String descriptor = signature.getJvmMethodSignature().getAsmMethod().getDescriptor(); String getterName = getterName(propertyDescriptor.getName()); @@ -231,6 +235,10 @@ public class PropertyCodegen { if(isTrait && !(kind instanceof OwnerKind.DelegateKind)) flags |= Opcodes.ACC_ABSTRACT; + if (propertyDescriptor.getModality() == Modality.FINAL) { + flags |= Opcodes.ACC_FINAL; + } + JvmPropertyAccessorSignature signature = state.getTypeMapper().mapSetterSignature(propertyDescriptor, kind); final String descriptor = signature.getJvmMethodSignature().getAsmMethod().getDescriptor(); MethodVisitor mv = v.newMethod(origin, flags, setterName(propertyDescriptor.getName()), descriptor, null, null); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index b36a7cd7909..f4ec0035ae3 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -1158,7 +1158,9 @@ public class JavaDescriptorResolver { } boolean isFinal; - if (members.setter == null && members.getter == null) { + if (!scopeData.kotlin) { + isFinal = true; + } else if (members.setter == null && members.getter == null) { isFinal = false; } else if (members.getter != null) { isFinal = members.getter.getMember().isFinal(); @@ -1185,11 +1187,20 @@ public class JavaDescriptorResolver { } else { isVar = members.setter != null; } - + + Modality modality; + if (isFinal) { + modality = Modality.FINAL; + } + else { + modality = anyMember.getMember().isAbstract() ? Modality.ABSTRACT : Modality.OPEN; + } + + PropertyDescriptor propertyDescriptor = new PropertyDescriptor( owner, Collections.emptyList(), - isFinal && !staticMembers ? Modality.FINAL : Modality.OPEN, // TODO: abstract + modality, resolveVisibilityFromPsiModifiers(anyMember.getMember().psiMember), isVar, false, diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/PsiFieldWrapper.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/PsiFieldWrapper.java index 29eac282ea1..1f080ec9cea 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/PsiFieldWrapper.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/PsiFieldWrapper.java @@ -36,4 +36,9 @@ public class PsiFieldWrapper extends PsiMemberWrapper { public PsiType getType() { return getPsiField().getType(); } + + @Override + public boolean isAbstract() { + return false; + } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/PsiMemberWrapper.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/PsiMemberWrapper.java index 16337969c30..52308ab8fe7 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/PsiMemberWrapper.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/PsiMemberWrapper.java @@ -49,6 +49,8 @@ public abstract class PsiMemberWrapper { return psiMember.hasModifierProperty(PsiModifier.FINAL); } + public abstract boolean isAbstract(); + public String getName() { return psiMember.getName(); } diff --git a/compiler/testData/readJavaBinaryClass/FieldAsVar.txt b/compiler/testData/readJavaBinaryClass/FieldAsVar.txt index ecd26be5bf8..6bfbf3d753d 100644 --- a/compiler/testData/readJavaBinaryClass/FieldAsVar.txt +++ b/compiler/testData/readJavaBinaryClass/FieldAsVar.txt @@ -2,5 +2,5 @@ namespace test final class test.FieldAsVar : jet.Any { final /*constructor*/ fun (): test.FieldAsVar - var f: jet.Int + final var f: jet.Int } diff --git a/compiler/testData/readJavaBinaryClass/FieldOfArrayType.txt b/compiler/testData/readJavaBinaryClass/FieldOfArrayType.txt index 244c73709b9..d14dbde1c83 100644 --- a/compiler/testData/readJavaBinaryClass/FieldOfArrayType.txt +++ b/compiler/testData/readJavaBinaryClass/FieldOfArrayType.txt @@ -2,5 +2,5 @@ namespace test open class test.FieldOfArrayType : jet.Any { final /*constructor*/ fun (): test.FieldOfArrayType - var files: jet.Array? + final var files: jet.Array? } diff --git a/compiler/testData/readJavaBinaryClass/FinalFieldAsVal.txt b/compiler/testData/readJavaBinaryClass/FinalFieldAsVal.txt index 48aa1f3177a..6439934be35 100644 --- a/compiler/testData/readJavaBinaryClass/FinalFieldAsVal.txt +++ b/compiler/testData/readJavaBinaryClass/FinalFieldAsVal.txt @@ -2,5 +2,5 @@ namespace test final class test.FinalFieldAsVal : jet.Any { final /*constructor*/ fun (): test.FinalFieldAsVal - val f: jet.Int + final val f: jet.Int } diff --git a/compiler/testData/readJavaBinaryClass/TwoFields.txt b/compiler/testData/readJavaBinaryClass/TwoFields.txt index 1327f449a1f..dc2e46f53dc 100644 --- a/compiler/testData/readJavaBinaryClass/TwoFields.txt +++ b/compiler/testData/readJavaBinaryClass/TwoFields.txt @@ -2,6 +2,6 @@ namespace test final class test.TwoFields : jet.Any { final /*constructor*/ fun (): test.TwoFields - var a: jet.Int - var b: jet.Short + final var a: jet.Int + final var b: jet.Short } diff --git a/compiler/testData/readJavaBinaryClass/notNull/NotNullField.txt b/compiler/testData/readJavaBinaryClass/notNull/NotNullField.txt index b8cd3fff1ef..8ca92c32112 100644 --- a/compiler/testData/readJavaBinaryClass/notNull/NotNullField.txt +++ b/compiler/testData/readJavaBinaryClass/notNull/NotNullField.txt @@ -2,5 +2,5 @@ namespace test open class test.NotNullField : jet.Any { final /*constructor*/ fun (): test.NotNullField - var hi: jet.String + final var hi: jet.String } diff --git a/compiler/testData/readKotlinBinaryClass/classObject/ClassObjectDeclaresVal.txt b/compiler/testData/readKotlinBinaryClass/classObject/ClassObjectDeclaresVal.txt index e0cb10d368a..7021e357fde 100644 --- a/compiler/testData/readKotlinBinaryClass/classObject/ClassObjectDeclaresVal.txt +++ b/compiler/testData/readKotlinBinaryClass/classObject/ClassObjectDeclaresVal.txt @@ -4,6 +4,6 @@ final class test.ClassObjectDeclaresProperty : jet.Any { final /*constructor*/ fun (): test.ClassObjectDeclaresProperty final object test.ClassObjectDeclaresProperty. : jet.Any { final /*constructor*/ fun (): test.ClassObjectDeclaresProperty. - val i: jet.Int + final val i: jet.Int } } diff --git a/compiler/testData/readKotlinBinaryClass/classObject/ClassObjectDeclaresVar.txt b/compiler/testData/readKotlinBinaryClass/classObject/ClassObjectDeclaresVar.txt index c04002b38d8..8c8fe0c66c5 100644 --- a/compiler/testData/readKotlinBinaryClass/classObject/ClassObjectDeclaresVar.txt +++ b/compiler/testData/readKotlinBinaryClass/classObject/ClassObjectDeclaresVar.txt @@ -4,6 +4,6 @@ final class test.ClassObjectDeclaresProperty : jet.Any { final /*constructor*/ fun (): test.ClassObjectDeclaresProperty final object test.ClassObjectDeclaresProperty. : jet.Any { final /*constructor*/ fun (): test.ClassObjectDeclaresProperty. - var s: jet.String + final var s: jet.String } } diff --git a/compiler/testData/readKotlinBinaryClass/constructor/ConstructorCollectionParameter.txt b/compiler/testData/readKotlinBinaryClass/constructor/ConstructorCollectionParameter.txt index e2bab636486..c00e40c8e57 100644 --- a/compiler/testData/readKotlinBinaryClass/constructor/ConstructorCollectionParameter.txt +++ b/compiler/testData/readKotlinBinaryClass/constructor/ConstructorCollectionParameter.txt @@ -2,5 +2,5 @@ namespace test final class test.TestingKotlinCollections : jet.Any { final /*constructor*/ fun (/*0*/ arguments: java.util.Collection): test.TestingKotlinCollections - val arguments: java.util.Collection + final val arguments: java.util.Collection } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ClassVal.txt b/compiler/testData/readKotlinBinaryClass/prop/ClassVal.txt index 6253a150999..e9c0e59b80b 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ClassVal.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ClassVal.txt @@ -2,5 +2,5 @@ namespace test final class test.ClassVal : jet.Any { final /*constructor*/ fun (): test.ClassVal - val aa: jet.Int + final val aa: jet.Int } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ClassValAbstract.txt b/compiler/testData/readKotlinBinaryClass/prop/ClassValAbstract.txt index 325b86be770..a7c3e6170ca 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ClassValAbstract.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ClassValAbstract.txt @@ -1,6 +1,6 @@ namespace test abstract class test.ClassValAbstract : jet.Any { + abstract val a: jet.Int final /*constructor*/ fun (): test.ClassValAbstract - val a: jet.Int } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ClassVar.txt b/compiler/testData/readKotlinBinaryClass/prop/ClassVar.txt index 5680f1edcea..a8e3f4bba08 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ClassVar.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ClassVar.txt @@ -2,5 +2,5 @@ namespace test final class test.ClassVar : jet.Any { final /*constructor*/ fun (): test.ClassVar - var aa: jet.Int + final var aa: jet.Int } diff --git a/compiler/testData/readKotlinBinaryClass/prop/CollectionSize.txt b/compiler/testData/readKotlinBinaryClass/prop/CollectionSize.txt index 6c611e4cf09..3ff66968f44 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/CollectionSize.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/CollectionSize.txt @@ -1,3 +1,3 @@ namespace test -val java.util.Collection.anotherSize: jet.Int +final val java.util.Collection.anotherSize: jet.Int diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtValClass.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtValClass.txt index 916e57aa7fd..69f221a31e6 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtValClass.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtValClass.txt @@ -1,3 +1,3 @@ namespace test -val /*0,r*/ P : jet.Any?.anotherJavaClass: java.lang.Class +final val /*0,r*/ P : jet.Any?.anotherJavaClass: java.lang.Class diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtValInClass.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtValInClass.txt index 4c39de69867..8f3e2507bc1 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtValInClass.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtValInClass.txt @@ -2,5 +2,5 @@ namespace test final class test.ExtPropInClass : jet.Any { final /*constructor*/ fun (): test.ExtPropInClass - val jet.Int.itIs: jet.Int + final val jet.Int.itIs: jet.Int } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtValInt.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtValInt.txt index 330bd10ff17..e27cb601762 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtValInt.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtValInt.txt @@ -1,3 +1,3 @@ namespace test -val jet.Int.itIs: jet.Int +final val jet.Int.itIs: jet.Int diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtValIntCharSequence.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtValIntCharSequence.txt index 8ab25095ad1..113ff8a4777 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtValIntCharSequence.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtValIntCharSequence.txt @@ -1,3 +1,3 @@ namespace test -val jet.Int.ggg: jet.CharSequence +final val jet.Int.ggg: jet.CharSequence diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtValIntCharSequenceQ.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtValIntCharSequenceQ.txt index d1ed8eb82bd..e4dac3ad2a4 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtValIntCharSequenceQ.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtValIntCharSequenceQ.txt @@ -1,3 +1,3 @@ namespace test -val jet.Int.ggg: jet.CharSequence? +final val jet.Int.ggg: jet.CharSequence? diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtValIntListQOfIntInClass.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtValIntListQOfIntInClass.txt index 1ec615ac9c7..3d0d304128b 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtValIntListQOfIntInClass.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtValIntListQOfIntInClass.txt @@ -2,5 +2,5 @@ namespace test final class test.ExtValInClass : jet.Any { final /*constructor*/ fun (): test.ExtValInClass - val jet.Int.asas: java.util.List? + final val jet.Int.asas: java.util.List? } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtValIntTInClass.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtValIntTInClass.txt index 851eda417c5..4eecb24bce0 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtValIntTInClass.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtValIntTInClass.txt @@ -2,5 +2,5 @@ namespace test final class test.ExtValInClass : jet.Any { final /*constructor*/ fun (): test.ExtValInClass - val jet.Int.asas: /*0,r*/ T : jet.Any? + final val jet.Int.asas: /*0,r*/ T : jet.Any? } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtValIntTQInClass.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtValIntTQInClass.txt index ddee10feee0..f513cf7de72 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtValIntTQInClass.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtValIntTQInClass.txt @@ -2,5 +2,5 @@ namespace test final class test.ExtValInClass : jet.Any { final /*constructor*/ fun (): test.ExtValInClass - val jet.Int.asas: /*0,r*/ P : jet.Any?? + final val jet.Int.asas: /*0,r*/ P : jet.Any?? } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtValTIntInClass.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtValTIntInClass.txt index 3acbe403520..2b64a49ffed 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtValTIntInClass.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtValTIntInClass.txt @@ -2,5 +2,5 @@ namespace test final class test.ExtValPIntInClass : jet.Any { final /*constructor*/ fun (): test.ExtValPIntInClass - val /*0,r*/ P : jet.Any?.asas: jet.Int + final val /*0,r*/ P : jet.Any?.asas: jet.Int } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtVarClass.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtVarClass.txt index 687d1983dd5..e37a3e8283b 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtVarClass.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtVarClass.txt @@ -1,3 +1,3 @@ namespace test -var /*0,r*/ P : jet.Any?.anotherJavaClass: java.lang.Class +final var /*0,r*/ P : jet.Any?.anotherJavaClass: java.lang.Class diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtVarInClass.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtVarInClass.txt index a04e425e951..0d7f875c338 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtVarInClass.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtVarInClass.txt @@ -2,5 +2,5 @@ namespace test final class test.ExtPropInClass : jet.Any { final /*constructor*/ fun (): test.ExtPropInClass - var jet.Int.itIs: jet.Int + final var jet.Int.itIs: jet.Int } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtVarInt.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtVarInt.txt index 6e33f17cb56..3d8542b07fe 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtVarInt.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtVarInt.txt @@ -1,3 +1,3 @@ namespace test -var jet.Int.ggg: jet.Int +final var jet.Int.ggg: jet.Int diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtVarIntTInClass.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtVarIntTInClass.txt index 36ae660f251..23d1ddf4bed 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtVarIntTInClass.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtVarIntTInClass.txt @@ -2,5 +2,5 @@ namespace test final class test.ExtValInClass : jet.Any { final /*constructor*/ fun (): test.ExtValInClass - var jet.Int.asas: /*0,r*/ P : jet.Any? + final var jet.Int.asas: /*0,r*/ P : jet.Any? } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtVarIntTQInClass.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtVarIntTQInClass.txt index e5054176d10..f1c0c561dd7 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtVarIntTQInClass.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtVarIntTQInClass.txt @@ -2,5 +2,5 @@ namespace test final class test.ExtValInClass : jet.Any { final /*constructor*/ fun (): test.ExtValInClass - var jet.Int.asas: /*0,r*/ P : jet.Any?? + final var jet.Int.asas: /*0,r*/ P : jet.Any?? } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtVarMapPQInt.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtVarMapPQInt.txt index d16a00ccc14..2cac6e43ed1 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtVarMapPQInt.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtVarMapPQInt.txt @@ -1,3 +1,3 @@ namespace test -var java.util.Map.asas: jet.Int +final var java.util.Map.asas: jet.Int diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtVarTIntInClass.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtVarTIntInClass.txt index 88d287059d8..affa20021a7 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtVarTIntInClass.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtVarTIntInClass.txt @@ -2,5 +2,5 @@ namespace test final class test.ExtValPIntInClass : jet.Any { final /*constructor*/ fun (): test.ExtValPIntInClass - var /*0,r*/ P : jet.Any?.asas: jet.Int + final var /*0,r*/ P : jet.Any?.asas: jet.Int } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtVarTQIntInClass.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtVarTQIntInClass.txt index 53f16265793..67f7d634791 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtVarTQIntInClass.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtVarTQIntInClass.txt @@ -2,5 +2,5 @@ namespace test final class test.ExtValPIntInClass : jet.Any { final /*constructor*/ fun (): test.ExtValPIntInClass - var /*0,r*/ P : jet.Any??.asas: jet.Int + final var /*0,r*/ P : jet.Any??.asas: jet.Int } diff --git a/compiler/testData/readKotlinBinaryClass/prop/ExtVarl.txt b/compiler/testData/readKotlinBinaryClass/prop/ExtVarl.txt index bf7fe7873ac..8db924bcf40 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/ExtVarl.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/ExtVarl.txt @@ -1,4 +1,4 @@ namespace test -val jet.String.junk: jet.Int -var jet.Int.junk: jet.Short +final val jet.String.junk: jet.Int +final var jet.Int.junk: jet.Short diff --git a/compiler/testData/readKotlinBinaryClass/prop/NsVal.txt b/compiler/testData/readKotlinBinaryClass/prop/NsVal.txt index db2ff414658..c9a7d2d6dde 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/NsVal.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/NsVal.txt @@ -1,3 +1,3 @@ namespace test -val nsVal: jet.Int +final val nsVal: jet.Int diff --git a/compiler/testData/readKotlinBinaryClass/prop/NsVar.txt b/compiler/testData/readKotlinBinaryClass/prop/NsVar.txt index 5191d32f05f..efb570b510d 100644 --- a/compiler/testData/readKotlinBinaryClass/prop/NsVar.txt +++ b/compiler/testData/readKotlinBinaryClass/prop/NsVar.txt @@ -1,3 +1,3 @@ namespace test -var nsVal: jet.Int +final var nsVal: jet.Int diff --git a/compiler/tests/org/jetbrains/jet/compiler/NamespaceComparator.java b/compiler/tests/org/jetbrains/jet/compiler/NamespaceComparator.java index 00e16c9424c..ac7c374656d 100644 --- a/compiler/tests/org/jetbrains/jet/compiler/NamespaceComparator.java +++ b/compiler/tests/org/jetbrains/jet/compiler/NamespaceComparator.java @@ -258,6 +258,9 @@ class NamespaceComparator { } public void serialize(PropertyDescriptor prop) { + serialize(prop.getModality()); + sb.append(" "); + if (!prop.getAnnotations().isEmpty()) { new Serializer(sb).serializeSeparated(prop.getAnnotations(), " "); sb.append(" ");