google / google/ksp

[KSP2] java.lang.IllegalStateException: Unexpected location PROPERTY for Java method that inherits Kotlin property

Open
#2,496 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Kotlin
Stars
3.5k
Forks
415
Avg merge
1d 2h
Merged PRs (30d)
53

Description

Reproducer for `functionKinds.kt`:
```
Index: test-utils/testData/api/functionKinds.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/test-utils/testData/api/functionKinds.kt b/test-utils/testData/api/functionKinds.kt
--- a/test-utils/testData/api/functionKinds.kt (revision ab9274e3479182c0045b949a9652031d8e915148)
+++ b/test-utils/testData/api/functionKinds.kt (date 1750343615078)
@@ -29,6 +29,9 @@
// MyClass.suspendMethod: MEMBER
// MyInterface.method: MEMBER
// MyInterface.methodWithImpl: MEMBER
+// MyInterfaceImplJava.: MEMBER
+// MyInterfaceImplJava.getProperty: MEMBER
+// MyInterfaceImplJava.method: MEMBER
// topLevelMethod: TOP_LEVEL
// topLevelSuspendMethod: TOP_LEVEL
// END
@@ -51,6 +54,7 @@
interface MyInterface {
fun method()
fun methodWithImpl() {}
+ val property: Int
}

// FILE: JavaClass.java
@@ -64,3 +68,12 @@
void methodInInterface();
static void staticMethodInInterface() {}
}
+
+// FILE: MyInterfaceImplJava.java
+class MyInterfaceImplJava implements MyInterface {
+ @Override
+ public void method() {}
+
+ @Override
+ public int getProperty() { return 0; }
+}

```

Result:
```
java.lang.IllegalStateException: Unexpected location PROPERTY
at com.google.devtools.ksp.impl.symbol.kotlin.KSFunctionDeclarationImpl$functionKind$2.invoke(KSFunctionDeclarationImpl.kt:56)
at com.google.devtools.ksp.impl.symbol.kotlin.KSFunctionDeclarationImpl$functionKind$2.invoke(KSFunctionDeclarationImpl.kt:45)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86)
at com.google.devtools.ksp.impl.symbol.kotlin.KSFunctionDeclarationImpl.getFunctionKind(KSFunctionDeclarationImpl.kt:45)
at com.google.devtools.ksp.processor.FunctionKindProcessor.process$pretty(FunctionKindProcessor.kt:44)
at com.google.devtools.ksp.processor.FunctionKindProcessor.access$process$pretty(FunctionKindProcessor.kt:24)
at com.google.devtools.ksp.processor.FunctionKindProcessor$process$1$1.visitFunctionDeclaration(FunctionKindProcessor.kt:55)
at com.google.devtools.ksp.processor.FunctionKindProcessor$process$1$1.visitFunctionDeclaration(FunctionKindProcessor.kt:50)
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.