Check absence of explicit initializer in field annotation
This commit is contained in:
+18
-5
@@ -70,11 +70,7 @@ public class AlternativeFieldSignatureData extends ElementAlternativeSignatureDa
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void checkFieldAnnotation(JetProperty altProperty, PsiFieldWrapper fieldWrapper, boolean isVar) {
|
private static void checkFieldAnnotation(JetProperty altProperty, PsiFieldWrapper fieldWrapper, boolean isVar) {
|
||||||
PsiClass containingClass = fieldWrapper.getPsiField().getContainingClass();
|
String fieldLink = getFieldQualifiedName(fieldWrapper);
|
||||||
String fieldLink = containingClass != null ?
|
|
||||||
String.format("%s.%s", containingClass.getQualifiedName(), fieldWrapper.getName()) :
|
|
||||||
fieldWrapper.getName();
|
|
||||||
assert (fieldLink != null);
|
|
||||||
|
|
||||||
if (!ComparatorUtil.equalsNullable(fieldWrapper.getName(), altProperty.getName())) {
|
if (!ComparatorUtil.equalsNullable(fieldWrapper.getName(), altProperty.getName())) {
|
||||||
throw new AlternativeSignatureMismatchException(
|
throw new AlternativeSignatureMismatchException(
|
||||||
@@ -99,5 +95,22 @@ public class AlternativeFieldSignatureData extends ElementAlternativeSignatureDa
|
|||||||
"Wrong mutability in annotation for field '%s'",
|
"Wrong mutability in annotation for field '%s'",
|
||||||
fieldLink);
|
fieldLink);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (altProperty.getInitializer() != null) {
|
||||||
|
throw new AlternativeSignatureMismatchException(
|
||||||
|
"Default value is not expected in annotation for field '%s'",
|
||||||
|
fieldLink);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private static String getFieldQualifiedName(PsiFieldWrapper fieldWrapper) {
|
||||||
|
PsiClass containingClass = fieldWrapper.getPsiField().getContainingClass();
|
||||||
|
String fieldLink = containingClass != null ?
|
||||||
|
String.format("%s.%s", containingClass.getQualifiedName(), fieldWrapper.getName()) :
|
||||||
|
fieldWrapper.getName();
|
||||||
|
assert (fieldLink != null);
|
||||||
|
|
||||||
|
return fieldLink;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package test;
|
||||||
|
|
||||||
|
import jet.runtime.typeinfo.KotlinSignature;
|
||||||
|
|
||||||
|
import java.lang.String;
|
||||||
|
|
||||||
|
public class WrongFieldInitializer {
|
||||||
|
@KotlinSignature("var foo : String = \"Test\"")
|
||||||
|
public String foo;
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package test
|
||||||
|
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
public open class WrongFieldInitializer : Object() {
|
||||||
|
public var foo : String? = ""
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
namespace test
|
||||||
|
|
||||||
|
public open class test.WrongFieldInitializer : java.lang.Object {
|
||||||
|
public final /*constructor*/ fun <init>(): test.WrongFieldInitializer
|
||||||
|
public final var foo: jet.String?
|
||||||
|
}
|
||||||
@@ -353,6 +353,11 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest {
|
|||||||
doTest("compiler/testData/loadJava/kotlinSignature/error/VarargReplacedWithNotVararg.java");
|
doTest("compiler/testData/loadJava/kotlinSignature/error/VarargReplacedWithNotVararg.java");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("WrongFieldInitializer.java")
|
||||||
|
public void testWrongFieldInitializer() throws Exception {
|
||||||
|
doTest("compiler/testData/loadJava/kotlinSignature/error/WrongFieldInitializer.java");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("WrongFieldMutability.java")
|
@TestMetadata("WrongFieldMutability.java")
|
||||||
public void testWrongFieldMutability() throws Exception {
|
public void testWrongFieldMutability() throws Exception {
|
||||||
doTest("compiler/testData/loadJava/kotlinSignature/error/WrongFieldMutability.java");
|
doTest("compiler/testData/loadJava/kotlinSignature/error/WrongFieldMutability.java");
|
||||||
|
|||||||
+8
-1
@@ -1190,7 +1190,9 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInError() throws Exception {
|
public void testAllFilesPresentInError() throws Exception {
|
||||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.lang.resolve.lazy.AbstractLazyResolveNamespaceComparingTest", new File("compiler/testData/loadJava/kotlinSignature/error"), "kt", true);
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(),
|
||||||
|
"org.jetbrains.jet.lang.resolve.lazy.AbstractLazyResolveNamespaceComparingTest",
|
||||||
|
new File("compiler/testData/loadJava/kotlinSignature/error"), "kt", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("ExplicitFieldGettersAndSetters.kt")
|
@TestMetadata("ExplicitFieldGettersAndSetters.kt")
|
||||||
@@ -1238,6 +1240,11 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso
|
|||||||
doTestSinglePackage("compiler/testData/loadJava/kotlinSignature/error/VarargReplacedWithNotVararg.kt");
|
doTestSinglePackage("compiler/testData/loadJava/kotlinSignature/error/VarargReplacedWithNotVararg.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("WrongFieldInitializer.kt")
|
||||||
|
public void testWrongFieldInitializer() throws Exception {
|
||||||
|
doTestSinglePackage("compiler/testData/loadJava/kotlinSignature/error/WrongFieldInitializer.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("WrongFieldMutability.kt")
|
@TestMetadata("WrongFieldMutability.kt")
|
||||||
public void testWrongFieldMutability() throws Exception {
|
public void testWrongFieldMutability() throws Exception {
|
||||||
doTestSinglePackage("compiler/testData/loadJava/kotlinSignature/error/WrongFieldMutability.kt");
|
doTestSinglePackage("compiler/testData/loadJava/kotlinSignature/error/WrongFieldMutability.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user