[Commonizer] Refactor/simplify marker interfaces
This commit is contained in:
+1
-3
@@ -5,12 +5,10 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.name.FqName
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.constants.ConstantValue
|
import org.jetbrains.kotlin.resolve.constants.ConstantValue
|
||||||
|
|
||||||
interface CirAnnotation {
|
interface CirAnnotation : CirHasFqName {
|
||||||
val fqName: FqName
|
|
||||||
val constantValueArguments: Map<Name, ConstantValue<*>>
|
val constantValueArguments: Map<Name, ConstantValue<*>>
|
||||||
val annotationValueArguments: Map<Name, CirAnnotation>
|
val annotationValueArguments: Map<Name, CirAnnotation>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
|
||||||
interface CirClass : CirClassifier, CirDeclarationWithModality {
|
interface CirClass : CirClassifier, CirHasModality {
|
||||||
val kind: ClassKind
|
val kind: ClassKind
|
||||||
var companion: FqName? // null means no companion object
|
var companion: FqName? // null means no companion object
|
||||||
val isCompanion: Boolean
|
val isCompanion: Boolean
|
||||||
|
|||||||
+4
-3
@@ -8,9 +8,10 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir
|
|||||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||||
|
|
||||||
interface CirClassConstructor :
|
interface CirClassConstructor :
|
||||||
CirAnnotatedDeclaration,
|
CirDeclaration,
|
||||||
CirDeclarationWithTypeParameters,
|
CirHasAnnotations,
|
||||||
CirDeclarationWithVisibility,
|
CirHasTypeParameters,
|
||||||
|
CirHasVisibility,
|
||||||
CirMaybeCallableMemberOfClass,
|
CirMaybeCallableMemberOfClass,
|
||||||
CirCallableMemberWithParameters {
|
CirCallableMemberWithParameters {
|
||||||
|
|
||||||
|
|||||||
+5
-4
@@ -6,7 +6,8 @@
|
|||||||
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
||||||
|
|
||||||
interface CirClassifier :
|
interface CirClassifier :
|
||||||
CirAnnotatedDeclaration,
|
CirDeclaration,
|
||||||
CirNamedDeclaration,
|
CirHasAnnotations,
|
||||||
CirDeclarationWithTypeParameters,
|
CirHasName,
|
||||||
CirDeclarationWithVisibility
|
CirHasTypeParameters,
|
||||||
|
CirHasVisibility
|
||||||
|
|||||||
+2
-2
@@ -11,9 +11,9 @@ import org.jetbrains.kotlin.descriptors.Modality
|
|||||||
// TODO: inline?
|
// TODO: inline?
|
||||||
data class CirContainingClassDetails(
|
data class CirContainingClassDetails(
|
||||||
val kind: ClassKind,
|
val kind: ClassKind,
|
||||||
val modality: Modality,
|
override val modality: Modality,
|
||||||
val isData: Boolean
|
val isData: Boolean
|
||||||
) {
|
) : CirHasModality {
|
||||||
companion object {
|
companion object {
|
||||||
val DOES_NOT_MATTER = CirContainingClassDetails(
|
val DOES_NOT_MATTER = CirContainingClassDetails(
|
||||||
kind = ClassKind.CLASS,
|
kind = ClassKind.CLASS,
|
||||||
|
|||||||
+9
-8
@@ -23,30 +23,31 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
*/
|
*/
|
||||||
interface CirDeclaration
|
interface CirDeclaration
|
||||||
|
|
||||||
interface CirAnnotatedDeclaration : CirDeclaration {
|
interface CirHasAnnotations {
|
||||||
val annotations: List<CirAnnotation>
|
val annotations: List<CirAnnotation>
|
||||||
}
|
}
|
||||||
|
|
||||||
interface CirNamedDeclaration : CirDeclaration {
|
interface CirHasName {
|
||||||
val name: Name
|
val name: Name
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: merge with [CirDeclarationWithVisibility]
|
interface CirHasFqName {
|
||||||
|
val fqName: FqName
|
||||||
|
}
|
||||||
|
|
||||||
interface CirHasVisibility {
|
interface CirHasVisibility {
|
||||||
val visibility: Visibility
|
val visibility: Visibility
|
||||||
}
|
}
|
||||||
|
|
||||||
interface CirDeclarationWithVisibility : CirDeclaration, CirHasVisibility
|
interface CirHasModality {
|
||||||
|
|
||||||
interface CirDeclarationWithModality : CirDeclaration {
|
|
||||||
val modality: Modality
|
val modality: Modality
|
||||||
}
|
}
|
||||||
|
|
||||||
interface CirMaybeCallableMemberOfClass : CirDeclaration {
|
interface CirMaybeCallableMemberOfClass {
|
||||||
val containingClassDetails: CirContainingClassDetails? // null assumes no containing class
|
val containingClassDetails: CirContainingClassDetails? // null assumes no containing class
|
||||||
}
|
}
|
||||||
|
|
||||||
interface CirDeclarationWithTypeParameters : CirDeclaration {
|
interface CirHasTypeParameters {
|
||||||
val typeParameters: List<CirTypeParameter>
|
val typeParameters: List<CirTypeParameter>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
||||||
|
|
||||||
interface CirExtensionReceiver {
|
interface CirExtensionReceiver : CirHasAnnotations {
|
||||||
val annotations: List<CirAnnotation>
|
|
||||||
val type: CirType
|
val type: CirType
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-5
@@ -11,11 +11,12 @@ import org.jetbrains.kotlin.descriptors.Modality
|
|||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
|
|
||||||
interface CirFunctionOrProperty :
|
interface CirFunctionOrProperty :
|
||||||
CirAnnotatedDeclaration,
|
CirDeclaration,
|
||||||
CirNamedDeclaration,
|
CirHasAnnotations,
|
||||||
CirDeclarationWithTypeParameters,
|
CirHasName,
|
||||||
CirDeclarationWithVisibility,
|
CirHasTypeParameters,
|
||||||
CirDeclarationWithModality,
|
CirHasVisibility,
|
||||||
|
CirHasModality,
|
||||||
CirMaybeCallableMemberOfClass {
|
CirMaybeCallableMemberOfClass {
|
||||||
|
|
||||||
val isExternal: Boolean
|
val isExternal: Boolean
|
||||||
|
|||||||
@@ -5,4 +5,4 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
||||||
|
|
||||||
interface CirModule : CirNamedDeclaration
|
interface CirModule : CirDeclaration, CirHasName
|
||||||
|
|||||||
@@ -5,8 +5,4 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.name.FqName
|
interface CirPackage : CirDeclaration, CirHasFqName
|
||||||
|
|
||||||
interface CirPackage : CirDeclaration {
|
|
||||||
val fqName: FqName
|
|
||||||
}
|
|
||||||
|
|||||||
+1
-2
@@ -5,8 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
||||||
|
|
||||||
interface CirPropertyAccessor {
|
interface CirPropertyAccessor : CirHasAnnotations {
|
||||||
val annotations: List<CirAnnotation>
|
|
||||||
val isDefault: Boolean
|
val isDefault: Boolean
|
||||||
val isExternal: Boolean
|
val isExternal: Boolean
|
||||||
val isInline: Boolean
|
val isInline: Boolean
|
||||||
|
|||||||
+1
-1
@@ -5,6 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
||||||
|
|
||||||
interface CirPropertySetter : CirPropertyAccessor, CirDeclarationWithVisibility {
|
interface CirPropertySetter : CirDeclaration, CirPropertyAccessor, CirHasVisibility {
|
||||||
val parameterAnnotations: List<CirAnnotation>
|
val parameterAnnotations: List<CirAnnotation>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,11 +5,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirSimpleTypeKind.CLASS
|
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirSimpleTypeKind.CLASS
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirSimpleTypeKind.TYPE_ALIAS
|
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirSimpleTypeKind.TYPE_ALIAS
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirTypeFactory
|
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirTypeFactory
|
||||||
import org.jetbrains.kotlin.name.FqName
|
|
||||||
import org.jetbrains.kotlin.types.AbbreviatedType
|
import org.jetbrains.kotlin.types.AbbreviatedType
|
||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
@@ -28,9 +26,8 @@ sealed class CirType {
|
|||||||
*
|
*
|
||||||
* Note: Annotations at simple types are not preserved. After commonization all annotations assigned to types will be lost.
|
* Note: Annotations at simple types are not preserved. After commonization all annotations assigned to types will be lost.
|
||||||
*/
|
*/
|
||||||
abstract class CirSimpleType : CirType(), CirHasVisibility {
|
abstract class CirSimpleType : CirType(), CirHasVisibility, CirHasFqName {
|
||||||
abstract val kind: CirSimpleTypeKind
|
abstract val kind: CirSimpleTypeKind
|
||||||
abstract val fqName: FqName
|
|
||||||
abstract val arguments: List<CirTypeProjection>
|
abstract val arguments: List<CirTypeProjection>
|
||||||
abstract val isMarkedNullable: Boolean
|
abstract val isMarkedNullable: Boolean
|
||||||
abstract val isDefinitelyNotNullType: Boolean
|
abstract val isDefinitelyNotNullType: Boolean
|
||||||
|
|||||||
+1
-4
@@ -5,12 +5,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
|
||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
interface CirTypeParameter {
|
interface CirTypeParameter : CirHasAnnotations, CirHasName {
|
||||||
val annotations: List<CirAnnotation>
|
|
||||||
val name: Name
|
|
||||||
val isReified: Boolean
|
val isReified: Boolean
|
||||||
val variance: Variance
|
val variance: Variance
|
||||||
val upperBounds: List<CirType>
|
val upperBounds: List<CirType>
|
||||||
|
|||||||
+1
-5
@@ -5,11 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
package org.jetbrains.kotlin.descriptors.commonizer.cir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
interface CirValueParameter : CirHasAnnotations, CirHasName {
|
||||||
|
|
||||||
interface CirValueParameter {
|
|
||||||
val annotations: List<CirAnnotation>
|
|
||||||
val name: Name
|
|
||||||
val returnType: CirType
|
val returnType: CirType
|
||||||
val varargElementType: CirType?
|
val varargElementType: CirType?
|
||||||
val declaresDefaultValue: Boolean
|
val declaresDefaultValue: Boolean
|
||||||
|
|||||||
Reference in New Issue
Block a user