Migration onto .getValue()
This commit is contained in:
@@ -172,7 +172,7 @@ public class ClassDescriptorImpl extends DeclarationDescriptorNonRootImpl implem
|
|||||||
@Override
|
@Override
|
||||||
public ReceiverParameterDescriptor getThisAsReceiverParameter() {
|
public ReceiverParameterDescriptor getThisAsReceiverParameter() {
|
||||||
if (thisAsReceiverParameter == null) {
|
if (thisAsReceiverParameter == null) {
|
||||||
thisAsReceiverParameter = new ReceiverParameterDescriptorImpl(this, getDefaultType());
|
thisAsReceiverParameter = new ReceiverParameterDescriptorImpl(this, getDefaultType(), new ClassReceiver(this));
|
||||||
}
|
}
|
||||||
return thisAsReceiverParameter;
|
return thisAsReceiverParameter;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -21,6 +21,7 @@ import com.google.common.collect.Sets;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.OverridingUtil;
|
import org.jetbrains.jet.lang.resolve.OverridingUtil;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.lang.types.DescriptorSubstitutor;
|
import org.jetbrains.jet.lang.types.DescriptorSubstitutor;
|
||||||
@@ -31,8 +32,6 @@ import org.jetbrains.jet.lang.types.Variance;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import static org.jetbrains.jet.lang.descriptors.ReceiverParameterDescriptor.NO_RECEIVER_PARAMETER;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author abreslav
|
* @author abreslav
|
||||||
*/
|
*/
|
||||||
@@ -84,7 +83,7 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo
|
|||||||
this.unsubstitutedReturnType = unsubstitutedReturnType;
|
this.unsubstitutedReturnType = unsubstitutedReturnType;
|
||||||
this.modality = modality;
|
this.modality = modality;
|
||||||
this.visibility = visibility;
|
this.visibility = visibility;
|
||||||
this.receiverParameter = receiverParameterType == null ? NO_RECEIVER_PARAMETER : new ReceiverParameterDescriptorImpl(this, receiverParameterType);
|
this.receiverParameter = DescriptorResolver.resolveReceiverParameterFor(this, receiverParameterType);
|
||||||
this.expectedThisObject = expectedThisObject;
|
this.expectedThisObject = expectedThisObject;
|
||||||
|
|
||||||
for (int i = 0; i < typeParameters.size(); ++i) {
|
for (int i = 0; i < typeParameters.size(); ++i) {
|
||||||
|
|||||||
+1
-1
@@ -232,7 +232,7 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase {
|
|||||||
@Override
|
@Override
|
||||||
public ReceiverParameterDescriptor getThisAsReceiverParameter() {
|
public ReceiverParameterDescriptor getThisAsReceiverParameter() {
|
||||||
if (implicitReceiver == null) {
|
if (implicitReceiver == null) {
|
||||||
implicitReceiver = new ReceiverParameterDescriptorImpl(this, getDefaultType());
|
implicitReceiver = new ReceiverParameterDescriptorImpl(this, getDefaultType(), new ClassReceiver(this));
|
||||||
}
|
}
|
||||||
return implicitReceiver;
|
return implicitReceiver;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import com.google.common.collect.Sets;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.OverridingUtil;
|
import org.jetbrains.jet.lang.resolve.OverridingUtil;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
@@ -33,8 +34,6 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import static org.jetbrains.jet.lang.descriptors.ReceiverParameterDescriptor.NO_RECEIVER_PARAMETER;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author abreslav
|
* @author abreslav
|
||||||
*/
|
*/
|
||||||
@@ -105,9 +104,7 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Callab
|
|||||||
@NotNull ReceiverParameterDescriptor expectedThisObject,
|
@NotNull ReceiverParameterDescriptor expectedThisObject,
|
||||||
@Nullable JetType receiverType
|
@Nullable JetType receiverType
|
||||||
) {
|
) {
|
||||||
ReceiverParameterDescriptor receiverParameter = receiverType == null
|
ReceiverParameterDescriptor receiverParameter = DescriptorResolver.resolveReceiverParameterFor(this, receiverType);
|
||||||
? NO_RECEIVER_PARAMETER
|
|
||||||
: new ReceiverParameterDescriptorImpl(this, receiverType);
|
|
||||||
setType(outType, typeParameters, expectedThisObject, receiverParameter);
|
setType(outType, typeParameters, expectedThisObject, receiverParameter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
|||||||
import org.jetbrains.jet.lang.resolve.scopes.RedeclarationHandler;
|
import org.jetbrains.jet.lang.resolve.scopes.RedeclarationHandler;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl;
|
import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl;
|
||||||
|
import org.jetbrains.jet.lang.resolve.scopes.receivers.ScriptReceiver;
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
import org.jetbrains.jet.lang.types.TypeSubstitutor;
|
import org.jetbrains.jet.lang.types.TypeSubstitutor;
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
@@ -53,7 +54,8 @@ public class ScriptDescriptor extends DeclarationDescriptorNonRootImpl {
|
|||||||
// Putting Any here makes no sense,
|
// Putting Any here makes no sense,
|
||||||
// it is simply copied from someplace else
|
// it is simply copied from someplace else
|
||||||
// during a refactoring
|
// during a refactoring
|
||||||
KotlinBuiltIns.getInstance().getAnyType());
|
KotlinBuiltIns.getInstance().getAnyType(),
|
||||||
|
new ScriptReceiver(this));
|
||||||
|
|
||||||
private final ClassDescriptorImpl classDescriptor;
|
private final ClassDescriptorImpl classDescriptor;
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
|||||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl;
|
import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.ClassReceiver;
|
import org.jetbrains.jet.lang.resolve.scopes.receivers.ClassReceiver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.scopes.receivers.ExtensionReceiver;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
||||||
import org.jetbrains.jet.lang.types.*;
|
import org.jetbrains.jet.lang.types.*;
|
||||||
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
|
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
|
||||||
@@ -67,6 +68,12 @@ public class DescriptorResolver {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private ExpressionTypingServices expressionTypingServices;
|
private ExpressionTypingServices expressionTypingServices;
|
||||||
|
|
||||||
|
public static ReceiverParameterDescriptor resolveReceiverParameterFor(@NotNull CallableDescriptor owner, @Nullable JetType receiverParameterType) {
|
||||||
|
return receiverParameterType == null
|
||||||
|
? NO_RECEIVER_PARAMETER
|
||||||
|
: new ReceiverParameterDescriptorImpl(owner, receiverParameterType, new ExtensionReceiver(owner, receiverParameterType));
|
||||||
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setTypeResolver(@NotNull TypeResolver typeResolver) {
|
public void setTypeResolver(@NotNull TypeResolver typeResolver) {
|
||||||
this.typeResolver = typeResolver;
|
this.typeResolver = typeResolver;
|
||||||
@@ -899,9 +906,7 @@ public class DescriptorResolver {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ReceiverParameterDescriptor receiverDescriptor = receiverType == null
|
ReceiverParameterDescriptor receiverDescriptor = resolveReceiverParameterFor(propertyDescriptor, receiverType);
|
||||||
? NO_RECEIVER_PARAMETER
|
|
||||||
: new ReceiverParameterDescriptorImpl(propertyDescriptor, receiverType);
|
|
||||||
|
|
||||||
JetScope propertyScope = getPropertyDeclarationInnerScope(scope, typeParameterDescriptors, ReceiverDescriptor.NO_RECEIVER, trace);
|
JetScope propertyScope = getPropertyDeclarationInnerScope(scope, typeParameterDescriptors, ReceiverDescriptor.NO_RECEIVER, trace);
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -145,10 +145,10 @@ public class DataFlowValueFactory {
|
|||||||
JetThisExpression thisExpression = (JetThisExpression) expression;
|
JetThisExpression thisExpression = (JetThisExpression) expression;
|
||||||
DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, thisExpression.getInstanceReference());
|
DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, thisExpression.getInstanceReference());
|
||||||
if (declarationDescriptor instanceof CallableDescriptor) {
|
if (declarationDescriptor instanceof CallableDescriptor) {
|
||||||
return Pair.create((Object) ((CallableDescriptor) declarationDescriptor).getReceiverParameter(), true);
|
return Pair.create((Object) ((CallableDescriptor) declarationDescriptor).getReceiverParameter().getValue(), true);
|
||||||
}
|
}
|
||||||
if (declarationDescriptor instanceof ClassDescriptor) {
|
if (declarationDescriptor instanceof ClassDescriptor) {
|
||||||
return Pair.create((Object) ((ClassDescriptor) declarationDescriptor).getThisAsReceiverParameter(), true);
|
return Pair.create((Object) ((ClassDescriptor) declarationDescriptor).getThisAsReceiverParameter().getValue(), true);
|
||||||
}
|
}
|
||||||
return Pair.create(null, true);
|
return Pair.create(null, true);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -213,7 +213,7 @@ public abstract class TaskPrioritizer {
|
|||||||
}
|
}
|
||||||
if (containingDeclaration != null && isClassObject(containingDeclaration)) {
|
if (containingDeclaration != null && isClassObject(containingDeclaration)) {
|
||||||
ResolutionCandidate<D> candidate = ResolutionCandidate.create(descriptor);
|
ResolutionCandidate<D> candidate = ResolutionCandidate.create(descriptor);
|
||||||
candidate.setThisObject(new ClassReceiver((ClassDescriptor) containingDeclaration));
|
candidate.setThisObject(((ClassDescriptor) containingDeclaration).getThisAsReceiverParameter().getValue());
|
||||||
candidate.setExplicitReceiverKind(ExplicitReceiverKind.NO_EXPLICIT_RECEIVER);
|
candidate.setExplicitReceiverKind(ExplicitReceiverKind.NO_EXPLICIT_RECEIVER);
|
||||||
result.add(candidate);
|
result.add(candidate);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import org.jetbrains.jet.lang.resolve.lazy.data.JetClassInfoUtil;
|
|||||||
import org.jetbrains.jet.lang.resolve.lazy.data.JetClassLikeInfo;
|
import org.jetbrains.jet.lang.resolve.lazy.data.JetClassLikeInfo;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.*;
|
import org.jetbrains.jet.lang.resolve.scopes.*;
|
||||||
|
import org.jetbrains.jet.lang.resolve.scopes.receivers.ClassReceiver;
|
||||||
import org.jetbrains.jet.lang.types.ErrorUtils;
|
import org.jetbrains.jet.lang.types.ErrorUtils;
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
import org.jetbrains.jet.lang.types.TypeConstructor;
|
import org.jetbrains.jet.lang.types.TypeConstructor;
|
||||||
@@ -273,7 +274,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyDesc
|
|||||||
@Override
|
@Override
|
||||||
public ReceiverParameterDescriptor getThisAsReceiverParameter() {
|
public ReceiverParameterDescriptor getThisAsReceiverParameter() {
|
||||||
if (thisAsReceiverParameter == null) {
|
if (thisAsReceiverParameter == null) {
|
||||||
thisAsReceiverParameter = new ReceiverParameterDescriptorImpl(this, getDefaultType());
|
thisAsReceiverParameter = new ReceiverParameterDescriptorImpl(this, getDefaultType(), new ClassReceiver(this));
|
||||||
}
|
}
|
||||||
return thisAsReceiverParameter;
|
return thisAsReceiverParameter;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user