Refactor: process mentions of class object

Rename usages that refer to "default object" concept now
Test data file names are left as is
This commit is contained in:
Pavel V. Talanov
2015-03-03 17:28:24 +03:00
parent 27f5d71e4f
commit 48fbce9582
137 changed files with 471 additions and 479 deletions
@@ -46,7 +46,7 @@ public final class JvmAbi {
//TODO: To be removed after kotlin M11
@Deprecated
public static final String DEPRECATED_CLASS_OBJECT_FIELD = "OBJECT$";
public static final String DEPRECATED_DEFAULT_OBJECT_FIELD = "OBJECT$";
@NotNull
public static String getSyntheticMethodNameForAnnotatedProperty(@NotNull Name propertyName) {
@@ -159,7 +159,7 @@ public abstract class AbstractBinaryClassAnnotationAndConstantLoader<A : Any, C
val classKind = Flags.CLASS_KIND[classProto.getFlags()]
val classId = nameResolver.getClassId(classProto.getFqName())
if (classKind == ProtoBuf.Class.Kind.CLASS_OBJECT && isStaticFieldInOuter(proto)) {
// Backing fields of properties of a class object are generated in the outer class
// Backing fields of properties of a default object are generated in the outer class
return kotlinClassFinder.findKotlinClass(classId.getOuterClassId())
}
else if (classKind == ProtoBuf.Class.Kind.TRAIT && annotatedCallableKind == AnnotatedCallableKind.PROPERTY) {
@@ -40,7 +40,7 @@ public class Visibilities {
DeclarationDescriptor parent = what;
while (parent != null) {
parent = parent.getContainingDeclaration();
if ((parent instanceof ClassDescriptor && !DescriptorUtils.isClassObject(parent)) ||
if ((parent instanceof ClassDescriptor && !DescriptorUtils.isDefaultObject(parent)) ||
parent instanceof PackageFragmentDescriptor) {
break;
}
@@ -97,7 +97,7 @@ public class Visibilities {
@Override
protected boolean isVisible(@NotNull ReceiverValue receiver, @NotNull DeclarationDescriptorWithVisibility what, @NotNull DeclarationDescriptor from) {
ClassDescriptor classDescriptor = DescriptorUtils.getParentOfType(what, ClassDescriptor.class);
if (DescriptorUtils.isClassObject(classDescriptor)) {
if (DescriptorUtils.isDefaultObject(classDescriptor)) {
classDescriptor = DescriptorUtils.getParentOfType(classDescriptor, ClassDescriptor.class);
}
if (classDescriptor == null) return false;
@@ -152,7 +152,7 @@ public abstract class AbstractTypeParameterDescriptor extends DeclarationDescrip
@Override
public JetType getClassObjectType() {
// TODO: class object bounds
// TODO: default object bounds
return null;
}
@@ -50,7 +50,7 @@ public class EnumEntrySyntheticClassDescriptor extends ClassDescriptorBase {
private final NotNullLazyValue<Collection<Name>> enumMemberNames;
/**
* Creates and initializes descriptors for enum entry with the given name and its class object
* Creates and initializes descriptors for enum entry with the given name and its default object
* @param enumMemberNames needed for fake overrides resolution
*/
@NotNull
@@ -214,7 +214,7 @@ public class EnumEntrySyntheticClassDescriptor extends ClassDescriptorBase {
@NotNull
private JetScope getSupertypeScope() {
Collection<JetType> supertype = getTypeConstructor().getSupertypes();
assert supertype.size() == 1 : "Enum entry and its class object both should have exactly one supertype: " + supertype;
assert supertype.size() == 1 : "Enum entry and its default object both should have exactly one supertype: " + supertype;
return supertype.iterator().next().getMemberScope();
}
@@ -53,13 +53,14 @@ public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
.setWithoutTypeParameters(true)
.setWithoutFunctionParameterNames(true)
.setReceiverAfterName(true)
.setRenderClassObjectName(true)
.setRenderDefaultObjectName(true)
.setWithoutSuperTypes(true)
.setStartFromName(true).build();
DescriptorRenderer FQ_NAMES_IN_TYPES = new DescriptorRendererBuilder().build();
DescriptorRenderer SHORT_NAMES_IN_TYPES = new DescriptorRendererBuilder().setNameShortness(NameShortness.SHORT).setIncludeSynthesizedParameterNames(false).build();
DescriptorRenderer SHORT_NAMES_IN_TYPES = new DescriptorRendererBuilder().setNameShortness(
NameShortness.SHORT).setIncludeSynthesizedParameterNames(false).build();
DescriptorRenderer DEBUG_TEXT = new DescriptorRendererBuilder()
.setDebugMode(true)
@@ -77,7 +78,7 @@ public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
DescriptorRenderer HTML_NAMES_WITH_SHORT_TYPES = new DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setNameShortness(NameShortness.SHORT)
.setRenderClassObjectName(true)
.setRenderDefaultObjectName(true)
.setTextFormat(TextFormat.HTML).build();
DescriptorRenderer HTML = new DescriptorRendererBuilder().setTextFormat(TextFormat.HTML).build();
@@ -63,7 +63,7 @@ public class DescriptorRendererBuilder {
@NotNull
private Collection<FqName> excludedAnnotationClasses = Collections.emptyList();
private boolean receiverAfterName = false;
private boolean renderClassObjectName = false;
private boolean renderDefaultObjectName = false;
public DescriptorRendererBuilder() {
}
@@ -200,8 +200,8 @@ public class DescriptorRendererBuilder {
}
@NotNull
public DescriptorRendererBuilder setRenderClassObjectName(boolean renderClassObjectName) {
this.renderClassObjectName = renderClassObjectName;
public DescriptorRendererBuilder setRenderDefaultObjectName(boolean renderDefaultObjectName) {
this.renderDefaultObjectName = renderDefaultObjectName;
return this;
}
@@ -234,7 +234,7 @@ public class DescriptorRendererBuilder {
normalizedVisibilities, showInternalKeyword, prettyFunctionTypes, uninferredTypeParameterAsName,
overrideRenderingPolicy, valueParametersHandler, textFormat, excludedAnnotationClasses, includePropertyConstant,
includeSynthesizedParameterNames, withoutFunctionParameterNames, withoutTypeParameters, receiverAfterName,
renderClassObjectName, withoutSuperTypes, typeNormalizer, renderDefaultValues, flexibleTypesForCode);
renderDefaultObjectName, withoutSuperTypes, typeNormalizer, renderDefaultValues, flexibleTypesForCode);
}
}
@@ -62,7 +62,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
private final boolean includeSynthesizedParameterNames;
private final boolean withoutFunctionParameterNames;
private final boolean withoutTypeParameters;
private final boolean renderClassObjectName;
private final boolean renderDefaultObjectName;
private final boolean withoutSuperTypes;
private final boolean receiverAfterName;
private final boolean renderDefaultValues;
@@ -100,7 +100,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
boolean withoutFunctionParameterNames,
boolean withoutTypeParameters,
boolean receiverAfterName,
boolean renderClassObjectName,
boolean renderDefaultObjectName,
boolean withoutSuperTypes,
@NotNull Function1<JetType, JetType> typeNormalizer,
boolean renderDefaultValues,
@@ -127,7 +127,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
this.withoutFunctionParameterNames = withoutFunctionParameterNames;
this.withoutTypeParameters = withoutTypeParameters;
this.receiverAfterName = receiverAfterName;
this.renderClassObjectName = renderClassObjectName;
this.renderDefaultObjectName = renderDefaultObjectName;
this.withoutSuperTypes = withoutSuperTypes;
this.typeNormalizer = typeNormalizer;
this.renderDefaultValues = renderDefaultValues;
@@ -234,8 +234,8 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
builder.append(renderName(descriptor.getName()));
}
private void renderClassObjectName(@NotNull DeclarationDescriptor descriptor, @NotNull StringBuilder builder) {
if (renderClassObjectName) {
private void renderDefaultObjectName(@NotNull DeclarationDescriptor descriptor, @NotNull StringBuilder builder) {
if (renderDefaultObjectName) {
if (startFromName) {
builder.append("class object");
}
@@ -956,7 +956,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
renderName(klass, builder);
}
else {
renderClassObjectName(klass, builder);
renderDefaultObjectName(klass, builder);
}
List<TypeParameterDescriptor> typeParameters = klass.getTypeConstructor().getParameters();
@@ -191,7 +191,7 @@ public class DescriptorUtils {
public static ClassDescriptor getContainingClass(@NotNull DeclarationDescriptor descriptor) {
DeclarationDescriptor containing = descriptor.getContainingDeclaration();
while (containing != null) {
if (containing instanceof ClassDescriptor && !isClassObject(containing)) {
if (containing instanceof ClassDescriptor && !isDefaultObject(containing)) {
return (ClassDescriptor) containing;
}
containing = containing.getContainingDeclaration();
@@ -240,7 +240,7 @@ public class DescriptorUtils {
return descriptor instanceof AnonymousFunctionDescriptor;
}
public static boolean isClassObject(@Nullable DeclarationDescriptor descriptor) {
public static boolean isDefaultObject(@Nullable DeclarationDescriptor descriptor) {
return isKindOf(descriptor, ClassKind.CLASS_OBJECT);
}
@@ -32,7 +32,7 @@ public class EnumValue extends CompileTimeConstant<ClassDescriptor> {
@Override
public JetType getType(@NotNull KotlinBuiltIns kotlinBuiltIns) {
JetType type = value.getClassObjectType();
assert type != null : "Enum entry should have a class object: " + value;
assert type != null : "Enum entry should have a default object: " + value;
return type;
}
@@ -24,9 +24,6 @@ import java.lang.reflect.Modifier
public trait JetScope {
/**
* Should not return object (class object or enum entry) class descriptors.
*/
public fun getClassifier(name: Name): ClassifierDescriptor?
public fun getPackage(name: Name): PackageViewDescriptor?
@@ -52,7 +52,7 @@ message JvmFieldSignature {
required int32 name = 1;
required JvmType type = 2;
// True iff this field is a backing field for a class object and is really present as a static
// True iff this field is a backing field for a default object and is really present as a static
// field in the outer class, not as an instance field here
optional bool is_static_in_outer = 3 [default = false];
}
@@ -131,9 +131,9 @@ public class DescriptorSerializer {
}
}
ClassDescriptor classObject = classDescriptor.getDefaultObjectDescriptor();
if (classObject != null) {
builder.setClassObjectName(stringTable.getSimpleNameIndex(classObject.getName()));
ClassDescriptor defaultObjectDescriptor = classDescriptor.getDefaultObjectDescriptor();
if (defaultObjectDescriptor != null) {
builder.setClassObjectName(stringTable.getSimpleNameIndex(defaultObjectDescriptor.getName()));
}
extension.serializeClass(classDescriptor, builder, stringTable);
@@ -60,7 +60,7 @@ public class DeserializedClassDescriptor(
private val containingDeclaration = outerContext.containingDeclaration
private val primaryConstructor = c.storageManager.createNullableLazyValue { computePrimaryConstructor() }
private val classObjectDescriptor = c.storageManager.createNullableLazyValue { computeClassObjectDescriptor() }
private val defaultObjectDescriptor = c.storageManager.createNullableLazyValue { computeDefaultObjectDescriptor() }
private val annotations =
if (!Flags.HAS_ANNOTATIONS.get(classProto.getFlags())) {
@@ -109,14 +109,14 @@ public class DeserializedClassDescriptor(
return listOf(constructor)
}
private fun computeClassObjectDescriptor(): ClassDescriptor? {
private fun computeDefaultObjectDescriptor(): ClassDescriptor? {
if (!classProto.hasClassObjectName()) return null
val classObjectName = c.nameResolver.getName(classProto.getClassObjectName())
return memberScope.getClassifier(classObjectName) as? ClassDescriptor
val defaultObjectName = c.nameResolver.getName(classProto.getClassObjectName())
return memberScope.getClassifier(defaultObjectName) as? ClassDescriptor
}
override fun getDefaultObjectDescriptor(): ClassDescriptor? = classObjectDescriptor()
override fun getDefaultObjectDescriptor(): ClassDescriptor? = defaultObjectDescriptor()
private fun computeSuperTypes(): Collection<JetType> {
val supertypes = ArrayList<JetType>(classProto.getSupertypeCount())