Skip to content

Commit 6268593

Browse files
authored
Expand local variable names to assignable registers (#328)
* Add proper names for assignees * Fix style * Fix disappearing assigns * Remove unused argument
1 parent 5889d3c commit 6268593

File tree

4 files changed

+161
-42
lines changed

4 files changed

+161
-42
lines changed

jacodb-api-jvm/src/main/kotlin/org/jacodb/api/jvm/cfg/JcRawInst.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -862,13 +862,20 @@ data class JcRawArgument(
862862
}
863863
}
864864

865+
enum class LocalVarKind {
866+
UNKNOWN,
867+
ORIGINAL,
868+
NAMED_LOCAL,
869+
}
870+
865871
/**
866872
* @param name isn't considered in `equals` and `hashcode`
867873
*/
868874
data class JcRawLocalVar(
869875
val index: Int,
870876
override val name: String,
871877
override val typeName: TypeName,
878+
val kind: LocalVarKind = LocalVarKind.UNKNOWN,
872879
) : JcRawLocal {
873880
override fun toString(): String = name
874881

jacodb-core/src/main/kotlin/org/jacodb/impl/cfg/JcInstListBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ class JcInstListBuilder(val method: JcMethod,val instList: JcInstList<JcRawInst>
7575
inst.lhv.let { unprocessedLhv ->
7676
if (unprocessedLhv is JcRawLocalVar && unprocessedLhv.typeName == UNINIT_THIS) {
7777
convertedLocalVars.getOrPut(unprocessedLhv) {
78-
JcRawLocalVar(unprocessedLhv.index, unprocessedLhv.name, inst.rhv.typeName)
78+
JcRawLocalVar(unprocessedLhv.index, unprocessedLhv.name, inst.rhv.typeName, unprocessedLhv.kind)
7979
}
8080
} else {
8181
unprocessedLhv

0 commit comments

Comments
 (0)