Skip to content

Commit cda8056

Browse files
committed
Replace casts with abstract functions
1 parent c37900c commit cda8056

33 files changed

+85
-15
lines changed

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/binary/KSClassDeclarationDescriptorImpl.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ class KSClassDeclarationDescriptorImpl private constructor(val descriptor: Class
4949
}
5050
}
5151

52+
override fun asKSDeclaration(): KSDeclaration = this
53+
5254
override val classKind: ClassKind by lazy {
5355
when (descriptor.kind) {
5456
KtClassKind.INTERFACE -> ClassKind.INTERFACE

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/binary/KSDeclarationDescriptorImpl.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.parentsWithSelf
3131
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
3232

3333
abstract class KSDeclarationDescriptorImpl(private val descriptor: DeclarationDescriptor) /*: KSDeclaration*/ {
34+
abstract fun asKSDeclaration(): KSDeclaration
3435

3536
open /*override*/ val origin by lazy {
3637
descriptor.origin
@@ -41,7 +42,7 @@ abstract class KSDeclarationDescriptorImpl(private val descriptor: DeclarationDe
4142
open /*override*/ val location: Location = NonExistLocation
4243

4344
open /*override*/ val annotations: Sequence<KSAnnotation> by lazy {
44-
descriptor.annotations.asSequence().map { KSAnnotationDescriptorImpl.getCached(it, this as KSDeclaration) }
45+
descriptor.annotations.asSequence().map { KSAnnotationDescriptorImpl.getCached(it, this.asKSDeclaration()) }
4546
.memoized()
4647
}
4748

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/binary/KSFunctionDeclarationDescriptorImpl.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ class KSFunctionDeclarationDescriptorImpl private constructor(val descriptor: Fu
3737
cache.getOrPut(descriptor) { KSFunctionDeclarationDescriptorImpl(descriptor) }
3838
}
3939

40+
override fun asKSDeclaration(): KSDeclaration = this
41+
4042
override fun findOverridee(): KSDeclaration? {
4143
return descriptor?.findClosestOverridee()?.toKSDeclaration()
4244
}

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/binary/KSPropertyAccessorDescriptorImpl.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,12 @@ import com.google.devtools.ksp.symbol.*
2222
import com.google.devtools.ksp.symbol.impl.toFunctionKSModifiers
2323
import com.google.devtools.ksp.symbol.impl.toKSModifiers
2424
import com.google.devtools.ksp.symbol.impl.toKSPropertyDeclaration
25+
import com.google.devtools.ksp.toKSModifiers
2526
import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor
2627

2728
abstract class KSPropertyAccessorDescriptorImpl(val descriptor: PropertyAccessorDescriptor) /*: KSPropertyAccessor*/ {
29+
protected abstract fun asKSPropertyAccessor(): KSPropertyAccessor
30+
2831
open /*override*/ val origin: Origin by lazy {
2932
when (receiver.origin) {
3033
// if receiver is kotlin source, that means we are a synthetic where developer
@@ -50,7 +53,8 @@ abstract class KSPropertyAccessorDescriptorImpl(val descriptor: PropertyAccessor
5053
}
5154

5255
open /*override*/ val annotations: Sequence<KSAnnotation> by lazy {
53-
descriptor.annotations.asSequence().map { KSAnnotationDescriptorImpl.getCached(it, this as KSPropertyAccessor) }
56+
descriptor.annotations.asSequence()
57+
.map { KSAnnotationDescriptorImpl.getCached(it, this.asKSPropertyAccessor()) }
5458
.memoized()
5559
}
5660

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/binary/KSPropertyDeclarationDescriptorImpl.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ class KSPropertyDeclarationDescriptorImpl private constructor(val descriptor: Pr
3636
}
3737
}
3838

39+
override fun asKSDeclaration(): KSDeclaration = this
40+
3941
override val extensionReceiver: KSTypeReference? by lazy {
4042
if (descriptor.extensionReceiverParameter != null) {
4143
KSTypeReferenceDescriptorImpl.getCached(descriptor.extensionReceiverParameter!!.type, origin, this)

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/binary/KSPropertyGetterDescriptorImpl.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ class KSPropertyGetterDescriptorImpl private constructor(descriptor: PropertyGet
2929
}
3030
}
3131

32+
override fun asKSPropertyAccessor(): KSPropertyAccessor = this
33+
3234
override val returnType: KSTypeReference? by lazy {
3335
if (descriptor.returnType != null) {
3436
KSTypeReferenceDescriptorImpl.getCached(descriptor.returnType!!, origin, this)

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/binary/KSPropertySetterDescriptorImpl.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ class KSPropertySetterDescriptorImpl private constructor(descriptor: PropertySet
2929
}
3030
}
3131

32+
override fun asKSPropertyAccessor(): KSPropertyAccessor = this
33+
3234
override val parameter: KSValueParameter by lazy {
3335
descriptor.valueParameters.singleOrNull()?.let { KSValueParameterDescriptorImpl.getCached(it, this) }
3436
?: throw IllegalStateException("Failed to resolve property type")

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/binary/KSTypeAliasDescriptorImpl.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ class KSTypeAliasDescriptorImpl(descriptor: TypeAliasDescriptor) :
1616
}
1717
}
1818

19+
override fun asKSDeclaration(): KSDeclaration = this
20+
1921
override val name: KSName by lazy {
2022
KSNameImpl.getCached(descriptor.name.asString())
2123
}

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/binary/KSTypeParameterDescriptorImpl.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ class KSTypeParameterDescriptorImpl private constructor(val descriptor: TypePara
3939
}
4040
}
4141

42+
override fun asKSDeclaration(): KSDeclaration = this
43+
4244
override val bounds: Sequence<KSTypeReference> by lazy {
4345
descriptor.upperBounds.asSequence().map { KSTypeReferenceDescriptorImpl.getCached(it, origin, this) }
4446
}

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/java/KSClassDeclarationJavaEnumEntryImpl.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ class KSClassDeclarationJavaEnumEntryImpl private constructor(val psi: PsiEnumCo
4040
fun getCached(psi: PsiEnumConstant) = cache.getOrPut(psi) { KSClassDeclarationJavaEnumEntryImpl(psi) }
4141
}
4242

43+
override fun asKSDeclaration(): KSDeclaration = this
44+
4345
override val origin = Origin.JAVA
4446

4547
override val location: Location by lazy {

0 commit comments

Comments
 (0)