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