From e4f2fdc5f228e69331d322b5f739db38e008f77a Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Mon, 1 Oct 2012 18:37:06 +0400 Subject: [PATCH] Better names for THIS$0 and RECEIVER$0 constants. --- .../src/org/jetbrains/jet/codegen/AsmUtil.java | 8 ++++---- .../jetbrains/jet/codegen/ClosureCodegen.java | 4 ++-- .../jet/codegen/ImplementationBodyCodegen.java | 16 ++++++++-------- .../jet/codegen/context/CodegenContext.java | 5 +++-- .../jet/codegen/context/LocalLookup.java | 4 ++-- 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java index 412fd4b21ee..eae5c2cde51 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java @@ -72,8 +72,8 @@ public class AsmUtil { .put(JavaDescriptorResolver.PACKAGE_VISIBILITY, NO_FLAG_PACKAGE_PRIVATE) .build(); - public static final String RECEIVER$0 = "receiver$0"; - public static final String THIS$0 = "this$0"; + public static final String CAPTURED_RECEIVER_FIELD = "receiver$0"; + public static final String CAPTURED_THIS_FIELD = "this$0"; private static final String STUB_EXCEPTION = "java/lang/RuntimeException"; private static final String STUB_EXCEPTION_MESSAGE = "Stubs are for compiler only, do not add them to runtime classpath"; @@ -201,13 +201,13 @@ public class AsmUtil { final ClassifierDescriptor captureThis = closure.getCaptureThis(); final int access = ACC_PUBLIC | ACC_SYNTHETIC | ACC_FINAL; if (captureThis != null) { - v.newField(null, access, THIS$0, typeMapper.mapType(captureThis).getDescriptor(), null, + v.newField(null, access, CAPTURED_THIS_FIELD, typeMapper.mapType(captureThis).getDescriptor(), null, null); } final ClassifierDescriptor captureReceiver = closure.getCaptureReceiver(); if (captureReceiver != null) { - v.newField(null, access, RECEIVER$0, typeMapper.mapType(captureReceiver).getDescriptor(), + v.newField(null, access, CAPTURED_RECEIVER_FIELD, typeMapper.mapType(captureReceiver).getDescriptor(), null, null); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java index f98e6661b1e..06956d052dc 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java @@ -247,11 +247,11 @@ public class ClosureCodegen extends GenerationStateAware { final ClassDescriptor captureThis = closure.getCaptureThis(); if (captureThis != null) { final Type type = typeMapper.mapType(captureThis); - args.add(new Pair(THIS$0, type)); + args.add(new Pair(CAPTURED_THIS_FIELD, type)); } final ClassifierDescriptor captureReceiver = closure.getCaptureReceiver(); if (captureReceiver != null) { - args.add(new Pair(RECEIVER$0, typeMapper.mapType(captureReceiver))); + args.add(new Pair(CAPTURED_RECEIVER_FIELD, typeMapper.mapType(captureReceiver))); } for (DeclarationDescriptor descriptor : closure.getCaptureVariables().keySet()) { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index be1224bce12..2fea14037c3 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -837,7 +837,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { } MutableClosure closure = context.closure; - boolean hasThis0 = closure != null && closure.getCaptureThis() != null; + boolean hasCapturedThis = closure != null && closure.getCaptureThis() != null; final CallableMethod callableMethod = typeMapper.mapToCallableMethod(constructorDescriptor, context.closure); final JvmMethodSignature constructorMethod = callableMethod.getSignature(); @@ -859,14 +859,14 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { AnnotationCodegen.forMethod(mv, typeMapper).genAnnotations(constructorDescriptor); - writeParameterAnnotations(constructorDescriptor, constructorMethod, hasThis0, mv); + writeParameterAnnotations(constructorDescriptor, constructorMethod, hasCapturedThis, mv); if (state.getClassBuilderMode() == ClassBuilderMode.STUBS) { genStubCode(mv); return; } - generatePrimaryConstructorImpl(constructorDescriptor, constructorContext, constructorMethod, callableMethod, hasThis0, closure, mv); + generatePrimaryConstructorImpl(constructorDescriptor, constructorContext, constructorMethod, callableMethod, hasCapturedThis, closure, mv); } private void generatePrimaryConstructorImpl( @@ -874,7 +874,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { ConstructorContext constructorContext, JvmMethodSignature constructorMethod, CallableMethod callableMethod, - boolean hasThis0, + boolean hasCapturedThis, MutableClosure closure, MethodVisitor mv ) { @@ -901,24 +901,24 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { generateDelegatorToConstructorCall(iv, codegen, constructorDescriptor, frameMap); } - if (hasThis0) { + if (hasCapturedThis) { final Type type = typeMapper .mapType(enclosingClassDescriptor(bindingContext, descriptor)); String interfaceDesc = type.getDescriptor(); iv.load(0, classAsmType); iv.load(frameMap.getOuterThisIndex(), type); - iv.putfield(classname.getInternalName(), THIS$0, interfaceDesc); + iv.putfield(classname.getInternalName(), CAPTURED_THIS_FIELD, interfaceDesc); } if (closure != null) { - int k = hasThis0 ? 2 : 1; + int k = hasCapturedThis ? 2 : 1; final String internalName = typeMapper.mapType(descriptor).getInternalName(); final ClassifierDescriptor captureReceiver = closure.getCaptureReceiver(); if (captureReceiver != null) { iv.load(0, OBJECT_TYPE); final Type asmType = typeMapper.mapType(captureReceiver.getDefaultType(), JetTypeMapperMode.IMPL); iv.load(1, asmType); - iv.putfield(internalName, RECEIVER$0, asmType.getDescriptor()); + iv.putfield(internalName, CAPTURED_RECEIVER_FIELD, asmType.getDescriptor()); k += asmType.getSize(); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java b/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java index 472474965fc..7730bff61fa 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java @@ -31,7 +31,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; -import static org.jetbrains.jet.codegen.AsmUtil.THIS$0; +import static org.jetbrains.jet.codegen.AsmUtil.CAPTURED_THIS_FIELD; import static org.jetbrains.jet.codegen.binding.CodegenBinding.CLASS_FOR_FUNCTION; import static org.jetbrains.jet.codegen.binding.CodegenBinding.FQN; import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.OBJECT_TYPE; @@ -262,7 +262,8 @@ public abstract class CodegenContext { final ClassDescriptor enclosingClass = getEnclosingClass(); outerExpression = enclosingClass != null ? StackValue - .field(typeMapper.mapType(enclosingClass), CodegenBinding.getJvmInternalName(typeMapper.getBindingTrace(), classDescriptor), THIS$0, + .field(typeMapper.mapType(enclosingClass), CodegenBinding.getJvmInternalName(typeMapper.getBindingTrace(), classDescriptor), + CAPTURED_THIS_FIELD, false) : null; } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/context/LocalLookup.java b/compiler/backend/src/org/jetbrains/jet/codegen/context/LocalLookup.java index ff175602566..0afdbd0e476 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/context/LocalLookup.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/context/LocalLookup.java @@ -26,7 +26,7 @@ import org.jetbrains.jet.lang.psi.JetElement; import org.jetbrains.jet.lang.resolve.java.JvmClassName; import org.jetbrains.jet.lang.types.JetType; -import static org.jetbrains.jet.codegen.AsmUtil.RECEIVER$0; +import static org.jetbrains.jet.codegen.AsmUtil.CAPTURED_RECEIVER_FIELD; import static org.jetbrains.jet.codegen.binding.CodegenBinding.classNameForAnonymousClass; import static org.jetbrains.jet.codegen.binding.CodegenBinding.isLocalNamedFun; import static org.jetbrains.jet.lang.resolve.BindingContextUtils.callableDescriptorToDeclaration; @@ -122,7 +122,7 @@ public interface LocalLookup { final JetType receiverType = ((CallableDescriptor) d).getReceiverParameter().getType(); Type type = state.getTypeMapper().mapType(receiverType); - StackValue innerValue = StackValue.field(type, className, RECEIVER$0, false); + StackValue innerValue = StackValue.field(type, className, CAPTURED_RECEIVER_FIELD, false); closure.setCaptureReceiver(); return innerValue;