diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/sam/SingleAbstractMethodUtils.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/sam/SingleAbstractMethodUtils.java index 28f4b601aab..281fa655c5e 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/sam/SingleAbstractMethodUtils.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/sam/SingleAbstractMethodUtils.java @@ -45,9 +45,7 @@ public class SingleAbstractMethodUtils { public static List getAbstractMembers(@NotNull JetType type) { List abstractMembers = Lists.newArrayList(); for (DeclarationDescriptor member : type.getMemberScope().getAllDescriptors()) { - if (member instanceof CallableMemberDescriptor && - ((CallableMemberDescriptor) member).getModality() == Modality.ABSTRACT && - !CallResolverUtil.isOrOverridesSynthesized((CallableMemberDescriptor) member)) { + if (member instanceof CallableMemberDescriptor && ((CallableMemberDescriptor) member).getModality() == Modality.ABSTRACT) { abstractMembers.add((CallableMemberDescriptor) member); } } @@ -206,7 +204,7 @@ public class SingleAbstractMethodUtils { typeParameters, valueParameters, returnType, - original.getModality(), + Modality.FINAL, original.getVisibility(), false ); diff --git a/compiler/testData/codegen/boxWithJava/sam/adapters/inheritedOverriddenAdapterInKotlin.java b/compiler/testData/codegen/boxWithJava/sam/adapters/inheritedOverriddenAdapterInKotlin.java deleted file mode 100644 index 60f0119ff89..00000000000 --- a/compiler/testData/codegen/boxWithJava/sam/adapters/inheritedOverriddenAdapterInKotlin.java +++ /dev/null @@ -1,7 +0,0 @@ -class Super { - public String lastCalled = null; - - void foo(Runnable r) { - lastCalled = "super"; - } -} diff --git a/compiler/testData/codegen/boxWithJava/sam/adapters/inheritedOverriddenAdapterInKotlin.kt b/compiler/testData/codegen/boxWithJava/sam/adapters/inheritedOverriddenAdapterInKotlin.kt deleted file mode 100644 index 684e527cf72..00000000000 --- a/compiler/testData/codegen/boxWithJava/sam/adapters/inheritedOverriddenAdapterInKotlin.kt +++ /dev/null @@ -1,21 +0,0 @@ -class Sub() : Super() { - override fun foo(r : (() -> Unit)?) { - lastCalled = "sub" - } -} - -fun box(): String { - val sub = Sub() - - (sub : Super).foo{ } - if (sub.lastCalled != "super") { - return "FAIL: ${sub.lastCalled} instead of super" - } - - sub.foo{ } - if (sub.lastCalled != "sub") { - return "FAIL: ${sub.lastCalled} instead of sub" - } - - return "OK" -} diff --git a/compiler/testData/diagnostics/tests/j+k/cantDeclareIfSamAdapterIsInherited.kt b/compiler/testData/diagnostics/tests/j+k/cantDeclareIfSamAdapterIsInherited.kt new file mode 100644 index 00000000000..ec64c6f6e04 --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/cantDeclareIfSamAdapterIsInherited.kt @@ -0,0 +1,17 @@ +// FILE: Super.java +class Super { + void foo(Runnable r) { + } +} + +// FILE: Sub.kt +class Sub1() : Super() { + fun foo(r : (() -> Unit)?) { + } +} + +class Sub2() : Super() { + override fun foo(r : (() -> Unit)?) { + } +} + diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/AmbiguousAdapters.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/AmbiguousAdapters.txt index 8285524a2cb..56682f67e1f 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/AmbiguousAdapters.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/AmbiguousAdapters.txt @@ -2,8 +2,8 @@ package test public open class AmbiguousAdapters : java.lang.Object { public constructor AmbiguousAdapters() - public open /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit - public open /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public open fun foo(/*0*/ p0: java.io.Closeable?): jet.Unit public open fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/Basic.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/Basic.txt index fcc00409eae..a33203b260c 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/Basic.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/Basic.txt @@ -2,11 +2,11 @@ package test public open class Basic : java.lang.Object { public constructor Basic() - public open /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public open fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } package Basic { - public open /*synthesized*/ fun bar(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public /*synthesized*/ fun bar(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public open fun bar(/*0*/ p0: java.lang.Runnable?): jet.Unit } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/DeepSamLoop.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/DeepSamLoop.txt index d558ccd28f4..8be90ed2977 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/DeepSamLoop.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/DeepSamLoop.txt @@ -3,12 +3,12 @@ package test public trait DeepSamLoop : java.lang.Object { public trait Bar : java.lang.Object { - public abstract /*synthesized*/ fun foo(/*0*/ p0: ((test.DeepSamLoop.Bar?) -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: ((test.DeepSamLoop.Bar?) -> jet.Unit)?): jet.Unit public abstract fun foo(/*0*/ p0: test.DeepSamLoop.Foo?): jet.Unit } public trait Foo : java.lang.Object { - public abstract /*synthesized*/ fun foo(/*0*/ p0: ((test.DeepSamLoop.Foo?) -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: ((test.DeepSamLoop.Foo?) -> jet.Unit)?): jet.Unit public abstract fun foo(/*0*/ p0: test.DeepSamLoop.Bar?): jet.Unit } } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/NonTrivialFunctionType.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/NonTrivialFunctionType.txt index ae0ee667381..d7c7ee885ec 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/NonTrivialFunctionType.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/NonTrivialFunctionType.txt @@ -2,11 +2,11 @@ package test public open class NonTrivialFunctionType : java.lang.Object { public constructor NonTrivialFunctionType() - public open /*synthesized*/ fun foo(/*0*/ p0: ((java.io.File, jet.String) -> jet.Boolean)?): jet.Unit - public open /*synthesized*/ fun foo(/*0*/ p0: ((jet.String, jet.String) -> jet.Int)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: ((java.io.File, jet.String) -> jet.Boolean)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: ((jet.String, jet.String) -> jet.Int)?): jet.Unit public open fun foo(/*0*/ p0: java.io.FilenameFilter?): jet.Unit public open fun foo(/*0*/ p0: java.util.Comparator?): jet.Unit - public open /*synthesized*/ fun wildcardBound(/*0*/ p0: ((jet.CharSequence?, jet.CharSequence?) -> jet.Int)?): jet.Unit + public final /*synthesized*/ fun wildcardBound(/*0*/ p0: ((jet.CharSequence?, jet.CharSequence?) -> jet.Int)?): jet.Unit public open fun wildcardBound(/*0*/ p0: java.util.Comparator?): jet.Unit public open fun wildcardUnbound(/*0*/ p0: java.util.Comparator?): jet.Unit } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/SelfAsParameter.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/SelfAsParameter.txt index d579c380a55..6be1be988f2 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/SelfAsParameter.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/SelfAsParameter.txt @@ -3,6 +3,6 @@ package test public /*synthesized*/ fun SelfAsParameter(/*0*/ function: (test.SelfAsParameter?) -> jet.Unit): test.SelfAsParameter public trait SelfAsParameter : java.lang.Object { - public abstract /*synthesized*/ fun foo(/*0*/ p0: ((test.SelfAsParameter?) -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: ((test.SelfAsParameter?) -> jet.Unit)?): jet.Unit public abstract fun foo(/*0*/ p0: test.SelfAsParameter?): jet.Unit } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/SeveralSamParameters.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/SeveralSamParameters.txt index 57b5508fe52..beb1fca6e31 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/SeveralSamParameters.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/SeveralSamParameters.txt @@ -5,6 +5,6 @@ public open class SeveralSamParameters : java.lang.Object { } package SeveralSamParameters { - public open /*synthesized*/ fun findMaxAndInvokeCallback(/*0*/ p0: ((jet.String, jet.String) -> jet.Int)?, /*1*/ p1: jet.String?, /*2*/ p2: jet.String?, /*3*/ p3: (() -> jet.Unit)?): jet.String? + public /*synthesized*/ fun findMaxAndInvokeCallback(/*0*/ p0: ((jet.String, jet.String) -> jet.Int)?, /*1*/ p1: jet.String?, /*2*/ p2: jet.String?, /*3*/ p3: (() -> jet.Unit)?): jet.String? public open fun findMaxAndInvokeCallback(/*0*/ p0: java.util.Comparator?, /*1*/ p1: jet.String?, /*2*/ p2: jet.String?, /*3*/ p3: java.lang.Runnable?): jet.String? } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfClass.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfClass.txt index aad57e1da24..a326e1a3193 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfClass.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfClass.txt @@ -2,6 +2,6 @@ package test public open class TypeParameterOfClass : java.lang.Object { public constructor TypeParameterOfClass() - public open /*synthesized*/ fun foo(/*0*/ p0: ((T, T) -> jet.Int)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: ((T, T) -> jet.Int)?): jet.Unit public open fun foo(/*0*/ p0: java.util.Comparator?): jet.Unit } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfMethod.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfMethod.txt index bacb260964b..bb75ea95373 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfMethod.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfMethod.txt @@ -5,10 +5,10 @@ public open class TypeParameterOfMethod : java.lang.Object { } package TypeParameterOfMethod { - public open /*synthesized*/ fun max(/*0*/ p0: ((T, T) -> jet.Int)?, /*1*/ p1: T?, /*2*/ p2: T?): T? + public /*synthesized*/ fun max(/*0*/ p0: ((T, T) -> jet.Int)?, /*1*/ p1: T?, /*2*/ p2: T?): T? public open fun max(/*0*/ p0: java.util.Comparator?, /*1*/ p1: T?, /*2*/ p2: T?): T? - public open /*synthesized*/ fun max2(/*0*/ p0: ((T, T) -> jet.Int)?, /*1*/ p1: T?, /*2*/ p2: T?): T? + public /*synthesized*/ fun max2(/*0*/ p0: ((T, T) -> jet.Int)?, /*1*/ p1: T?, /*2*/ p2: T?): T? public open fun max2(/*0*/ p0: java.util.Comparator?, /*1*/ p1: T?, /*2*/ p2: T?): T? - public open /*synthesized*/ fun ?> method(/*0*/ p0: ((A, A) -> jet.Int)?, /*1*/ p1: B?): jet.Unit + public /*synthesized*/ fun ?> method(/*0*/ p0: ((A, A) -> jet.Int)?, /*1*/ p1: B?): jet.Unit public open fun ?> method(/*0*/ p0: java.util.Comparator?, /*1*/ p1: B?): jet.Unit } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfOuterClass.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfOuterClass.txt index 1dbb3b17d9f..6310933b0c9 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfOuterClass.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfOuterClass.txt @@ -5,7 +5,7 @@ public open class TypeParameterOfOuterClass : java.lang.Object { public open inner class Inner : java.lang.Object { public constructor Inner() - public open /*synthesized*/ fun foo(/*0*/ p0: ((T, T) -> jet.Int)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: ((T, T) -> jet.Int)?): jet.Unit public open fun foo(/*0*/ p0: java.util.Comparator?): jet.Unit } } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/AdapterDoesntOverrideDeclaration.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/AdapterDoesntOverrideDeclaration.txt index ae35f9c4d02..61dd4f803ba 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/AdapterDoesntOverrideDeclaration.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/AdapterDoesntOverrideDeclaration.txt @@ -4,7 +4,7 @@ public trait AdapterDoesntOverrideDeclaration : java.lang.Object { public trait Sub : test.AdapterDoesntOverrideDeclaration.Super { public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit - public abstract /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedAdapterAndDeclaration.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedAdapterAndDeclaration.txt index 47c2df97ec1..d4614d59b8d 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedAdapterAndDeclaration.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedAdapterAndDeclaration.txt @@ -4,13 +4,13 @@ public trait InheritedAdapterAndDeclaration : java.lang.Object { public trait Sub : test.InheritedAdapterAndDeclaration.Super { public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit - public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } public trait Super : java.lang.Object { public abstract fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit - public abstract /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedAmbiguousAdapters.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedAmbiguousAdapters.txt index 4d1d2500067..66a1df2f265 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedAmbiguousAdapters.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedAmbiguousAdapters.txt @@ -3,15 +3,15 @@ package test public trait InheritedAmbiguousAdapters : java.lang.Object { public trait Sub : test.InheritedAmbiguousAdapters.Super { - public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit - public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: java.io.Closeable?): jet.Unit public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } public trait Super : java.lang.Object { - public abstract /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit - public abstract /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract fun foo(/*0*/ p0: java.io.Closeable?): jet.Unit public abstract fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedAndOverriddenAmbiguousAdapters.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedAndOverriddenAmbiguousAdapters.txt index 510814b316c..396c1dc3f3b 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedAndOverriddenAmbiguousAdapters.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedAndOverriddenAmbiguousAdapters.txt @@ -3,15 +3,15 @@ package test public trait InheritedAndOverriddenAmbiguousAdapters : java.lang.Object { public trait Sub : test.InheritedAndOverriddenAmbiguousAdapters.Super { - public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit - public abstract override /*1*/ /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final override /*1*/ /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: java.io.Closeable?): jet.Unit public abstract override /*1*/ fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } public trait Super : java.lang.Object { - public abstract /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit - public abstract /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract fun foo(/*0*/ p0: java.io.Closeable?): jet.Unit public abstract fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedOverridden.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedOverridden.txt index 5a55c36f4b1..4bdb829be47 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedOverridden.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedOverridden.txt @@ -4,13 +4,13 @@ public trait InheritedOverridden : java.lang.Object { public open class Sub : test.InheritedOverridden.Super { public constructor Sub() - public open override /*1*/ /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final override /*1*/ /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public open override /*1*/ fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } public open class Super : java.lang.Object { public constructor Super() - public open /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public open fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedOverriddenAdapter.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedOverriddenAdapter.txt index a504c87944d..fc0ae4d9ffe 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedOverriddenAdapter.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedOverriddenAdapter.txt @@ -10,7 +10,7 @@ public trait InheritedOverriddenAdapter : java.lang.Object { public open class Super : java.lang.Object { public constructor Super() - public open /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public open fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedSameAdapters.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedSameAdapters.txt index c1482c7952d..a9416c0c8ac 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedSameAdapters.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedSameAdapters.txt @@ -3,17 +3,17 @@ package test public trait InheritedSameAdapters : java.lang.Object { public trait Sub : test.InheritedSameAdapters.Super1, test.InheritedSameAdapters.Super2 { - public abstract override /*2*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final override /*2*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract override /*2*/ /*fake_override*/ fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } public trait Super1 : java.lang.Object { - public abstract /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } public trait Super2 : java.lang.Object { - public abstract /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedSameAdaptersWithSubstitution.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedSameAdaptersWithSubstitution.txt index 74c79f58c27..34ede216604 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedSameAdaptersWithSubstitution.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedSameAdaptersWithSubstitution.txt @@ -3,22 +3,22 @@ package test public trait InheritedSameAdaptersWithSubstitution : java.lang.Object { public trait Sub : test.InheritedSameAdaptersWithSubstitution.Super1, test.InheritedSameAdaptersWithSubstitution.Super2Substituted { - public abstract override /*2*/ /*fake_override*/ fun foo(/*0*/ p0: ((jet.String, jet.String) -> jet.Int)?): jet.Unit + public final override /*2*/ /*fake_override*/ fun foo(/*0*/ p0: ((jet.String, jet.String) -> jet.Int)?): jet.Unit public abstract override /*2*/ /*fake_override*/ fun foo(/*0*/ p0: java.util.Comparator?): jet.Unit } public trait Super1 : java.lang.Object { - public abstract /*synthesized*/ fun foo(/*0*/ p0: ((jet.String, jet.String) -> jet.Int)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: ((jet.String, jet.String) -> jet.Int)?): jet.Unit public abstract fun foo(/*0*/ p0: java.util.Comparator?): jet.Unit } public trait Super2 : java.lang.Object { - public abstract /*synthesized*/ fun foo(/*0*/ p0: ((T, T) -> jet.Int)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: ((T, T) -> jet.Int)?): jet.Unit public abstract fun foo(/*0*/ p0: java.util.Comparator?): jet.Unit } public trait Super2Substituted : test.InheritedSameAdaptersWithSubstitution.Super2 { - public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: ((jet.String, jet.String) -> jet.Int)?): jet.Unit + public final override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: ((jet.String, jet.String) -> jet.Int)?): jet.Unit public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: java.util.Comparator?): jet.Unit } } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedSimple.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedSimple.txt index 10534b8b49e..53ab0dfb4d4 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedSimple.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/InheritedSimple.txt @@ -3,12 +3,12 @@ package test public trait InheritedSimple : java.lang.Object { public trait Sub : test.InheritedSimple.Super { - public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } public trait Super : java.lang.Object { - public abstract /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/OverriddenAmbiguousAdapters.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/OverriddenAmbiguousAdapters.txt index cd9e7ce35ac..1796c58440b 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/OverriddenAmbiguousAdapters.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/inheritance/OverriddenAmbiguousAdapters.txt @@ -9,8 +9,8 @@ public trait OverriddenAmbiguousAdapters : java.lang.Object { } public trait Super : java.lang.Object { - public abstract /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit - public abstract /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit public abstract fun foo(/*0*/ p0: java.io.Closeable?): jet.Unit public abstract fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit } diff --git a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritAmbguousSamAdaptersInKotlin.txt b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritAmbguousSamAdaptersInKotlin.txt index 204e3bceb3a..d3edaac6e68 100644 --- a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritAmbguousSamAdaptersInKotlin.txt +++ b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritAmbguousSamAdaptersInKotlin.txt @@ -2,16 +2,16 @@ package test public final class Sub : test.Super { public constructor Sub() - internal open override /*1*/ /*fake_override*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit - internal open override /*1*/ /*fake_override*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit + internal final override /*1*/ /*fake_override*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit + internal final override /*1*/ /*fake_override*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit internal open override /*1*/ /*fake_override*/ fun foo(/*0*/ r: java.io.Closeable?): jet.Unit internal open override /*1*/ /*fake_override*/ fun foo(/*0*/ r: java.lang.Runnable?): jet.Unit } public open class Super : java.lang.Object { public constructor Super() - public/*package*/ open /*synthesized*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit - public/*package*/ open /*synthesized*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit + public/*package*/ final /*synthesized*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit + public/*package*/ final /*synthesized*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit public/*package*/ open fun foo(/*0*/ r: java.io.Closeable?): jet.Unit public/*package*/ open fun foo(/*0*/ r: java.lang.Runnable?): jet.Unit } diff --git a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritSamAdapterInKotlin.txt b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritSamAdapterInKotlin.txt index 37250d7e3fb..6be8b56bd1c 100644 --- a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritSamAdapterInKotlin.txt +++ b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/InheritSamAdapterInKotlin.txt @@ -2,12 +2,12 @@ package test public final class Sub : test.Super { public constructor Sub() - internal open override /*1*/ /*fake_override*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit + internal final override /*1*/ /*fake_override*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit internal open override /*1*/ /*fake_override*/ fun foo(/*0*/ r: java.lang.Runnable?): jet.Unit } public open class Super : java.lang.Object { public constructor Super() - public/*package*/ open /*synthesized*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit + public/*package*/ final /*synthesized*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit public/*package*/ open fun foo(/*0*/ r: java.lang.Runnable?): jet.Unit } diff --git a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/OverrideSamAdapterInKotlin.txt b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/OverrideSamAdapterInKotlin.txt index cf8b53614d4..9cbea61baee 100644 --- a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/OverrideSamAdapterInKotlin.txt +++ b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/OverrideSamAdapterInKotlin.txt @@ -8,6 +8,6 @@ public final class Sub : test.Super { public open class Super : java.lang.Object { public constructor Super() - public/*package*/ open /*synthesized*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit + public/*package*/ final /*synthesized*/ fun foo(/*0*/ r: (() -> jet.Unit)?): jet.Unit public/*package*/ open fun foo(/*0*/ r: java.lang.Runnable?): jet.Unit } diff --git a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/SamAdapterForOverriddenFromKotlin.txt b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/SamAdapterForOverriddenFromKotlin.txt index 18869710ad3..7ffeefde529 100644 --- a/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/SamAdapterForOverriddenFromKotlin.txt +++ b/compiler/testData/loadJava/javaAgainstKotlin/samAdapters/SamAdapterForOverriddenFromKotlin.txt @@ -2,7 +2,7 @@ package test public open class Sub : test.Super { public constructor Sub() - public open /*synthesized*/ fun foo(/*0*/ r: () -> jet.Unit): jet.Unit + public final /*synthesized*/ fun foo(/*0*/ r: () -> jet.Unit): jet.Unit public open override /*1*/ fun foo(/*0*/ r: java.lang.Runnable): jet.Unit } diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 23b4bdc5a39..b44c8e6df8b 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -3234,6 +3234,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage doTest("compiler/testData/diagnostics/tests/j+k/ambiguousSamAdapters.kt"); } + @TestMetadata("cantDeclareIfSamAdapterIsInherited.kt") + public void testCantDeclareIfSamAdapterIsInherited() throws Exception { + doTest("compiler/testData/diagnostics/tests/j+k/cantDeclareIfSamAdapterIsInherited.kt"); + } + @TestMetadata("inheritAbstractSamAdapter.kt") public void testInheritAbstractSamAdapter() throws Exception { doTest("compiler/testData/diagnostics/tests/j+k/inheritAbstractSamAdapter.kt"); diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java index d51be1ac644..86502eaff94 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java @@ -178,11 +178,6 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege doTestWithJava("compiler/testData/codegen/boxWithJava/sam/adapters/inheritedOverriddenAdapter.kt"); } - @TestMetadata("inheritedOverriddenAdapterInKotlin.kt") - public void testInheritedOverriddenAdapterInKotlin() throws Exception { - doTestWithJava("compiler/testData/codegen/boxWithJava/sam/adapters/inheritedOverriddenAdapterInKotlin.kt"); - } - @TestMetadata("inheritedSimple.kt") public void testInheritedSimple() throws Exception { doTestWithJava("compiler/testData/codegen/boxWithJava/sam/adapters/inheritedSimple.kt");