commit | a4d19c00399a78d24bb32050927310bed0520197 | [log] [tgz] |
---|---|---|
author | Daniel Santiago Rivera <danysantiago@google.com> | Wed Apr 17 17:44:46 2024 -0400 |
committer | Daniel Santiago Rivera <danysantiago@google.com> | Wed Apr 17 17:44:46 2024 -0400 |
tree | 7170fd89054f4d2a30d1c481d909f7c24430fccc | |
parent | 23f58d22c843e218c657b181577442a1d778b479 [diff] |
Disallow @RawQuery usages in non-Android targets. Instead trying to compile badly generated code, show a clear error that @RawQuery is currently not supported in KMP. Bug: 330586815 Test: n/a Change-Id: I60a2fd85bc4e9a4a09ee96b22bfe1f37f6eae591
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt b/room/room-compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt index 2cdf066..6844c0a 100644 --- a/room/room-compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt +++ b/room/room-compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
@@ -1161,4 +1161,8 @@ val INVALID_KOTLIN_CODE_GEN_IN_JAVAC = "${Context.BooleanProcessorOptions.GENERATE_KOTLIN.argName} can only be enabled in KSP." + + val RAW_QUERY_NOT_SUPPORTED_ON_NON_ANDROID = + "@RawQuery annotated DAO functions are currently not supported in source sets targeting " + + "non-Android platforms." }
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/processor/RawQueryMethodProcessor.kt b/room/room-compiler/src/main/kotlin/androidx/room/processor/RawQueryMethodProcessor.kt index 9167143..5460873 100644 --- a/room/room-compiler/src/main/kotlin/androidx/room/processor/RawQueryMethodProcessor.kt +++ b/room/room-compiler/src/main/kotlin/androidx/room/processor/RawQueryMethodProcessor.kt
@@ -50,6 +50,13 @@ ProcessorErrors.CANNOT_USE_UNBOUND_GENERICS_IN_QUERY_METHODS ) + // TODO(b/330586815): Support @RawQuery in KMP + context.checker.check( + context.isAndroidOnlyTarget(), + executableElement, + ProcessorErrors.RAW_QUERY_NOT_SUPPORTED_ON_NON_ANDROID + ) + val returnsDeferredType = delegate.returnsDeferredType() val isSuspendFunction = delegate.executableElement.isSuspendFunction() context.checker.check(