Minor: renaming

This commit is contained in:
Dmitry Petrov
2018-09-20 12:41:48 +03:00
parent 8d2b1950e6
commit 95010de32e
3 changed files with 27 additions and 29 deletions
@@ -216,7 +216,7 @@ public abstract class ClassBodyCodegen extends MemberCodegen<KtPureClassOrObject
return InnerClassConsumer.Companion.classForInnerClassRecord(descriptor, false);
}
protected void generateTraitMethods() {
protected void generateDelegatesToDefaultImpl() {
if (isJvmInterface(descriptor)) return;
for (Map.Entry<FunctionDescriptor, FunctionDescriptor> entry : CodegenUtil.getNonPrivateTraitMethods(descriptor).entrySet()) {
@@ -271,47 +271,48 @@ public abstract class ClassBodyCodegen extends MemberCodegen<KtPureClassOrObject
private void putArgumentsOnStack(
@NotNull ExpressionCodegen codegen,
@NotNull JvmMethodSignature signature,
Method traitMethod
@NotNull Method defaultImplsMethod
) {
InstructionAdapter iv = codegen.v;
Type[] argTypes = signature.getAsmMethod().getArgumentTypes();
Type[] originalArgTypes = traitMethod.getArgumentTypes();
Type[] myArgTypes = signature.getAsmMethod().getArgumentTypes();
Type[] toArgTypes = defaultImplsMethod.getArgumentTypes();
boolean isErasedInlineClass =
InlineClassesUtilsKt.isInlineClass(descriptor) && kind == OwnerKind.ERASED_INLINE_CLASS;
int argI = 0;
int reg = 0;
int myArgI = 0;
int argVar = 0;
Type receiverType = typeMapper.mapType(descriptor);
KotlinType interfaceKotlinType = ((ClassDescriptor) inheritedFun.getContainingDeclaration()).getDefaultType();
StackValue.local(reg, receiverType, descriptor.getDefaultType()).put(OBJECT_TYPE, interfaceKotlinType, iv);
if (isErasedInlineClass) argI++;
reg += receiverType.getSize();
StackValue.local(argVar, receiverType, descriptor.getDefaultType())
.put(OBJECT_TYPE, interfaceKotlinType, iv);
if (isErasedInlineClass) myArgI++;
argVar += receiverType.getSize();
int originalArgI = 1;
int toArgI = 1;
List<ParameterDescriptor> argsDescriptors = getParameters(inheritedFun);
List<ParameterDescriptor> originalArgsDescriptors = getParameters(interfaceFun);
assert argsDescriptors.size() == originalArgsDescriptors.size() :
List<ParameterDescriptor> myParameters = getParameters(inheritedFun);
List<ParameterDescriptor> toParameters = getParameters(interfaceFun);
assert myParameters.size() == toParameters.size() :
"Inconsistent value parameters between delegating fun " + inheritedFun +
"and interface fun " + interfaceFun;
Iterator<ParameterDescriptor> argsIterator = argsDescriptors.iterator();
Iterator<ParameterDescriptor> originalArgsIterator = originalArgsDescriptors.iterator();
for (; argI < argTypes.length; argI++, originalArgI++) {
Type argType = argTypes[argI];
KotlinType argKotlinType = argsIterator.next().getType();
Iterator<ParameterDescriptor> myParametersIterator = myParameters.iterator();
Iterator<ParameterDescriptor> toParametersIterator = toParameters.iterator();
for (; myArgI < myArgTypes.length; myArgI++, toArgI++) {
Type argType = myArgTypes[myArgI];
KotlinType argKotlinType = myParametersIterator.next().getType();
Type originalArgType = originalArgTypes[originalArgI];
KotlinType originalArgKotlinType = originalArgsIterator.next().getType();
Type originalArgType = toArgTypes[toArgI];
KotlinType originalArgKotlinType = toParametersIterator.next().getType();
StackValue.local(reg, argType, argKotlinType)
StackValue.local(argVar, argType, argKotlinType)
.put(originalArgType, originalArgKotlinType, iv);
reg += argType.getSize();
argVar += argType.getSize();
}
assert originalArgI == originalArgTypes.length :
"Invalid trait implementation signature: " + signature + " vs " + traitMethod + " for " + interfaceFun;
assert toArgI == toArgTypes.length :
"Invalid trait implementation signature: " + signature + " vs " + defaultImplsMethod + " for " + interfaceFun;
}
private List<ParameterDescriptor> getParameters(FunctionDescriptor functionDescriptor) {
@@ -49,7 +49,7 @@ class ErasedInlineClassBodyCodegen(
override fun generateSyntheticPartsAfterBody() {
super.generateSyntheticPartsAfterBody()
generateTraitMethods()
generateDelegatesToDefaultImpl()
generateUnboxMethod()
generateFunctionsFromAny()
generateSpecializedEqualsStub()
@@ -13,7 +13,6 @@ import kotlin.collections.CollectionsKt;
import kotlin.jvm.functions.Function2;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.backend.common.CodegenUtil;
import org.jetbrains.kotlin.backend.common.DataClassMethodGenerator;
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap;
@@ -73,9 +72,7 @@ import static org.jetbrains.kotlin.resolve.BindingContextUtils.getNotNull;
import static org.jetbrains.kotlin.resolve.DescriptorToSourceUtils.descriptorToDeclaration;
import static org.jetbrains.kotlin.resolve.DescriptorUtils.*;
import static org.jetbrains.kotlin.resolve.jvm.AsmTypes.OBJECT_TYPE;
import static org.jetbrains.kotlin.resolve.jvm.annotations.JvmAnnotationUtilKt.hasJvmDefaultAnnotation;
import static org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin.NO_ORIGIN;
import static org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOriginKind.CLASS_MEMBER_DELEGATION_TO_DEFAULT_IMPL;
import static org.jetbrains.kotlin.types.Variance.INVARIANT;
import static org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils.isLocalFunction;
import static org.jetbrains.org.objectweb.asm.Opcodes.*;
@@ -411,7 +408,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
generateCompanionObjectBackingFieldCopies();
generateTraitMethods();
generateDelegatesToDefaultImpl();
generateDelegates(delegationFieldsInfo);