Data class must have at least one argument is reported on constructor parameter list now, if any #KT-9999 Fixed

This commit is contained in:
Mikhail Glukhikh
2015-11-13 18:12:42 +03:00
parent 86c37deaee
commit dd43674426
4 changed files with 14 additions and 2 deletions
@@ -41,7 +41,9 @@ public class DataClassAnnotationChecker : DeclarationChecker {
val primaryConstructor = declaration.getPrimaryConstructor()
val parameters = primaryConstructor?.valueParameters ?: emptyList()
if (parameters.isEmpty()) {
declaration.nameIdentifier?.let { diagnosticHolder.report(Errors.DATA_CLASS_WITHOUT_PARAMETERS.on(it)) }
(primaryConstructor?.valueParameterList ?: declaration.nameIdentifier)?.let {
diagnosticHolder.report(Errors.DATA_CLASS_WITHOUT_PARAMETERS.on(it))
}
}
for (parameter in parameters) {
if (parameter.isVarArg) {
@@ -1,4 +1,4 @@
data class <!DATA_CLASS_WITHOUT_PARAMETERS!>A<!>()
data class A<!DATA_CLASS_WITHOUT_PARAMETERS!>()<!>
fun foo(a: A) {
a.<!UNRESOLVED_REFERENCE!>component1<!>()
@@ -10,3 +10,5 @@ data class A2(val y: String, val z: Int) {
data class <!PRIMARY_CONSTRUCTOR_REQUIRED_FOR_DATA_CLASS, DATA_CLASS_WITHOUT_PARAMETERS!>A3<!> {
constructor()
}
data class A4 internal constructor<!DATA_CLASS_WITHOUT_PARAMETERS!>()<!>
@@ -30,3 +30,11 @@ public final data class A3 {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final data class A4 {
internal constructor A4()
public final /*synthesized*/ fun copy(): A4
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
}