Don't rename class property with JvmField annotation, report clashing

This commit is contained in:
Michael Bogdanov
2015-10-12 14:02:37 +03:00
parent b713328540
commit f7164c5bfd
4 changed files with 35 additions and 1 deletions
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.codegen.state.JetTypeMapper;
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
import org.jetbrains.kotlin.descriptors.PropertyDescriptor;
import org.jetbrains.kotlin.resolve.jvm.annotations.AnnotationsPackage;
import java.util.HashMap;
import java.util.Map;
@@ -64,7 +65,9 @@ public abstract class FieldOwnerContext<T extends DeclarationDescriptor> extends
String actualName = descriptor2Name.get(descriptor);
if (actualName != null) return actualName;
String newName = descriptor2Name.isEmpty() ? defaultPropertyName : defaultPropertyName + "$" + descriptor2Name.size();
String newName = descriptor2Name.isEmpty() || AnnotationsPackage.hasJvmFieldAnnotation(descriptor)
? defaultPropertyName
: defaultPropertyName + "$" + descriptor2Name.size();
descriptor2Name.put(descriptor, newName);
return newName;
}