diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java index 8d4f5341a7e..4db93e4dbc2 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java @@ -215,8 +215,6 @@ public interface Errors { DiagnosticFactory0 MANY_COMPANION_OBJECTS = DiagnosticFactory0.create(ERROR, COMPANION_OBJECT); DiagnosticFactory0 COMPANION_OBJECT_NOT_ALLOWED = DiagnosticFactory0.create(ERROR, COMPANION_OBJECT); - DiagnosticFactory0 DEPRECATED_CLASS_OBJECT_SYNTAX = DiagnosticFactory0.create(WARNING); - DiagnosticFactory1 DEPRECATED_SYMBOL = DiagnosticFactory1.create(WARNING); DiagnosticFactory2 DEPRECATED_SYMBOL_WITH_MESSAGE = DiagnosticFactory2.create(WARNING); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/PositioningStrategies.kt b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/PositioningStrategies.kt index 0968f30aea5..f73e2628e51 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/PositioningStrategies.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/PositioningStrategies.kt @@ -58,7 +58,7 @@ public object PositioningStrategies { } is JetObjectDeclaration -> { return markRange( - element.getClassKeyword() ?: element.getObjectKeyword(), + element.getObjectKeyword(), element.getNameIdentifier() ?: element.getObjectKeyword() ) } 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 2de073349f3..2c8e05f4e80 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java @@ -251,7 +251,6 @@ public class DefaultErrorMessages { MAP.put(MANY_COMPANION_OBJECTS, "Only one companion object is allowed per class"); MAP.put(COMPANION_OBJECT_NOT_ALLOWED, "A companion object is not allowed here"); - MAP.put(DEPRECATED_CLASS_OBJECT_SYNTAX, "'class object' syntax for companion objects was deprecated. Use 'companion' modifier instead"); MAP.put(DEPRECATED_SYMBOL, "''{0}'' is deprecated.", DEPRECATION); MAP.put(DEPRECATED_SYMBOL_WITH_MESSAGE, "''{0}'' is deprecated. {1}", DEPRECATION, STRING); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/parsing/JetParsing.java b/compiler/frontend/src/org/jetbrains/kotlin/parsing/JetParsing.java index 21508bbaef7..b23a78e16cf 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/parsing/JetParsing.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/parsing/JetParsing.java @@ -821,12 +821,7 @@ public class JetParsing extends AbstractJetParsing { IElementType keywordToken = tt(); IElementType declType = null; if (keywordToken == CLASS_KEYWORD) { - if (lookahead(1) == OBJECT_KEYWORD) { - declType = parseDeprecatedClassObject(); - } - else { - declType = parseClass(isEnum); - } + declType = parseClass(isEnum); } else if (keywordToken == TRAIT_KEYWORD) { declType = parseClass(isEnum); @@ -977,18 +972,6 @@ public class JetParsing extends AbstractJetParsing { initializer.done(type); } - /* - * companionObject - * : modifiers "class" object - * ; - */ - private IElementType parseDeprecatedClassObject() { - assert _at(CLASS_KEYWORD) && lookahead(1) == OBJECT_KEYWORD; - advance(); // CLASS_KEYWORD - parseObject(NameParsingMode.ALLOWED, true); - return OBJECT_DECLARATION; - } - /* * typeAlias * : modifiers "typealias" SimpleName (typeParameters typeConstraints)? "=" type diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetObjectDeclaration.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetObjectDeclaration.java index a055e5b160d..330eb6645b1 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetObjectDeclaration.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetObjectDeclaration.java @@ -99,7 +99,7 @@ public class JetObjectDeclaration extends JetNamedDeclarationStubclass object A { - - } -} - -trait B { - class object : G { - - } -} - -class C { - companion class object -} - -fun main() { - A - A.A - g(B.Companion) - g(B) - - A.ext() - A.A.ext() -} - -fun g(g: G) { g } - -fun A.A.ext() { -} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/classObjects/deprecatedClassObjectSyntax.txt b/compiler/testData/diagnostics/tests/classObjects/deprecatedClassObjectSyntax.txt deleted file mode 100644 index 67797fee6f9..00000000000 --- a/compiler/testData/diagnostics/tests/classObjects/deprecatedClassObjectSyntax.txt +++ /dev/null @@ -1,52 +0,0 @@ -package - -internal fun g(/*0*/ g: G): kotlin.Unit -internal fun main(): kotlin.Unit -internal fun A.A.ext(): kotlin.Unit - -internal final class A { - public constructor A() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - - internal companion object A { - private constructor A() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } -} - -internal trait B { - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - - internal companion object Companion : G { - private constructor Companion() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } -} - -internal final class C { - public constructor C() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - - internal companion object Companion { - private constructor Companion() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } -} - -internal trait G { - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - 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 0e3b10da63e..3397d45eae9 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java @@ -1482,12 +1482,6 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest(fileName); } - @TestMetadata("deprecatedClassObjectSyntax.kt") - public void testDeprecatedClassObjectSyntax() throws Exception { - String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/classObjects/deprecatedClassObjectSyntax.kt"); - doTest(fileName); - } - @TestMetadata("importClassInClassObject.kt") public void testImportClassInClassObject() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/classObjects/importClassInClassObject.kt"); diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/JetPsiChecker.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/JetPsiChecker.kt index 8edb28fd0e7..97bfc2850e0 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/JetPsiChecker.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/JetPsiChecker.kt @@ -150,7 +150,6 @@ public open class JetPsiChecker : Annotator, HighlightRangeExtension { val annotation = holder.createWarningAnnotation(textRange, getDefaultMessage(diagnostic)) when (factory) { - Errors.DEPRECATED_CLASS_OBJECT_SYNTAX, Errors.DEPRECATED_SYMBOL, Errors.DEPRECATED_SYMBOL_WITH_MESSAGE -> annotation.setTextAttributes(CodeInsightColors.DEPRECATED_ATTRIBUTES) diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/JetDeclarationMover.java b/idea/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/JetDeclarationMover.java index f2bd77c95af..3820d1bfa58 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/JetDeclarationMover.java +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/JetDeclarationMover.java @@ -59,13 +59,6 @@ public class JetDeclarationMover extends AbstractJetUpDownMover { } } - @Override - public void visitObjectDeclaration(@NotNull JetObjectDeclaration declaration) { - if (declaration.isCompanion()) { - memberSuspects.add(declaration.getClassKeyword()); - } - } - @Override public void visitNamedFunction(@NotNull JetNamedFunction function) { PsiElement equalsToken = function.getEqualsToken(); diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ClassObjectToDefaultObjectFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/ClassObjectToDefaultObjectFix.kt deleted file mode 100644 index 4edefe557ce..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ClassObjectToDefaultObjectFix.kt +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.idea.quickfix - -import com.intellij.openapi.editor.Editor -import com.intellij.openapi.project.Project -import org.jetbrains.kotlin.diagnostics.Diagnostic -import org.jetbrains.kotlin.idea.JetBundle -import org.jetbrains.kotlin.idea.project.PluginJetFilesProvider -import org.jetbrains.kotlin.idea.quickfix.quickfixUtil.createIntentionFactory -import org.jetbrains.kotlin.lexer.JetTokens -import org.jetbrains.kotlin.psi.* -import java.util.ArrayList - -public class ClassObjectToCompanionObjectFix(private val elem: JetObjectDeclaration) : JetIntentionAction(elem) { - override fun getText(): String = JetBundle.message("migrate.class.object.to.companion") - - override fun getFamilyName(): String = JetBundle.message("migrate.class.object.to.companion.family") - - override fun invoke(project: Project, editor: Editor, file: JetFile) { - changeClassKeywordToCompanionModifier(elem) - } - - companion object Factory : JetSingleIntentionActionFactory() { - override fun createAction(diagnostic: Diagnostic) = - (diagnostic.getPsiElement() as? JetObjectDeclaration)?.let { ClassObjectToCompanionObjectFix(it) } - - public fun createWholeProjectFixFactory(): JetSingleIntentionActionFactory = createIntentionFactory { - JetWholeProjectForEachElementOfTypeFix.createByPredicate( - predicate = { it.getClassKeyword() != null }, - taskProcessor = { changeClassKeywordToCompanionModifier(it) }, - modalTitle = JetBundle.message("migrate.class.object.to.companion.in.whole.project.modal.title"), - name = JetBundle.message("migrate.class.object.to.companion.in.whole.project"), - familyName = JetBundle.message("migrate.class.object.to.companion.in.whole.project.family") - ) - } - - private fun changeClassKeywordToCompanionModifier(objectDeclaration: JetObjectDeclaration) { - objectDeclaration.getClassKeyword()?.delete() - if (!objectDeclaration.hasModifier(JetTokens.COMPANION_KEYWORD)) { - objectDeclaration.addModifier(JetTokens.COMPANION_KEYWORD) - } - } - } -} diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.java index 80aa6862468..c718dab8646 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.java +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.java @@ -308,8 +308,6 @@ public class QuickFixRegistrar { QuickFixes.factories.put(UNRESOLVED_REFERENCE, CreateClassFromReferenceExpressionActionFactory.INSTANCE$); QuickFixes.factories.put(UNRESOLVED_REFERENCE, CreateClassFromCallWithConstructorCalleeActionFactory.INSTANCE$); - QuickFixes.factories.put(DEPRECATED_CLASS_OBJECT_SYNTAX, ClassObjectToCompanionObjectFix.Factory); - QuickFixes.factories.put(DEPRECATED_CLASS_OBJECT_SYNTAX, ClassObjectToCompanionObjectFix.Factory.createWholeProjectFixFactory()); QuickFixes.factories.put(INIT_KEYWORD_BEFORE_CLASS_INITIALIZER_EXPECTED, AddInitKeywordFix.Factory); QuickFixes.factories.put(INIT_KEYWORD_BEFORE_CLASS_INITIALIZER_EXPECTED, AddInitKeywordFix.Factory.createWholeProjectFixFactory()); diff --git a/idea/testData/checker/DeprecatedClassObjectSyntax.kt b/idea/testData/checker/DeprecatedClassObjectSyntax.kt deleted file mode 100644 index 4a1a9e99361..00000000000 --- a/idea/testData/checker/DeprecatedClassObjectSyntax.kt +++ /dev/null @@ -1,17 +0,0 @@ -class A { - class object { - - } -} - -class B { - class object C { - - } -} - -class C { - companion class object G { - - } -} \ No newline at end of file diff --git a/idea/testData/quickfix/migration/afterClassObjectToDefaultSingle.kt b/idea/testData/quickfix/migration/afterClassObjectToDefaultSingle.kt deleted file mode 100644 index bdc24102abf..00000000000 --- a/idea/testData/quickfix/migration/afterClassObjectToDefaultSingle.kt +++ /dev/null @@ -1,7 +0,0 @@ -// "Replace 'class' keyword with 'companion' modifier" "true" - -class A { - public companion object { - - } -} \ No newline at end of file diff --git a/idea/testData/quickfix/migration/beforeClassObjectToDefaultSingle.kt b/idea/testData/quickfix/migration/beforeClassObjectToDefaultSingle.kt deleted file mode 100644 index 701d6265adc..00000000000 --- a/idea/testData/quickfix/migration/beforeClassObjectToDefaultSingle.kt +++ /dev/null @@ -1,7 +0,0 @@ -// "Replace 'class' keyword with 'companion' modifier" "true" - -class A { - public class object { - - } -} \ No newline at end of file diff --git a/idea/testData/quickfix/migration/classObjectToDefaultMultiple.after.data.Sample.kt b/idea/testData/quickfix/migration/classObjectToDefaultMultiple.after.data.Sample.kt deleted file mode 100644 index c4d526f1f10..00000000000 --- a/idea/testData/quickfix/migration/classObjectToDefaultMultiple.after.data.Sample.kt +++ /dev/null @@ -1,29 +0,0 @@ -class D { - companion public object Named { - - } -} - -trait H { - companion object { - - } -} - -class E { - companion object { - class D { - companion object { - class D { - companion object - } - } - } - } -} - -class K { - companion object Companion - - class Object -} \ No newline at end of file diff --git a/idea/testData/quickfix/migration/classObjectToDefaultMultiple.after.kt b/idea/testData/quickfix/migration/classObjectToDefaultMultiple.after.kt deleted file mode 100644 index 5a3ce4fbeae..00000000000 --- a/idea/testData/quickfix/migration/classObjectToDefaultMultiple.after.kt +++ /dev/null @@ -1,19 +0,0 @@ -// "Replace 'class' keyword with 'companion' modifier in whole project" "true" - -class A { - public companion object { - - } -} - -class B { - companion object { - - } -} - -class C { - companion object Named { - - } -} diff --git a/idea/testData/quickfix/migration/classObjectToDefaultMultiple.before.Main.kt b/idea/testData/quickfix/migration/classObjectToDefaultMultiple.before.Main.kt deleted file mode 100644 index e5454b16a70..00000000000 --- a/idea/testData/quickfix/migration/classObjectToDefaultMultiple.before.Main.kt +++ /dev/null @@ -1,19 +0,0 @@ -// "Replace 'class' keyword with 'companion' modifier in whole project" "true" - -class A { - public class object { - - } -} - -class B { - class object { - - } -} - -class C { - class object Named { - - } -} diff --git a/idea/testData/quickfix/migration/classObjectToDefaultMultiple.before.data.Sample.kt b/idea/testData/quickfix/migration/classObjectToDefaultMultiple.before.data.Sample.kt deleted file mode 100644 index 1915f0747ef..00000000000 --- a/idea/testData/quickfix/migration/classObjectToDefaultMultiple.before.data.Sample.kt +++ /dev/null @@ -1,29 +0,0 @@ -class D { - companion public class object Named { - - } -} - -trait H { - companion class object { - - } -} - -class E { - class object { - class D { - class object { - class D { - class object - } - } - } - } -} - -class K { - companion object Companion - - class Object -} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/checkers/JetPsiCheckerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/checkers/JetPsiCheckerTestGenerated.java index cc47d7027f0..54febaa28d0 100644 --- a/idea/tests/org/jetbrains/kotlin/checkers/JetPsiCheckerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/checkers/JetPsiCheckerTestGenerated.java @@ -127,12 +127,6 @@ public class JetPsiCheckerTestGenerated extends AbstractJetPsiCheckerTest { doTest(fileName); } - @TestMetadata("DeprecatedClassObjectSyntax.kt") - public void testDeprecatedClassObjectSyntax() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/checker/DeprecatedClassObjectSyntax.kt"); - doTest(fileName); - } - @TestMetadata("ExtensionFunctions.kt") public void testExtensionFunctions() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/checker/ExtensionFunctions.kt"); diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java index 8d601799049..a5d51dfb5a0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java @@ -858,12 +858,6 @@ public class QuickFixMultiFileTestGenerated extends AbstractQuickFixMultiFileTes JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/migration"), Pattern.compile("^(\\w+)\\.before\\.Main\\.kt$"), true); } - @TestMetadata("classObjectToDefaultMultiple.before.Main.kt") - public void testClassObjectToDefaultMultiple() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/classObjectToDefaultMultiple.before.Main.kt"); - doTestWithExtraFile(fileName); - } - @TestMetadata("idea/testData/quickfix/migration/lambdaSyntax") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index fa73483f75a..95b79b32c73 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -3022,12 +3022,6 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/migration"), Pattern.compile("^before(\\w+)\\.kt$"), true); } - @TestMetadata("beforeClassObjectToDefaultSingle.kt") - public void testClassObjectToDefaultSingle() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/beforeClassObjectToDefaultSingle.kt"); - doTest(fileName); - } - @TestMetadata("idea/testData/quickfix/migration/lambdaSyntax") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)