From 0cb2a95ff3c069521b9e837fb011eba306f9545c Mon Sep 17 00:00:00 2001 From: Menci Date: Wed, 10 Dec 2025 23:57:04 +0800 Subject: [PATCH] [F] Fix inheritance in KClass.vars() --- src/main/java/ext/Ext.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/ext/Ext.kt b/src/main/java/ext/Ext.kt index e18bec70..781948af 100644 --- a/src/main/java/ext/Ext.kt +++ b/src/main/java/ext/Ext.kt @@ -83,7 +83,9 @@ annotation class SettingField( // Reflection @Suppress("UNCHECKED_CAST") -fun KClass.vars() = declaredMemberProperties.sortedBy { it.javaField?.declaringClass?.declaredFields?.indexOf(it.javaField) ?: Int.MAX_VALUE }.mapNotNull { it as? Var } +fun KClass.ownVars() = declaredMemberProperties.sortedBy { it.javaField?.declaringClass?.declaredFields?.indexOf(it.javaField) ?: Int.MAX_VALUE }.mapNotNull { it as? Var } +@Suppress("UNCHECKED_CAST") +fun KClass.vars(): List> = supertypes.mapNotNull { it.classifier as? KClass<*> }.filter { !it.java.isInterface }.flatMap{ it.vars() as List> } + ownVars() fun KClass.varsMap() = vars().associateBy { it.name } fun KClass.getters() = java.methods.filter { it.name.startsWith("get") } fun KClass.gettersMap() = getters().associateBy { it.name.removePrefix("get").firstCharLower() }