diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java index c9d3ad43755..5b41ea5d57d 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java @@ -245,8 +245,6 @@ public interface Errors { // Members - DiagnosticFactory0 PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE = DiagnosticFactory0.create(ERROR, DECLARATION_SIGNATURE); - DiagnosticFactory2 CONFLICTING_OVERLOADS = DiagnosticFactory2.create(ERROR, DECLARATION_SIGNATURE_OR_DEFAULT); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java index 1fd7b8986e9..a30a2d21c20 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java @@ -217,8 +217,6 @@ public class DefaultErrorMessages { MAP.put(FUNCTION_EXPRESSION_WITH_NAME, "Function expressions with names are deprecated"); MAP.put(NON_FINAL_MEMBER_IN_FINAL_CLASS, "\"open\" has no effect in a final class"); - MAP.put(PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE, "Public or protected member should have specified type"); - MAP.put(FUNCTION_EXPRESSION_PARAMETER_WITH_DEFAULT_VALUE, "A function expression is not allowed to specify default values for its parameters"); MAP.put(USELESS_VARARG_ON_PARAMETER, "Vararg on this parameter is useless"); MAP.put(DEPRECATED_LAMBDA_SYNTAX, diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationsChecker.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationsChecker.java index 0c39d7b9f37..36c1577d474 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationsChecker.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationsChecker.java @@ -327,22 +327,6 @@ public class DeclarationsChecker { } checkPropertyInitializer(property, propertyDescriptor); checkAccessors(property, propertyDescriptor); - checkDeclaredTypeInPublicMember(property, propertyDescriptor); - } - - private void checkDeclaredTypeInPublicMember(JetNamedDeclaration member, CallableMemberDescriptor memberDescriptor) { - boolean hasDeferredType; - if (member instanceof JetProperty) { - hasDeferredType = ((JetProperty) member).getTypeReference() == null && DescriptorResolver.hasBody((JetProperty) member); - } - else { - assert member instanceof JetFunction; - JetFunction function = (JetFunction) member; - hasDeferredType = function.getTypeReference() == null && function.hasBody() && !function.hasBlockBody(); - } - if ((memberDescriptor.getVisibility().getIsPublicAPI()) && memberDescriptor.getOverriddenDescriptors().size() == 0 && hasDeferredType) { - trace.report(PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE.on(member)); - } } private void checkPropertyAbstractness( @@ -449,7 +433,6 @@ public class DeclarationsChecker { protected void checkFunction(JetNamedFunction function, SimpleFunctionDescriptor functionDescriptor) { DeclarationDescriptor containingDescriptor = functionDescriptor.getContainingDeclaration(); boolean hasAbstractModifier = function.hasModifier(JetTokens.ABSTRACT_KEYWORD); - checkDeclaredTypeInPublicMember(function, functionDescriptor); if (containingDescriptor instanceof ClassDescriptor) { ClassDescriptor classDescriptor = (ClassDescriptor) containingDescriptor; boolean inTrait = classDescriptor.getKind() == ClassKind.INTERFACE; diff --git a/compiler/testData/diagnostics/tests/FunctionReturnTypes.kt b/compiler/testData/diagnostics/tests/FunctionReturnTypes.kt index f0d641a5e5a..f659243e884 100644 --- a/compiler/testData/diagnostics/tests/FunctionReturnTypes.kt +++ b/compiler/testData/diagnostics/tests/FunctionReturnTypes.kt @@ -164,9 +164,9 @@ fun f(): Int { fun f1(): Int = if (1 < 2) 1 else returnNothing() -public fun f2() = 1 +public fun f2() = 1 class B() { - protected fun f() = "ss" + protected fun f() = "ss" } fun testFunctionLiterals() { diff --git a/compiler/testData/diagnostics/tests/Properties.kt b/compiler/testData/diagnostics/tests/Properties.kt index 61a7a254946..4ad834fc20b 100644 --- a/compiler/testData/diagnostics/tests/Properties.kt +++ b/compiler/testData/diagnostics/tests/Properties.kt @@ -26,5 +26,5 @@ class Test() { $b = $a a = $b } - public val i = 1 + public val i = 1 } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/declarationChecks/ambiguousObjectExpressionType.kt b/compiler/testData/diagnostics/tests/declarationChecks/ambiguousObjectExpressionType.kt index eaabbcbcb0a..13f325fbf45 100644 --- a/compiler/testData/diagnostics/tests/declarationChecks/ambiguousObjectExpressionType.kt +++ b/compiler/testData/diagnostics/tests/declarationChecks/ambiguousObjectExpressionType.kt @@ -16,13 +16,13 @@ class Foo { privateProperty.f2() } - protected val protectedProperty = object : MyClass(), MyTrait {} + protected val protectedProperty = object : MyClass(), MyTrait {} val internalProperty = object : MyClass(), MyTrait {} internal val internal2Property = object : MyClass(), MyTrait {} - public val publicProperty = object : MyClass(), MyTrait {} + public val publicProperty = object : MyClass(), MyTrait {} private fun privateFunction() = object : MyClass(), MyTrait {} @@ -32,13 +32,13 @@ class Foo { privateFunction().f2() } - protected fun protectedFunction() = object : MyClass(), MyTrait {} + protected fun protectedFunction() = object : MyClass(), MyTrait {} fun internalFunction() = object : MyClass(), MyTrait {} internal fun internal2Function() = object : MyClass(), MyTrait {} - public fun publicFunction() = object : MyClass(), MyTrait {} + public fun publicFunction() = object : MyClass(), MyTrait {} @@ -50,13 +50,13 @@ class Foo { privatePropertyInner.f2() } - protected val protectedProperty = object : MyClass(), MyTrait {} + protected val protectedProperty = object : MyClass(), MyTrait {} val internalProperty = object : MyClass(), MyTrait {} internal val internal2Property = object : MyClass(), MyTrait {} - public val publicProperty = object : MyClass(), MyTrait {} + public val publicProperty = object : MyClass(), MyTrait {} private fun privateFunctionInner() = object : MyClass(), MyTrait {} @@ -66,13 +66,13 @@ class Foo { privateFunctionInner().f2() } - protected fun protectedFunction() = object : MyClass(), MyTrait {} + protected fun protectedFunction() = object : MyClass(), MyTrait {} fun internalFunction() = object : MyClass(), MyTrait {} internal fun internal2Function() = object : MyClass(), MyTrait {} - public fun publicFunction() = object : MyClass(), MyTrait {} + public fun publicFunction() = object : MyClass(), MyTrait {} } @@ -90,21 +90,21 @@ class Foo { private val packagePrivateProperty = object : MyClass(), MyTrait {} -protected val packageProtectedProperty = object : MyClass(), MyTrait {} +protected val packageProtectedProperty = object : MyClass(), MyTrait {} val packageInternalProperty = object : MyClass(), MyTrait {} internal val packageInternal2Property = object : MyClass(), MyTrait {} -public val packagePublicProperty = object : MyClass(), MyTrait {} +public val packagePublicProperty = object : MyClass(), MyTrait {} -protected fun packageProtectedFunction() = object : MyClass(), MyTrait {} +protected fun packageProtectedFunction() = object : MyClass(), MyTrait {} fun packageInternalFunction() = object : MyClass(), MyTrait {} internal fun packageInternal2Function() = object : MyClass(), MyTrait {} -public fun packagePublicFunction() = object : MyClass(), MyTrait {} +public fun packagePublicFunction() = object : MyClass(), MyTrait {} fun fooPackage() { val packageLocalVar = object : MyClass(), MyTrait {} diff --git a/compiler/testData/diagnostics/tests/declarationChecks/unambiguousObjectExpressionType.kt b/compiler/testData/diagnostics/tests/declarationChecks/unambiguousObjectExpressionType.kt index 6e1d08ec959..e8da55338ee 100644 --- a/compiler/testData/diagnostics/tests/declarationChecks/unambiguousObjectExpressionType.kt +++ b/compiler/testData/diagnostics/tests/declarationChecks/unambiguousObjectExpressionType.kt @@ -5,9 +5,9 @@ open class MyClass { class Foo { - protected val protectedProperty = object : MyClass() {} + protected val protectedProperty = object : MyClass() {} - public val publicProperty = object : MyClass() {} + public val publicProperty = object : MyClass() {} protected val protected2Property : MyClass = object : MyClass() {fun invisible() {}} @@ -35,9 +35,9 @@ class Foo { } - protected fun protectedFunction() = object : MyClass() {} + protected fun protectedFunction() = object : MyClass() {} - public fun publicFunction() = object : MyClass() {} + public fun publicFunction() = object : MyClass() {} protected fun protected2Function(): MyClass = object : MyClass() {fun visible() {}} @@ -67,9 +67,9 @@ class Foo { class FooInner { - public val publicProperty = object : MyClass() {} + public val publicProperty = object : MyClass() {} - protected val protectedProperty = object : MyClass() {} + protected val protectedProperty = object : MyClass() {} protected val protected2Property : MyClass = object : MyClass() {fun invisible() {}} @@ -97,9 +97,9 @@ class Foo { } - protected fun protectedFunction() = object : MyClass() {} + protected fun protectedFunction() = object : MyClass() {} - public fun publicFunction() = object : MyClass() {} + public fun publicFunction() = object : MyClass() {} protected fun protected2Function(): MyClass = object : MyClass() {fun visible() {}} @@ -136,9 +136,9 @@ class Foo { } -protected val packageProtectedProperty = object : MyClass() {} +protected val packageProtectedProperty = object : MyClass() {} -public val packagePublicProperty = object : MyClass() {} +public val packagePublicProperty = object : MyClass() {} public val packagePublic2Property : MyClass = object : MyClass() {fun invisible() {}} @@ -164,9 +164,9 @@ fun testProperties() { private fun privateFunction() = object : MyClass() {fun invisible() {}} -protected fun protectedFunction() = object : MyClass() {} +protected fun protectedFunction() = object : MyClass() {} -public fun publicFunction() = object : MyClass() {} +public fun publicFunction() = object : MyClass() {} public fun public2Function() : MyClass = object : MyClass() {fun invisible() {}} @@ -196,5 +196,4 @@ fun fooPackage() { fun fooPackageLocal() = object : MyClass() {fun visible() {}} fooPackageLocal().f1() fooPackageLocal().visible() -} - +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/delegatedProperty/publicDelegatedProperty.kt b/compiler/testData/diagnostics/tests/delegatedProperty/publicDelegatedProperty.kt deleted file mode 100644 index b1e06296861..00000000000 --- a/compiler/testData/diagnostics/tests/delegatedProperty/publicDelegatedProperty.kt +++ /dev/null @@ -1,9 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER - -public val a by Delegate() - -class Delegate { - fun get(t: Any?, p: PropertyMetadata): Int { - return 1 - } -} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/delegatedProperty/publicDelegatedProperty.txt b/compiler/testData/diagnostics/tests/delegatedProperty/publicDelegatedProperty.txt deleted file mode 100644 index f75cf389ad0..00000000000 --- a/compiler/testData/diagnostics/tests/delegatedProperty/publicDelegatedProperty.txt +++ /dev/null @@ -1,11 +0,0 @@ -package - -public val a: kotlin.Int - -internal final class Delegate { - public constructor Delegate() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - internal final fun get(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata): kotlin.Int - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java index 3d0ba00f675..f64d3b07890 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java @@ -4245,12 +4245,6 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest(fileName); } - @TestMetadata("publicDelegatedProperty.kt") - public void testPublicDelegatedProperty() throws Exception { - String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/delegatedProperty/publicDelegatedProperty.kt"); - doTest(fileName); - } - @TestMetadata("recursiveType.kt") public void testRecursiveType() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/delegatedProperty/recursiveType.kt"); diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/SpecifyTypeExplicitlyIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/SpecifyTypeExplicitlyIntention.kt index 85ad5132053..7263b7757a1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/SpecifyTypeExplicitlyIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/SpecifyTypeExplicitlyIntention.kt @@ -42,7 +42,7 @@ public class SpecifyTypeExplicitlyIntention : JetSelfTargetingIntention) return false if (element.getTypeReference() != null) return false - if (getTypeForDeclaration(element).isError() || hasPublicMemberDiagnostic(element)) return false + if (getTypeForDeclaration(element).isError()) return false val initializer = (element as? JetWithExpressionInitializer)?.getInitializer() if (initializer != null && initializer.getTextRange().containsOffset(caretOffset)) return false @@ -54,11 +54,6 @@ public class SpecifyTypeExplicitlyIntention : JetSelfTargetingIntention