aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2021-08-20 12:06:25 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2021-08-20 12:06:25 +0000
commit7c184e12cc272bee8de2ff0f1f2b71c9e458a314 (patch)
tree82f8cb29c80dc85af2409c3e1f7d1ed38348a60a
parentd03b4fb747dd302445b78e422ea9ac9a664f6827 (diff)
parentfa49dd270c43ab697be3f1adadc7ac1f6f89df7f (diff)
downloadsupport-7c184e12cc272bee8de2ff0f1f2b71c9e458a314.tar.gz
Merge "Remove asMemberOf workaround in XProcessing" into androidx-main
-rw-r--r--room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSAsMemberOf.kt41
1 files changed, 2 insertions, 39 deletions
diff --git a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSAsMemberOf.kt b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSAsMemberOf.kt
index 1fd802b5920..53cd24a7cb6 100644
--- a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSAsMemberOf.kt
+++ b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSAsMemberOf.kt
@@ -16,13 +16,10 @@
package androidx.room.compiler.processing.ksp
-import com.google.devtools.ksp.symbol.KSFunction
import com.google.devtools.ksp.symbol.KSFunctionDeclaration
import com.google.devtools.ksp.symbol.KSPropertyDeclaration
import com.google.devtools.ksp.symbol.KSType
-import com.google.devtools.ksp.symbol.KSTypeParameter
import com.google.devtools.ksp.symbol.KSValueParameter
-import java.lang.UnsupportedOperationException
/**
* Returns the type of a property as if it is member of the given [ksType].
@@ -67,7 +64,7 @@ internal fun KSValueParameter.typeAsMemberOf(
if (ksType == null) {
return resolved
}
- val asMember = functionDeclaration.safeAsMemberOf(
+ val asMember = functionDeclaration.asMemberOf(
containing = ksType
)
// TODO b/173224718
@@ -89,42 +86,8 @@ internal fun KSFunctionDeclaration.returnTypeAsMemberOf(
// object
resolved
}
- else -> this.safeAsMemberOf(
+ else -> this.asMemberOf(
containing = ksType
).returnType
} ?: error("cannot find return type for $this")
}
-
-/**
- * Runs asMemberOf while working around a KSP bug where if a java method overrides a property,
- * calling as member of fails it.
- */
-private fun KSFunctionDeclaration.safeAsMemberOf(
- containing: KSType
-): KSFunction {
- return try {
- asMemberOf(containing)
- } catch (unsupported: UnsupportedOperationException) {
- SyntheticKSFunction(this)
- }
-}
-
-/**
- * Workaround for https://github.com/google/ksp/issues/462
- */
-private class SyntheticKSFunction(
- val declaration: KSFunctionDeclaration
-) : KSFunction {
- override val extensionReceiverType: KSType?
- get() = declaration.extensionReceiver?.resolve()
- override val isError: Boolean
- get() = false
- override val parameterTypes: List<KSType?>
- get() = declaration.parameters.map { param ->
- param.type.resolve()
- }
- override val returnType: KSType?
- get() = declaration.returnType?.resolve()
- override val typeParameters: List<KSTypeParameter>
- get() = declaration.typeParameters
-} \ No newline at end of file