Get rid of annotation syntax deprecation related things
This commit is contained in:
@@ -131,7 +131,6 @@ public interface Errors {
|
||||
DiagnosticFactory0<JetExpression> ANNOTATION_PARAMETER_MUST_BE_CLASS_LITERAL = DiagnosticFactory0.create(ERROR);
|
||||
DiagnosticFactory0<JetExpression> ANNOTATION_PARAMETER_MUST_BE_KCLASS_LITERAL = DiagnosticFactory0.create(ERROR);
|
||||
DiagnosticFactory0<JetExpression> ANNOTATION_PARAMETER_MUST_BE_ENUM_CONST = DiagnosticFactory0.create(ERROR);
|
||||
DiagnosticFactory0<JetAnnotation> DEPRECATED_ANNOTATION_SYNTAX = DiagnosticFactory0.create(WARNING);
|
||||
DiagnosticFactory0<JetExpression> ANNOTATION_PARAMETER_DEFAULT_VALUE_MUST_BE_CONSTANT = DiagnosticFactory0.create(ERROR);
|
||||
|
||||
// Classes and traits
|
||||
|
||||
-1
@@ -609,7 +609,6 @@ public class DefaultErrorMessages {
|
||||
MAP.put(ANNOTATION_PARAMETER_MUST_BE_ENUM_CONST, "An enum annotation parameter must be a enum constant");
|
||||
MAP.put(ANNOTATION_PARAMETER_MUST_BE_CLASS_LITERAL, "An annotation parameter must be a `javaClass<T>()` call");
|
||||
MAP.put(ANNOTATION_PARAMETER_MUST_BE_KCLASS_LITERAL, "An annotation parameter must be a class literal (T::class)");
|
||||
MAP.put(DEPRECATED_ANNOTATION_SYNTAX, "This syntax for annotations is deprecated. Use '@' before annotation identifier instead");
|
||||
MAP.put(ANNOTATION_PARAMETER_DEFAULT_VALUE_MUST_BE_CONSTANT, "Default value of annotation parameter must be a compile-time constant");
|
||||
|
||||
MAP.put(DEFAULT_VALUE_NOT_ALLOWED_IN_OVERRIDE, "An overriding function is not allowed to specify default values for its parameters");
|
||||
|
||||
@@ -17,9 +17,7 @@
|
||||
package org.jetbrains.kotlin.psi;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.lexer.JetTokens;
|
||||
import org.jetbrains.kotlin.psi.stubs.KotlinPlaceHolderStub;
|
||||
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes;
|
||||
|
||||
@@ -40,16 +38,7 @@ public class JetAnnotation extends JetElementImplStub<KotlinPlaceHolderStub<JetA
|
||||
return visitor.visitAnnotation(this, data);
|
||||
}
|
||||
|
||||
public boolean isDeprecated() {
|
||||
if (getStub() != null) return false;
|
||||
return findChildByType(JetTokens.AT) == null;
|
||||
}
|
||||
|
||||
public List<JetAnnotationEntry> getEntries() {
|
||||
return getStubOrPsiChildrenAsList(JetStubElementTypes.ANNOTATION_ENTRY);
|
||||
}
|
||||
|
||||
public boolean hasFileKeyword() {
|
||||
return findChildByType(JetTokens.FILE_KEYWORD) != null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,6 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.jetbrains.kotlin.diagnostics.Errors.DEPRECATED_ANNOTATION_SYNTAX;
|
||||
import static org.jetbrains.kotlin.diagnostics.Errors.NOT_AN_ANNOTATION_CLASS;
|
||||
import static org.jetbrains.kotlin.resolve.BindingContext.ANNOTATION_DESCRIPTOR_TO_PSI_ELEMENT;
|
||||
import static org.jetbrains.kotlin.types.TypeUtils.NO_EXPECTED_TYPE;
|
||||
@@ -133,7 +132,6 @@ public class AnnotationResolver {
|
||||
if (modifierList == null) {
|
||||
return Annotations.EMPTY;
|
||||
}
|
||||
reportDeprecatedAnnotationSyntax(modifierList.getAnnotations(), trace);
|
||||
|
||||
List<JetAnnotationEntry> annotationEntryElements = modifierList.getAnnotationEntries();
|
||||
|
||||
@@ -372,16 +370,4 @@ public class AnnotationResolver {
|
||||
trace.report(Errors.UNSUPPORTED.on(annotationEntry, "Annotations for type parameters are not supported yet"));
|
||||
}
|
||||
}
|
||||
|
||||
public static void reportDeprecatedAnnotationSyntax(@NotNull List<JetAnnotation> annotations, @NotNull BindingTrace trace) {
|
||||
for (JetAnnotation annotation : annotations) {
|
||||
reportDeprecatedAnnotationSyntax(annotation, trace);
|
||||
}
|
||||
}
|
||||
|
||||
public static void reportDeprecatedAnnotationSyntax(@NotNull JetAnnotation annotation, @NotNull BindingTrace trace) {
|
||||
if (annotation.isDeprecated()) {
|
||||
trace.report(DEPRECATED_ANNOTATION_SYNTAX.on(annotation));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,6 @@ public class DeclarationResolver {
|
||||
public fun resolveAnnotationsOnFiles(c: TopDownAnalysisContext, scopeProvider: FileScopeProvider) {
|
||||
val filesToScope = c.getFiles().keysToMap { scopeProvider.getFileScope(it) }
|
||||
for ((file, fileScope) in filesToScope) {
|
||||
AnnotationResolver.reportDeprecatedAnnotationSyntax(file.getAnnotations(), _trace)
|
||||
_annotationResolver.resolveAnnotationsWithArguments(fileScope, file.getAnnotationEntries(), _trace)
|
||||
_annotationResolver.resolveAnnotationsWithArguments(fileScope, file.getDanglingAnnotations(), _trace)
|
||||
}
|
||||
|
||||
@@ -236,7 +236,6 @@ public class DeclarationsChecker {
|
||||
}
|
||||
}
|
||||
private void checkObject(JetObjectDeclaration declaration, ClassDescriptor classDescriptor) {
|
||||
AnnotationResolver.reportDeprecatedAnnotationSyntax(declaration.getAnnotations(), trace);
|
||||
reportErrorIfHasIllegalModifier(declaration);
|
||||
if (declaration.isLocal() && !declaration.isCompanion() && !declaration.isObjectLiteral()) {
|
||||
trace.report(LOCAL_OBJECT_NOT_ALLOWED.on(declaration, classDescriptor));
|
||||
@@ -244,7 +243,6 @@ public class DeclarationsChecker {
|
||||
}
|
||||
|
||||
private void checkClass(BodiesResolveContext c, JetClass aClass, ClassDescriptorWithResolutionScopes classDescriptor) {
|
||||
AnnotationResolver.reportDeprecatedAnnotationSyntax(aClass.getAnnotations(), trace);
|
||||
checkOpenMembers(classDescriptor);
|
||||
checkTypeParameters(aClass);
|
||||
|
||||
|
||||
@@ -103,7 +103,6 @@ public class TypeResolver(
|
||||
}
|
||||
|
||||
private fun doResolvePossiblyBareType(c: TypeResolutionContext, typeReference: JetTypeReference): PossiblyBareType {
|
||||
AnnotationResolver.reportDeprecatedAnnotationSyntax(typeReference.getAnnotations(), c.trace);
|
||||
val annotations = annotationResolver.resolveAnnotationsWithoutArguments(c.scope, typeReference.getAnnotationEntries(), c.trace)
|
||||
|
||||
val typeElement = typeReference.getTypeElement()
|
||||
|
||||
-1
@@ -1508,7 +1508,6 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
||||
}
|
||||
|
||||
public JetTypeInfo visitAnnotatedExpression(JetAnnotatedExpression expression, ExpressionTypingContext context, boolean isStatement) {
|
||||
AnnotationResolver.reportDeprecatedAnnotationSyntax(expression.getAnnotations(), context.trace);
|
||||
components.annotationResolver.resolveAnnotationsWithArguments(
|
||||
context.scope, expression.getAnnotationEntries(), context.trace);
|
||||
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
<!DEPRECATED_ANNOTATION_SYNTAX!>[file: Ann]<!>
|
||||
@file:[Ann]
|
||||
annotation class Ann(val arg: Int = 1)
|
||||
|
||||
fun bar(block: () -> Int) = block()
|
||||
|
||||
data class Q(val x: Int, val y: Int)
|
||||
|
||||
fun bar2(): Array<Q> = null!!
|
||||
|
||||
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann Ann]<!> class A <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> constructor(<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> val prop: Int) {
|
||||
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> val x = 1
|
||||
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> fun foo(<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> x: Int) {
|
||||
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> class B
|
||||
|
||||
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> fun local() {}
|
||||
|
||||
2 + <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann Ann]<!> 2
|
||||
|
||||
for (<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> (a, <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> b) in bar2()) {}
|
||||
}
|
||||
|
||||
fun x(): <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> String {
|
||||
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> val x: <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> String = ""
|
||||
|
||||
val localVal = <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> object {}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
||||
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> object O1 {}
|
||||
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> companion object O2 {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> object O3 {}
|
||||
|
||||
val y: Array<[<!DEBUG_INFO_MISSING_UNRESOLVED!>Ann<!>] String?> = arrayOfNulls(1)
|
||||
val block: ([<!DEBUG_INFO_MISSING_UNRESOLVED!>Ann<!>] x: <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> String) -> <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> String = { "" }
|
||||
interface B
|
||||
interface D : <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> B
|
||||
|
||||
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!><!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> 1<!>) class MyClass
|
||||
@@ -1,77 +0,0 @@
|
||||
package
|
||||
|
||||
internal val block: (@[Ann()] kotlin.String) -> @[Ann()] kotlin.String
|
||||
internal val y: kotlin.Array<kotlin.String?>
|
||||
internal fun bar(/*0*/ block: () -> kotlin.Int): kotlin.Int
|
||||
internal fun bar2(): kotlin.Array<Q>
|
||||
|
||||
Ann() Ann() internal final class A {
|
||||
Ann() public constructor A(/*0*/ Ann() prop: kotlin.Int)
|
||||
Ann() internal final val prop: kotlin.Int
|
||||
Ann() internal final val x: kotlin.Int = 1
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
Ann() internal final fun foo(/*0*/ Ann() x: kotlin.Int): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
internal final fun x(): @[Ann()] kotlin.String
|
||||
|
||||
Ann() internal object O1 {
|
||||
private constructor O1()
|
||||
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
|
||||
}
|
||||
|
||||
Ann() public companion object O2 {
|
||||
private constructor O2()
|
||||
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 annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann(/*0*/ arg: kotlin.Int = ...)
|
||||
internal final val arg: kotlin.Int
|
||||
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 interface 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 interface D : @[Ann()] 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
|
||||
}
|
||||
|
||||
Ann() internal final class MyClass {
|
||||
public constructor MyClass()
|
||||
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
|
||||
}
|
||||
|
||||
Ann() internal object O3 {
|
||||
private constructor O3()
|
||||
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
|
||||
}
|
||||
|
||||
kotlin.data() internal final class Q {
|
||||
public constructor Q(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int)
|
||||
internal final val x: kotlin.Int
|
||||
internal final val y: kotlin.Int
|
||||
internal final /*synthesized*/ fun component1(): kotlin.Int
|
||||
internal final /*synthesized*/ fun component2(): kotlin.Int
|
||||
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ..., /*1*/ y: kotlin.Int = ...): Q
|
||||
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
|
||||
}
|
||||
@@ -711,12 +711,6 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("bracketsDeprecation.kt")
|
||||
public void testBracketsDeprecation() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/bracketsDeprecation.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("ConstructorCall.kt")
|
||||
public void testConstructorCall() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/ConstructorCall.kt");
|
||||
|
||||
@@ -82,7 +82,6 @@ public class KotlinCleanupInspection(): LocalInspectionTool(), CleanupLocalInspe
|
||||
|
||||
private val cleanupDiagnosticsFactories = setOf(
|
||||
Errors.DEPRECATED_TRAIT_KEYWORD,
|
||||
Errors.DEPRECATED_ANNOTATION_SYNTAX,
|
||||
Errors.ENUM_ENTRY_USES_DEPRECATED_OR_NO_DELIMITER,
|
||||
Errors.ENUM_ENTRY_USES_DEPRECATED_SUPER_CONSTRUCTOR,
|
||||
Errors.DEPRECATED_LAMBDA_SYNTAX,
|
||||
|
||||
@@ -1,82 +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.codeInsight.intention.IntentionAction
|
||||
import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiWhiteSpace
|
||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||
import org.jetbrains.kotlin.idea.quickfix.quickfixUtil.addConstructorKeyword
|
||||
import org.jetbrains.kotlin.idea.quickfix.quickfixUtil.createIntentionFactory
|
||||
import org.jetbrains.kotlin.idea.quickfix.quickfixUtil.createIntentionForFirstParentOfType
|
||||
import org.jetbrains.kotlin.psi.JetAnnotation
|
||||
import org.jetbrains.kotlin.psi.JetFile
|
||||
import org.jetbrains.kotlin.psi.JetPrimaryConstructor
|
||||
import org.jetbrains.kotlin.psi.JetPsiFactory
|
||||
|
||||
public class DeprecatedAnnotationSyntaxFix(element: JetAnnotation) : JetIntentionAction<JetAnnotation>(element), CleanupFix {
|
||||
override fun getFamilyName(): String = "Replace with '@' annotations"
|
||||
override fun getText(): String = "Replace with '@' annotations"
|
||||
|
||||
override fun invoke(project: Project, editor: Editor?, file: JetFile?) = replaceWithAtAnnotationEntries(element)
|
||||
|
||||
companion object : JetSingleIntentionActionFactory() {
|
||||
override fun createAction(diagnostic: Diagnostic): IntentionAction? =
|
||||
diagnostic.createIntentionForFirstParentOfType(::DeprecatedAnnotationSyntaxFix)
|
||||
|
||||
public fun createWholeProjectFixFactory(): JetSingleIntentionActionFactory = createIntentionFactory {
|
||||
JetWholeProjectForEachElementOfTypeFix.createByPredicate<JetAnnotation>(
|
||||
predicate = { it.isDeprecated() },
|
||||
taskProcessor = { replaceWithAtAnnotationEntries(it) },
|
||||
name = "Replace with '@' annotations in whole project"
|
||||
)
|
||||
}
|
||||
|
||||
private fun replaceWithAtAnnotationEntries(annotation: JetAnnotation) {
|
||||
val psiFactory = JetPsiFactory(annotation)
|
||||
|
||||
val hasFileKeyword = annotation.hasFileKeyword()
|
||||
|
||||
val parent = annotation.getParent()
|
||||
val owner = parent.getParent()
|
||||
var prevElement: PsiElement = annotation
|
||||
|
||||
for (entry in annotation.getEntries()) {
|
||||
val newEntry = if (hasFileKeyword) createFileAnnotationEntry(psiFactory, entry.getText())
|
||||
else psiFactory.createAnnotationEntry("@" + entry.getText())
|
||||
val added = parent.addAfter(newEntry, prevElement)
|
||||
|
||||
if (prevElement != annotation) {
|
||||
parent.addBefore(psiFactory.createWhiteSpace(), added)
|
||||
}
|
||||
|
||||
prevElement = added
|
||||
}
|
||||
|
||||
if (owner is JetPrimaryConstructor) {
|
||||
owner.addConstructorKeyword()
|
||||
}
|
||||
|
||||
annotation.delete()
|
||||
}
|
||||
|
||||
private fun createFileAnnotationEntry(psiFactory: JetPsiFactory, text: String) =
|
||||
psiFactory.createFile("@file:$text").getAnnotationEntries().first()
|
||||
}
|
||||
}
|
||||
@@ -325,9 +325,6 @@ public class QuickFixRegistrar {
|
||||
QuickFixes.factories.put(JAVA_LANG_CLASS_PARAMETER_IN_ANNOTATION, ReplaceJavaClassAsAnnotationParameterFix.Companion);
|
||||
QuickFixes.factories.put(JAVA_LANG_CLASS_PARAMETER_IN_ANNOTATION, ReplaceJavaClassAsAnnotationParameterFix.Companion.createWholeProjectFixFactory());
|
||||
|
||||
QuickFixes.factories.put(DEPRECATED_ANNOTATION_SYNTAX, DeprecatedAnnotationSyntaxFix.Companion);
|
||||
QuickFixes.factories.put(DEPRECATED_ANNOTATION_SYNTAX, DeprecatedAnnotationSyntaxFix.Companion.createWholeProjectFixFactory());
|
||||
|
||||
QuickFixes.factories.put(ENUM_ENTRY_USES_DEPRECATED_SUPER_CONSTRUCTOR, DeprecatedEnumEntrySuperConstructorSyntaxFix.Companion);
|
||||
QuickFixes.factories.put(ENUM_ENTRY_USES_DEPRECATED_SUPER_CONSTRUCTOR, DeprecatedEnumEntrySuperConstructorSyntaxFix.Companion.createWholeProjectFixFactory());
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
trait Foo {
|
||||
}
|
||||
|
||||
|
||||
[deprecated("boo")] fun bar() {}
|
||||
|
||||
enum class E {
|
||||
First Second
|
||||
}
|
||||
|
||||
@@ -3,9 +3,6 @@ import kotlin.reflect.KClass
|
||||
interface Foo {
|
||||
}
|
||||
|
||||
|
||||
@deprecated("boo") fun bar() {}
|
||||
|
||||
enum class E {
|
||||
First, Second
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
// "Replace with '@' annotations" "true"
|
||||
|
||||
annotation class Ann(val x: Int = 1)
|
||||
|
||||
[Ann Ann(2)]<caret> class MyClass
|
||||
@@ -1,5 +0,0 @@
|
||||
// "Replace with '@' annotations" "true"
|
||||
|
||||
annotation class Ann(val x: Int = 1)
|
||||
|
||||
@Ann @Ann(2) class MyClass
|
||||
Vendored
-3
@@ -1,3 +0,0 @@
|
||||
@file:Ann
|
||||
|
||||
@Ann class B @Ann(1) constructor()
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
// "Replace with '@' annotations in whole project" "true"
|
||||
|
||||
annotation class Ann(val x: Int = 1)
|
||||
|
||||
@Ann @Ann(2) class MyClass {
|
||||
@Ann(3) @Ann /* abc */fun foo(x: @Ann Int) {
|
||||
@Ann class Local {
|
||||
@Ann init {}
|
||||
|
||||
private @Ann @Ann(4) fun foo() {}
|
||||
}
|
||||
|
||||
@Ann var x = 1
|
||||
|
||||
1+ @Ann(5) 2
|
||||
|
||||
3+ @Ann(55)4
|
||||
|
||||
5+ @Ann @Ann(6)/* cde */7
|
||||
|
||||
label@@Ann(7) @Ann for (i in 1..100) {}
|
||||
}
|
||||
}
|
||||
@Ann(1) @Ann
|
||||
class Q1
|
||||
|
||||
@Ann(2)
|
||||
|
||||
@Ann(3)
|
||||
|
||||
fun bar() {}
|
||||
Vendored
-3
@@ -1,3 +0,0 @@
|
||||
[file: Ann]
|
||||
|
||||
[Ann] class B [Ann(1)]()
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
// "Replace with '@' annotations in whole project" "true"
|
||||
|
||||
annotation class Ann(val x: Int = 1)
|
||||
|
||||
[Ann Ann(2)]<caret> class MyClass {
|
||||
[Ann(3) Ann]/* abc */fun foo(x: [Ann] Int) {
|
||||
[Ann] class Local {
|
||||
[Ann] init {}
|
||||
|
||||
private[Ann Ann(4)]fun foo() {}
|
||||
}
|
||||
|
||||
[Ann]var x = 1
|
||||
|
||||
1+[Ann(5)] 2
|
||||
|
||||
3+[Ann(55)]4
|
||||
|
||||
5+[Ann Ann(6)]/* cde */7
|
||||
|
||||
label@[Ann(7) Ann] for (i in 1..100) {}
|
||||
}
|
||||
}
|
||||
[Ann(1) Ann]
|
||||
class Q1
|
||||
|
||||
[Ann(2)]
|
||||
|
||||
[Ann(3)]
|
||||
|
||||
fun bar() {}
|
||||
@@ -948,21 +948,6 @@ public class QuickFixMultiFileTestGenerated extends AbstractQuickFixMultiFileTes
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/migration"), Pattern.compile("^(\\w+)\\.before\\.Main\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/quickfix/migration/bracketsAnnotations")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class BracketsAnnotations extends AbstractQuickFixMultiFileTest {
|
||||
public void testAllFilesPresentInBracketsAnnotations() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/migration/bracketsAnnotations"), Pattern.compile("^(\\w+)\\.before\\.Main\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("manyFilesMuitliple.before.Main.kt")
|
||||
public void testManyFilesMuitliple() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/bracketsAnnotations/manyFilesMuitliple.before.Main.kt");
|
||||
doTestWithExtraFile(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/quickfix/migration/javaAnnotationPositionedArguments")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
|
||||
@@ -3824,21 +3824,6 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/migration"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/quickfix/migration/bracketsAnnotations")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class BracketsAnnotations extends AbstractQuickFixTest {
|
||||
public void testAllFilesPresentInBracketsAnnotations() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/migration/bracketsAnnotations"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("basic.kt")
|
||||
public void testBasic() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/bracketsAnnotations/basic.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/quickfix/migration/enumConstructor")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
|
||||
Reference in New Issue
Block a user