Refine variable resolution logic, update type alias syntax

This commit is contained in:
sergeych committed 2026-02-17 08:17:57 +03:00
1 parent b6851b7098
commit df19524177
4 files changed
+37 -7

No files matched your search

@@ -7063,9 +7063,24 @@ class BytecodeCompiler(
private fun isKnownClassReceiver(ref: ObjRef): Boolean {
return when (ref) {
is LocalVarRef -> knownClassNames.contains(ref.name) && !knownObjectNames.contains(ref.name)
is LocalSlotRef -> knownClassNames.contains(ref.name) && !knownObjectNames.contains(ref.name)
is FastLocalVarRef -> knownClassNames.contains(ref.name) && !knownObjectNames.contains(ref.name)
is LocalVarRef -> {
val name = ref.name
if (localSlotIndexByName.containsKey(name)) return false
if (localSlotInfoMap.values.any { it.name == name }) return false
knownClassNames.contains(name) && !knownObjectNames.contains(name)
}
is LocalSlotRef -> {
val name = ref.name
if (localSlotIndexByName.containsKey(name)) return false
if (localSlotInfoMap.values.any { it.name == name }) return false
knownClassNames.contains(name) && !knownObjectNames.contains(name)
}
is FastLocalVarRef -> {
val name = ref.name
if (localSlotIndexByName.containsKey(name)) return false
if (localSlotInfoMap.values.any { it.name == name }) return false
knownClassNames.contains(name) && !knownObjectNames.contains(name)
}
else -> false
}
}