Unable to access field for data class
william-reed opened this issue · 1 comments
william-reed commented
Issue Summary
When trying to use a kotlin data class, I am unable to generate the convertors.
For example using the class
@UseStag
data class Foo(
val name: String,
val occupation: String
)
Gives the error
error: Unable to access field "name" in class com.company.Foo, field must not be final.
private final java.lang.String name = null;
The generated class for this data class looks like
import com.vimeo.stag.UseStag;
@kotlin.Metadata(mv = {1, 1, 15}, bv = {1, 0, 3}, k = 1, d1 = {"\u0000\"\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000e\n\u0002\b\t\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0002\b\u0087\b\u0018\u00002\u00020\u0001B\u0015\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0003\u00a2\u0006\u0002\u0010\u0005J\t\u0010\t\u001a\u00020\u0003H\u00c6\u0003J\t\u0010\n\u001a\u00020\u0003H\u00c6\u0003J\u001d\u0010\u000b\u001a\u00020\u00002\b\b\u0002\u0010\u0002\u001a\u00020\u00032\b\b\u0002\u0010\u0004\u001a\u00020\u0003H\u00c6\u0001J\u0013\u0010\f\u001a\u00020\r2\b\u0010\u000e\u001a\u0004\u0018\u00010\u0001H\u00d6\u0003J\t\u0010\u000f\u001a\u00020\u0010H\u00d6\u0001J\t\u0010\u0011\u001a\u00020\u0003H\u00d6\u0001R\u0011\u0010\u0002\u001a\u00020\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\u0006\u0010\u0007R\u0011\u0010\u0004\u001a\u00020\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\b\u0010\u0007\u00a8\u0006\u0012"}, d2 = {"Lcom/company/Foo;", "", "name", "", "occupation", "(Ljava/lang/String;Ljava/lang/String;)V", "getName", "()Ljava/lang/String;", "getOccupation", "component1", "component2", "copy", "equals", "", "other", "hashCode", "", "toString", "app_staging"})
@com.vimeo.stag.UseStag()
public final class Foo {
@org.jetbrains.annotations.NotNull()
private final java.lang.String name = null;
@org.jetbrains.annotations.NotNull()
private final java.lang.String occupation = null;
@org.jetbrains.annotations.NotNull()
public final java.lang.String getName() {
return null;
}
@org.jetbrains.annotations.NotNull()
public final java.lang.String getOccupation() {
return null;
}
public Foo(@org.jetbrains.annotations.NotNull()
java.lang.String name, @org.jetbrains.annotations.NotNull()
java.lang.String occupation) {
super();
}
@org.jetbrains.annotations.NotNull()
public final java.lang.String component1() {
return null;
}
@org.jetbrains.annotations.NotNull()
public final java.lang.String component2() {
return null;
}
@org.jetbrains.annotations.NotNull()
public final com.company.Foo copy(@org.jetbrains.annotations.NotNull()
java.lang.String name, @org.jetbrains.annotations.NotNull()
java.lang.String occupation) {
return null;
}
@org.jetbrains.annotations.NotNull()
@java.lang.Override()
public java.lang.String toString() {
return null;
}
@java.lang.Override()
public int hashCode() {
return 0;
}
@java.lang.Override()
public boolean equals(@org.jetbrains.annotations.Nullable()
java.lang.Object p0) {
return false;
}
}
Even with default values I still have this issue