Introduced QualifierReceiver instead of PackageType
This commit is contained in:
@@ -351,7 +351,6 @@ public class ErrorUtils {
|
||||
|
||||
public static boolean containsErrorType(@Nullable JetType type) {
|
||||
if (type == null) return false;
|
||||
if (type instanceof PackageType) return false;
|
||||
if (type.isError()) return true;
|
||||
for (TypeProjection projection : type.getArguments()) {
|
||||
if (containsErrorType(projection.getType())) return true;
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.jet.lang.types;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.Annotations;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* This is a fake type assigned to package expressions. Only member lookup is
|
||||
* supposed to be done on these types.
|
||||
*/
|
||||
public class PackageType implements JetType {
|
||||
private final Name name;
|
||||
private final JetScope memberScope;
|
||||
private final ReceiverValue receiver;
|
||||
|
||||
public PackageType(@NotNull Name name, @NotNull JetScope memberScope, @NotNull ReceiverValue receiver) {
|
||||
this.name = name;
|
||||
this.memberScope = memberScope;
|
||||
this.receiver = receiver;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public JetScope getMemberScope() {
|
||||
return memberScope;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isError() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ReceiverValue getReceiverValue() {
|
||||
return receiver;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public TypeConstructor getConstructor() {
|
||||
return throwException();
|
||||
}
|
||||
|
||||
private TypeConstructor throwException() {
|
||||
throw new UnsupportedOperationException("Only member lookup is allowed on a package type " + name);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public List<TypeProjection> getArguments() {
|
||||
throwException();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isNullable() {
|
||||
throwException();
|
||||
return false;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Annotations getAnnotations() {
|
||||
throwException();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "[Package-type " + name + "]";
|
||||
}
|
||||
}
|
||||
@@ -519,7 +519,6 @@ public class TypeUtils {
|
||||
) {
|
||||
if (type == null) return false;
|
||||
if (isSpecialType.invoke(type)) return true;
|
||||
if (type instanceof PackageType) return false;
|
||||
for (TypeProjection projection : type.getArguments()) {
|
||||
if (containsSpecialType(projection.getType(), isSpecialType)) return true;
|
||||
}
|
||||
|
||||
@@ -724,7 +724,6 @@ public class KotlinBuiltIns {
|
||||
}
|
||||
|
||||
public boolean isFunctionType(@NotNull JetType type) {
|
||||
if (type instanceof PackageType) return false;
|
||||
if (isExactFunctionType(type)) return true;
|
||||
|
||||
for (JetType superType : type.getConstructor().getSupertypes()) {
|
||||
@@ -735,7 +734,6 @@ public class KotlinBuiltIns {
|
||||
}
|
||||
|
||||
public boolean isExtensionFunctionType(@NotNull JetType type) {
|
||||
if (type instanceof PackageType) return false;
|
||||
if (isExactExtensionFunctionType(type)) return true;
|
||||
|
||||
for (JetType superType : type.getConstructor().getSupertypes()) {
|
||||
@@ -833,21 +831,19 @@ public class KotlinBuiltIns {
|
||||
}
|
||||
|
||||
public boolean isNothingOrNullableNothing(@NotNull JetType type) {
|
||||
return !(type instanceof PackageType)
|
||||
&& type.getConstructor() == getNothing().getTypeConstructor();
|
||||
return type.getConstructor() == getNothing().getTypeConstructor();
|
||||
}
|
||||
|
||||
public boolean isAnyOrNullableAny(@NotNull JetType type) {
|
||||
return !(type instanceof PackageType) &&
|
||||
type.getConstructor() == getAny().getTypeConstructor();
|
||||
return type.getConstructor() == getAny().getTypeConstructor();
|
||||
}
|
||||
|
||||
public boolean isUnit(@NotNull JetType type) {
|
||||
return !(type instanceof PackageType) && type.equals(getUnitType());
|
||||
return type.equals(getUnitType());
|
||||
}
|
||||
|
||||
public boolean isString(@Nullable JetType type) {
|
||||
return !(type instanceof PackageType) && getStringType().equals(type);
|
||||
return getStringType().equals(type);
|
||||
}
|
||||
|
||||
public boolean isCloneable(@NotNull ClassDescriptor descriptor) {
|
||||
|
||||
@@ -279,9 +279,6 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
||||
}
|
||||
return "???";
|
||||
}
|
||||
if (type instanceof PackageType) {
|
||||
return type.toString();
|
||||
}
|
||||
if (type instanceof LazyType && debugMode) {
|
||||
return type.toString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user