[Lombok] Convert tests with compilation errors to diagnostic tests

This commit is contained in:
Dmitriy Novozhilov
2022-05-27 10:53:01 +03:00
committed by teamcity
parent fb57e1ecd5
commit 430ea414a9
42 changed files with 413 additions and 199 deletions
@@ -7,7 +7,6 @@ import lombok.experimental.*;
@Setter
@Accessors(prefix = { "f", "field" })
public class AccessorsTest {
// @Accessors
private int age = 10;
private int fTarget = 42;
private String fieldValue;
@@ -22,9 +21,6 @@ public class AccessorsTest {
{
val obj = new AccessorsTest ();
// obj.getAge();
// obj.setAge(123);
obj.getTarget();
obj.setTarget(34);
@@ -49,9 +45,6 @@ public class AccessorsTest {
fun box(): String {
val obj = AccessorsTest()
// obj.getAge()
// obj.setAge(123)
obj.getTarget()
obj.setTarget(34)
@@ -5,7 +5,6 @@ import lombok.experimental.*;
@Getter @Setter
public class AccessorsTest {
// @Accessors
private int age = 10;
private int fTarget = 42;
private String fieldValue;
@@ -19,9 +18,6 @@ public class AccessorsTest {
static void test() {
val obj = new AccessorsTest();
// obj.getAge();
// obj.setAge(123);
obj.getTarget();
obj.setTarget(34);
@@ -46,9 +42,6 @@ public class AccessorsTest {
fun box(): String {
val obj = AccessorsTest()
// obj.getAge()
// obj.setAge(123)
obj.getTarget()
obj.setTarget(34)
@@ -29,4 +29,4 @@ fun box(): String {
// FILE: lombok.config
lombok.accessors.fluent=true
//lombok.accessors.chain=false
#lombok.accessors.chain=false
@@ -1,4 +1,4 @@
//KT-47455
// KT-47455
// FILE: ParentClass.java
public abstract class ParentClass {
@@ -1,4 +1,5 @@
//KT-46529
// FIR_IDENTICAL
// KT-46529
// FILE: PrefixJava.java
@@ -15,13 +16,12 @@ public class PrefixJava {
// FILE: test.kt
fun box(): String {
fun test() {
//not generated because doesn't have prefix from class level @Accessors
//assertEquals(PrefixJava().propA, "A")
assertEquals(PrefixJava().<!UNRESOLVED_REFERENCE!>propA<!>, "A")
//not generated because doesn't have prefix from config
//assertEquals(PrefixJava().propC, "C")
assertEquals(PrefixJava().<!UNRESOLVED_REFERENCE!>propC<!>, "C")
assertEquals(PrefixJava().propD, "D")
return "OK"
}
// FILE: lombok.config
@@ -0,0 +1,16 @@
package
public fun </*0*/ T> assertEquals(/*0*/ a: T, /*1*/ b: T): kotlin.Unit
public fun test(): kotlin.Unit
@lombok.Getter @lombok.Setter @lombok.experimental.Accessors(chain = false, fluent = true, prefix = {"pxo"}) public open class PrefixJava {
public constructor PrefixJava()
private final var pxaPropA: kotlin.String!
@lombok.experimental.Accessors private final var pxaPropD: kotlin.String!
@lombok.experimental.Accessors(chain = true) private final var pxoPropC: kotlin.String!
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open /*synthesized*/ fun getPropD(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open /*synthesized*/ fun setPropD(/*0*/ pxaPropD: kotlin.String!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,4 +1,4 @@
// IGNORE_ERRORS
// FIR_IDENTICAL
// FILE: Anno.java
import java.lang.*;
+21
View File
@@ -0,0 +1,21 @@
package
public fun </*0*/ T> assertEquals(/*0*/ a: T, /*1*/ b: T): kotlin.Unit
@Anno public fun box(): kotlin.String
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.FILE}) @kotlin.annotation.Retention(value = AnnotationRetention.SOURCE) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String = ...)
public final val value: kotlin.String
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
}
public open class Foo {
public constructor Foo()
private final var age: kotlin.Int!
private final var name: kotlin.String!
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
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: SuperClass.java
import lombok.*;
@@ -79,13 +80,13 @@ class KotlinChildClass : ClashTest() {
}
fun box(): String {
fun test() {
val obj = ClashTest()
obj.getAge()
//thats shouldn't work because lombok doesn't generate clashing method
// obj.setAge(41)
// obj.age = 12
obj.setAge(<!CONSTANT_EXPECTED_TYPE_MISMATCH!>41<!>)
<!VAL_REASSIGNMENT!>obj.age<!> = 12
val age = obj.age
@@ -105,5 +106,4 @@ fun box(): String {
childObj.setToOverride(34)
childObj.toOverride
childObj.toOverride = 412
return "OK"
}
+78
View File
@@ -0,0 +1,78 @@
package
public fun </*0*/ T> assertEquals(/*0*/ a: T, /*1*/ b: T): kotlin.Unit
public fun test(): kotlin.Unit
public open class ChildClass : ClashTest {
public constructor ChildClass()
invisible_fake final override /*1*/ /*fake_override*/ var age: kotlin.Int
invisible_fake final override /*1*/ /*fake_override*/ var human: kotlin.Boolean
invisible_fake final override /*1*/ /*fake_override*/ var name: kotlin.String!
invisible_fake final override /*1*/ /*fake_override*/ var toOverride: kotlin.Int!
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun getAge(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun getName(): kotlin.String!
@java.lang.Override public open override /*1*/ fun getToOverride(): kotlin.Int!
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isHuman(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun isHuman(/*0*/ arg: kotlin.String!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun setAge(/*0*/ age: kotlin.String!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun setHuman(/*0*/ human: kotlin.Boolean): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun setName(/*0*/ name: kotlin.String!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun setToOverride(/*0*/ toOverride: kotlin.Int!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public/*package*/ open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
}
@lombok.Getter @lombok.Setter public open class ClashTest : SuperClass {
public constructor ClashTest()
private final var age: kotlin.Int
private final var human: kotlin.Boolean
private final var name: kotlin.String!
private final var toOverride: kotlin.Int!
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open fun getAge(): kotlin.Int
public open /*synthesized*/ fun getName(): kotlin.String!
public open /*synthesized*/ fun getToOverride(): kotlin.Int!
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open /*synthesized*/ fun isHuman(): kotlin.Boolean
public open fun isHuman(/*0*/ arg: kotlin.String!): kotlin.Boolean
public open fun setAge(/*0*/ age: kotlin.String!): kotlin.Unit
public open /*synthesized*/ fun setHuman(/*0*/ human: kotlin.Boolean): kotlin.Unit
public open override /*1*/ /*synthesized*/ fun setName(/*0*/ name: kotlin.String!): kotlin.Unit
public open /*synthesized*/ fun setToOverride(/*0*/ toOverride: kotlin.Int!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public/*package*/ open fun test(): kotlin.Unit
}
public final class KotlinChildClass : ClashTest {
public constructor KotlinChildClass()
invisible_fake final override /*1*/ /*fake_override*/ var age: kotlin.Int
invisible_fake final override /*1*/ /*fake_override*/ var human: kotlin.Boolean
invisible_fake final override /*1*/ /*fake_override*/ var name: kotlin.String!
invisible_fake final override /*1*/ /*fake_override*/ var toOverride: kotlin.Int!
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun getAge(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun getName(): kotlin.String!
public open override /*1*/ fun getToOverride(): kotlin.Int?
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isHuman(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun isHuman(/*0*/ arg: kotlin.String!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun setAge(/*0*/ age: kotlin.String!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun setHuman(/*0*/ human: kotlin.Boolean): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun setName(/*0*/ name: kotlin.String!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun setToOverride(/*0*/ toOverride: kotlin.Int!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public open class SuperClass {
public constructor SuperClass()
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 fun setName(/*0*/ name: kotlin.String!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: GetterTest.java
import lombok.AccessLevel;
@@ -25,25 +26,24 @@ public class GetterTest {
// FILE: test.kt
fun box(): String {
fun test() {
val obj = GetterTest()
val getter = obj.getAge()
val property = obj.age
//todo kotlin doesn't seee isBoolean methods as property
// obj.primitiveBoolean
obj.<!INVISIBLE_MEMBER!>primitiveBoolean<!>
obj.isPrimitiveBoolean()
obj.boxedBoolean
obj.getBoxedBoolean()
//shouldn't be accesible from here
// obj.getName()
obj.<!INVISIBLE_MEMBER!>getName<!>()
// obj.getInvisible()
obj.<!UNRESOLVED_REFERENCE!>getInvisible<!>()
OverridenGetterTest().usage()
return "OK"
}
class OverridenGetterTest : GetterTest() {
+39
View File
@@ -0,0 +1,39 @@
package
public fun </*0*/ T> assertEquals(/*0*/ a: T, /*1*/ b: T): kotlin.Unit
public fun test(): kotlin.Unit
public open class GetterTest {
public constructor GetterTest()
@lombok.Getter private final var age: kotlin.Int
@lombok.Getter private final var boxedBoolean: kotlin.Boolean!
@lombok.Getter(value = AccessLevel.NONE) private final var invisible: kotlin.Boolean!
@lombok.Getter(value = AccessLevel.PROTECTED) private final var name: kotlin.String!
@lombok.Getter private final var primitiveBoolean: kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open /*synthesized*/ fun getAge(): kotlin.Int
public open /*synthesized*/ fun getBoxedBoolean(): kotlin.Boolean!
protected open /*synthesized*/ fun getName(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open /*synthesized*/ fun isPrimitiveBoolean(): kotlin.Boolean
public/*package*/ open fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class OverridenGetterTest : GetterTest {
public constructor OverridenGetterTest()
@lombok.Getter invisible_fake final override /*1*/ /*fake_override*/ var age: kotlin.Int
@lombok.Getter invisible_fake final override /*1*/ /*fake_override*/ var boxedBoolean: kotlin.Boolean!
@lombok.Getter(value = AccessLevel.NONE) invisible_fake final override /*1*/ /*fake_override*/ var invisible: kotlin.Boolean!
@lombok.Getter(value = AccessLevel.PROTECTED) invisible_fake final override /*1*/ /*fake_override*/ var name: kotlin.String!
@lombok.Getter invisible_fake final override /*1*/ /*fake_override*/ var primitiveBoolean: kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun getAge(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun getBoxedBoolean(): kotlin.Boolean!
protected open override /*1*/ /*fake_override*/ fun getName(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isPrimitiveBoolean(): kotlin.Boolean
public/*package*/ open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun usage(): kotlin.Unit
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: ClassLevelGetterTest.java
import lombok.AccessLevel;
@@ -23,7 +24,7 @@ public class ClassLevelGetterTest {
// FILE: test.kt
fun box(): String {
fun test() {
val obj = ClassLevelGetterTest()
val getter = obj.getAge()
val property = obj.age
@@ -34,10 +35,9 @@ fun box(): String {
obj.getBoxedBoolean()
//shouldn't be accesible from here
// obj.getName()
obj.<!INVISIBLE_MEMBER!>getName<!>()
OverridenGetterTest().usage()
return "OK"
}
class OverridenGetterTest : ClassLevelGetterTest() {
@@ -0,0 +1,37 @@
package
public fun </*0*/ T> assertEquals(/*0*/ a: T, /*1*/ b: T): kotlin.Unit
public fun test(): kotlin.Unit
@lombok.Getter public open class ClassLevelGetterTest {
public constructor ClassLevelGetterTest()
private final var age: kotlin.Int
private final var boxedBoolean: kotlin.Boolean!
@lombok.Getter(value = AccessLevel.PROTECTED) private final var name: kotlin.String!
private final var primitiveBoolean: kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open /*synthesized*/ fun getAge(): kotlin.Int
public open /*synthesized*/ fun getBoxedBoolean(): kotlin.Boolean!
protected open /*synthesized*/ fun getName(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open /*synthesized*/ fun isPrimitiveBoolean(): kotlin.Boolean
public/*package*/ open fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class OverridenGetterTest : ClassLevelGetterTest {
public constructor OverridenGetterTest()
invisible_fake final override /*1*/ /*fake_override*/ var age: kotlin.Int
invisible_fake final override /*1*/ /*fake_override*/ var boxedBoolean: kotlin.Boolean!
@lombok.Getter(value = AccessLevel.PROTECTED) invisible_fake final override /*1*/ /*fake_override*/ var name: kotlin.String!
invisible_fake final override /*1*/ /*fake_override*/ var primitiveBoolean: kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun getAge(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun getBoxedBoolean(): kotlin.Boolean!
protected open override /*1*/ /*fake_override*/ fun getName(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isPrimitiveBoolean(): kotlin.Boolean
public/*package*/ open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun usage(): kotlin.Unit
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: SetterTest.java
import lombok.AccessLevel;
@@ -20,20 +21,19 @@ public class SetterTest {
// FILE: test.kt
fun box(): String {
fun test() {
val obj = SetterTest()
obj.setAge(42)
obj.age = 42
//synthetic property generated only when there is a getter
// obj.primitiveBoolean = false
obj.<!INVISIBLE_MEMBER!>primitiveBoolean<!> = false
obj.setPrimitiveBoolean(true)
//shouldn't be accesible from here
// obj.setName("abc")
obj.<!INVISIBLE_MEMBER!>setName<!>("abc")
OverridenGetterTest().usage()
return "OK"
}
class OverridenGetterTest : SetterTest() {
+35
View File
@@ -0,0 +1,35 @@
package
public fun </*0*/ T> assertEquals(/*0*/ a: T, /*1*/ b: T): kotlin.Unit
public fun test(): kotlin.Unit
public final class OverridenGetterTest : SetterTest {
public constructor OverridenGetterTest()
@lombok.Getter @lombok.Setter invisible_fake final override /*1*/ /*fake_override*/ var age: kotlin.Int
@lombok.Setter(value = AccessLevel.PROTECTED) invisible_fake final override /*1*/ /*fake_override*/ var name: kotlin.String!
@lombok.Setter invisible_fake final override /*1*/ /*fake_override*/ var primitiveBoolean: kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun getAge(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun setAge(/*0*/ age: kotlin.Int): kotlin.Unit
protected open override /*1*/ /*fake_override*/ fun setName(/*0*/ name: kotlin.String!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun setPrimitiveBoolean(/*0*/ primitiveBoolean: kotlin.Boolean): kotlin.Unit
public/*package*/ open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun usage(): kotlin.Unit
}
public open class SetterTest {
public constructor SetterTest()
@lombok.Getter @lombok.Setter private final var age: kotlin.Int
@lombok.Setter(value = AccessLevel.PROTECTED) private final var name: kotlin.String!
@lombok.Setter private final var primitiveBoolean: kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open /*synthesized*/ fun getAge(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open /*synthesized*/ fun setAge(/*0*/ age: kotlin.Int): kotlin.Unit
protected open /*synthesized*/ fun setName(/*0*/ name: kotlin.String!): kotlin.Unit
public open /*synthesized*/ fun setPrimitiveBoolean(/*0*/ primitiveBoolean: kotlin.Boolean): kotlin.Unit
public/*package*/ open fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: SetterTest.java
import lombok.AccessLevel;
@@ -23,7 +24,7 @@ public class SetterTest {
// FILE: test.kt
fun box(): String {
fun test() {
val obj = SetterTest()
obj.setAge(42)
assertEquals(obj.age, 42)
@@ -33,7 +34,6 @@ fun box(): String {
obj.setPrimitiveBoolean(true)
// no setters generated for final variable
// obj.setFinalName("error")
return "OK"
obj.<!UNRESOLVED_REFERENCE!>setFinalName<!>("error")
}
@@ -0,0 +1,20 @@
package
public fun </*0*/ T> assertEquals(/*0*/ a: T, /*1*/ b: T): kotlin.Unit
public fun test(): kotlin.Unit
@lombok.Getter @lombok.Setter public open class SetterTest {
public constructor SetterTest()
private final var age: kotlin.Int
private final val finalName: kotlin.String! = "zzz"
private final var primitiveBoolean: kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open /*synthesized*/ fun getAge(): kotlin.Int
public open /*synthesized*/ fun getFinalName(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open /*synthesized*/ fun isPrimitiveBoolean(): kotlin.Boolean
public open /*synthesized*/ fun setAge(/*0*/ age: kotlin.Int): kotlin.Unit
public open /*synthesized*/ fun setPrimitiveBoolean(/*0*/ primitiveBoolean: kotlin.Boolean): kotlin.Unit
public/*package*/ open fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}