[FE 1.0] Provide implementation of ExpectActualMatchingContext for FE 1.0

^KT-58578
This commit is contained in:
Dmitriy Novozhilov
2023-05-11 13:24:59 +03:00
committed by Space Team
parent b26b649d4e
commit 8338370fbd
14 changed files with 410 additions and 454 deletions
@@ -19,13 +19,14 @@ package org.jetbrains.kotlin.descriptors;
import kotlin.annotations.jvm.ReadOnly;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.mpp.CallableSymbolMarker;
import org.jetbrains.kotlin.types.KotlinType;
import java.util.Collection;
import java.util.List;
public interface CallableDescriptor extends DeclarationDescriptorWithVisibility, DeclarationDescriptorNonRoot,
Substitutable<CallableDescriptor> {
Substitutable<CallableDescriptor>, CallableSymbolMarker {
@NotNull
@ReadOnly
List<ReceiverParameterDescriptor> getContextReceiverParameters();
@@ -16,10 +16,11 @@
package org.jetbrains.kotlin.descriptors
import org.jetbrains.kotlin.mpp.ConstructorSymbolMarker
import org.jetbrains.kotlin.types.TypeSubstitutor
interface ClassConstructorDescriptor : ConstructorDescriptor {
interface ClassConstructorDescriptor : ConstructorDescriptor, ConstructorSymbolMarker {
override fun getContainingDeclaration(): ClassDescriptor
override fun getOriginal(): ClassConstructorDescriptor
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.descriptors;
import kotlin.annotations.jvm.ReadOnly;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.mpp.RegularClassSymbolMarker;
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
import org.jetbrains.kotlin.types.SimpleType;
import org.jetbrains.kotlin.types.TypeProjection;
@@ -16,7 +17,8 @@ import org.jetbrains.kotlin.types.TypeSubstitution;
import java.util.Collection;
import java.util.List;
public interface ClassDescriptor extends ClassifierDescriptorWithTypeParameters, ClassOrPackageFragmentDescriptor {
public interface ClassDescriptor extends ClassifierDescriptorWithTypeParameters, ClassOrPackageFragmentDescriptor,
RegularClassSymbolMarker {
@NotNull
MemberScope getMemberScope(@NotNull List<? extends TypeProjection> typeArguments);
@@ -17,10 +17,11 @@
package org.jetbrains.kotlin.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.mpp.ClassifierSymbolMarker;
import org.jetbrains.kotlin.types.SimpleType;
import org.jetbrains.kotlin.types.TypeConstructor;
public interface ClassifierDescriptor extends DeclarationDescriptorNonRoot {
public interface ClassifierDescriptor extends DeclarationDescriptorNonRoot, ClassifierSymbolMarker {
@NotNull
TypeConstructor getTypeConstructor();
@@ -18,12 +18,14 @@ package org.jetbrains.kotlin.descriptors;
import kotlin.annotations.jvm.ReadOnly;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.mpp.ClassLikeSymbolMarker;
import org.jetbrains.kotlin.mpp.ClassifierSymbolMarker;
import java.util.List;
public interface ClassifierDescriptorWithTypeParameters
extends ClassifierDescriptor, DeclarationDescriptorWithVisibility, MemberDescriptor,
Substitutable<ClassifierDescriptorWithTypeParameters> {
Substitutable<ClassifierDescriptorWithTypeParameters>, ClassLikeSymbolMarker, ClassifierSymbolMarker {
/**
* @return <code>true</code> if this class contains a reference to its outer class (as opposed to static nested class)
*/
@@ -19,8 +19,9 @@ package org.jetbrains.kotlin.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.descriptors.annotations.Annotated;
import org.jetbrains.kotlin.mpp.DeclarationSymbolMarker;
public interface DeclarationDescriptor extends Annotated, Named, ValidateableDescriptor {
public interface DeclarationDescriptor extends Annotated, Named, ValidateableDescriptor, DeclarationSymbolMarker {
/**
* @return The descriptor that corresponds to the original declaration of this element.
* A descriptor can be obtained from its original by substituting type arguments (of the declaring class
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
import org.jetbrains.kotlin.mpp.FunctionSymbolMarker;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.types.KotlinType;
import org.jetbrains.kotlin.types.TypeSubstitution;
@@ -16,7 +17,7 @@ import org.jetbrains.kotlin.types.TypeSubstitutor;
import java.util.Collection;
import java.util.List;
public interface FunctionDescriptor extends CallableMemberDescriptor {
public interface FunctionDescriptor extends CallableMemberDescriptor, FunctionSymbolMarker {
@Override
@NotNull
DeclarationDescriptor getContainingDeclaration();
@@ -18,13 +18,14 @@ package org.jetbrains.kotlin.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.mpp.PropertySymbolMarker;
import org.jetbrains.kotlin.types.KotlinType;
import org.jetbrains.kotlin.types.TypeSubstitutor;
import java.util.Collection;
import java.util.List;
public interface PropertyDescriptor extends VariableDescriptorWithAccessors, CallableMemberDescriptor {
public interface PropertyDescriptor extends VariableDescriptorWithAccessors, CallableMemberDescriptor, PropertySymbolMarker {
@Override
@Nullable
PropertyGetterDescriptor getGetter();
@@ -17,11 +17,12 @@
package org.jetbrains.kotlin.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.mpp.SimpleFunctionSymbolMarker;
/**
* Simple functions are the ones with 'fun' keyword and function literals
*/
public interface SimpleFunctionDescriptor extends FunctionDescriptor {
public interface SimpleFunctionDescriptor extends FunctionDescriptor, SimpleFunctionSymbolMarker {
@NotNull
@Override
SimpleFunctionDescriptor copy(DeclarationDescriptor newOwner, Modality modality, DescriptorVisibility visibility, Kind kind, boolean copyOverrides);
@@ -17,9 +17,10 @@
package org.jetbrains.kotlin.descriptors
import org.jetbrains.kotlin.descriptors.impl.TypeAliasConstructorDescriptor
import org.jetbrains.kotlin.mpp.TypeAliasSymbolMarker
import org.jetbrains.kotlin.types.SimpleType
interface TypeAliasDescriptor : ClassifierDescriptorWithTypeParameters {
interface TypeAliasDescriptor : ClassifierDescriptorWithTypeParameters, TypeAliasSymbolMarker {
/// Right-hand side of the type alias definition.
/// May contain type aliases.
val underlyingType: SimpleType
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.mpp.TypeParameterSymbolMarker;
import org.jetbrains.kotlin.storage.StorageManager;
import org.jetbrains.kotlin.types.KotlinType;
import org.jetbrains.kotlin.types.TypeConstructor;
@@ -25,7 +26,7 @@ import org.jetbrains.kotlin.types.model.TypeParameterMarker;
import java.util.List;
public interface TypeParameterDescriptor extends ClassifierDescriptor, TypeParameterMarker {
public interface TypeParameterDescriptor extends ClassifierDescriptor, TypeParameterMarker, TypeParameterSymbolMarker {
boolean isReified();
@NotNull
@@ -16,11 +16,12 @@
package org.jetbrains.kotlin.descriptors
import org.jetbrains.kotlin.mpp.ValueParameterSymbolMarker
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.types.TypeSubstitutor
interface ValueParameterDescriptor : VariableDescriptor, ParameterDescriptor {
interface ValueParameterDescriptor : VariableDescriptor, ParameterDescriptor, ValueParameterSymbolMarker {
override fun getContainingDeclaration(): CallableDescriptor
/**