Support loading Java records
^KT-43677 In Progress
This commit is contained in:
+3
-3
@@ -24,12 +24,12 @@ import org.jetbrains.kotlin.load.java.components.AbstractJavaResolverCache
|
||||
import org.jetbrains.kotlin.load.java.structure.JavaClass
|
||||
import org.jetbrains.kotlin.load.java.structure.JavaElement
|
||||
import org.jetbrains.kotlin.load.java.structure.JavaField
|
||||
import org.jetbrains.kotlin.load.java.structure.JavaMethod
|
||||
import org.jetbrains.kotlin.load.java.structure.JavaMember
|
||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
||||
|
||||
class StubJavaResolverCache(resolveSession: ResolveSession) : AbstractJavaResolverCache(resolveSession) {
|
||||
|
||||
override fun recordMethod(method: JavaMethod, descriptor: SimpleFunctionDescriptor) {}
|
||||
override fun recordMethod(member: JavaMember, descriptor: SimpleFunctionDescriptor) {}
|
||||
|
||||
override fun recordConstructor(element: JavaElement, descriptor: ConstructorDescriptor) {}
|
||||
|
||||
@@ -37,4 +37,4 @@ class StubJavaResolverCache(resolveSession: ResolveSession) : AbstractJavaResolv
|
||||
|
||||
override fun recordClass(javaClass: JavaClass, descriptor: ClassDescriptor) {}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+3
@@ -157,9 +157,12 @@ class MockKotlinClassifier(override val classId: ClassId,
|
||||
override val isInterface get() = shouldNotBeCalled()
|
||||
override val isAnnotationType get() = shouldNotBeCalled()
|
||||
override val isEnum get() = shouldNotBeCalled()
|
||||
override val isRecord get() = shouldNotBeCalled()
|
||||
override val methods get() = shouldNotBeCalled()
|
||||
override val fields get() = shouldNotBeCalled()
|
||||
override val constructors get() = shouldNotBeCalled()
|
||||
override val recordComponents get() = shouldNotBeCalled()
|
||||
|
||||
override fun hasDefaultConstructor() = shouldNotBeCalled()
|
||||
override val annotations get() = shouldNotBeCalled()
|
||||
override val isDeprecatedInJavaDoc get() = shouldNotBeCalled()
|
||||
|
||||
+3
@@ -65,6 +65,9 @@ class FakeSymbolBasedClass(
|
||||
|
||||
override val isEnum: Boolean get() = false
|
||||
|
||||
override val isRecord: Boolean get() = false
|
||||
|
||||
override val recordComponents: Collection<JavaRecordComponent> get() = emptyList()
|
||||
override val lightClassOriginKind: LightClassOriginKind? get() = null
|
||||
|
||||
override val methods: Collection<JavaMethod> get() = emptyList()
|
||||
|
||||
+6
@@ -133,6 +133,12 @@ class SymbolBasedClass(
|
||||
.filter { it.kind == ElementKind.CONSTRUCTOR }
|
||||
.map { SymbolBasedConstructor(it as ExecutableElement, this, javac) }
|
||||
|
||||
override val isRecord: Boolean
|
||||
get() = false
|
||||
|
||||
override val recordComponents: Collection<JavaRecordComponent>
|
||||
get() = emptyList()
|
||||
|
||||
override fun hasDefaultConstructor() = false // default constructors are explicit in symbols
|
||||
|
||||
override val innerClassNames: Collection<Name>
|
||||
|
||||
@@ -114,6 +114,10 @@ class TreeBasedClass(
|
||||
override val isEnum: Boolean
|
||||
get() = tree.modifiers.flags and Flags.ENUM.toLong() != 0L
|
||||
|
||||
// TODO: Support
|
||||
override val isRecord: Boolean
|
||||
get() = false
|
||||
|
||||
override val lightClassOriginKind: LightClassOriginKind?
|
||||
get() = null
|
||||
|
||||
@@ -134,6 +138,9 @@ class TreeBasedClass(
|
||||
TreeBasedConstructor(constructor as JCTree.JCMethodDecl, compilationUnit, this, javac)
|
||||
}
|
||||
|
||||
override val recordComponents: Collection<JavaRecordComponent>
|
||||
get() = emptyList()
|
||||
|
||||
override fun hasDefaultConstructor() = !isInterface && constructors.isEmpty()
|
||||
|
||||
override val innerClassNames: Collection<Name>
|
||||
|
||||
Reference in New Issue
Block a user