Convert to kotlin: DeclarationResolver.kt

This commit is contained in:
Pavel V. Talanov
2015-03-02 19:59:11 +03:00
parent 4a156c5c8c
commit 9628d98f38
2 changed files with 115 additions and 128 deletions
@@ -745,7 +745,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
iv.anew(thisDescriptorType);
iv.dup();
ConstructorDescriptor constructor = DeclarationResolver.getConstructorOfDataClass(descriptor);
ConstructorDescriptor constructor = getConstructorOfDataClass(descriptor);
assert function.getValueParameters().size() == constructor.getValueParameters().size() :
"Number of parameters of copy function and constructor are different. " +
"Copy: " + function.getValueParameters().size() + ", " +
@@ -792,6 +792,12 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
}
}
private static ConstructorDescriptor getConstructorOfDataClass(@NotNull ClassDescriptor classDescriptor) {
Collection<ConstructorDescriptor> constructors = classDescriptor.getConstructors();
assert constructors.size() == 1 : "Data class must have only one constructor: " + classDescriptor.getConstructors();
return constructors.iterator().next();
}
private void generateEnumMethodsAndConstInitializers() {
if (isEnumClass(descriptor)) {
generateEnumValuesMethod();