[TS] Support `push` invocation in `InstanceCallExpr` resolution
@CaelmBleidd がすでに取り組んでいます。
2025年7月3日 から。
評価
この issue はまだ評価されていません。
説明
Current implementation is
// TODO write tests
if (expr.callee.name == "push" && expr.instance.type is EtsArrayType) {
return scope.calcOnState {
val resolvedInstance = resolve(expr.instance)?.asExpr(ctx.addressSort) ?: return@calcOnState null
val lengthLValue = mkArrayLengthLValue(
resolvedInstance,
EtsArrayType(EtsUnknownType, dimensions = 1)
)
val length = memory.read(lengthLValue)
val newLength = mkBvAddExpr(length, 1.toBv())
memory.write(lengthLValue, newLength, guard = ctx.trueExpr)
val resolvedArg = resolve(expr.args.single()) ?: return@calcOnState null
// TODO check sorts compatibility
val newIndexLValue = mkArrayIndexLValue(
resolvedArg.sort,
resolvedInstance,
length,
EtsArrayType(EtsUnknownType, dimensions = 1)
)
memory.write(newIndexLValue, resolvedArg.asExpr(newIndexLValue.sort), guard = ctx.trueExpr)
newLength
}
}
We need to check it and fix if required
- 主要言語
- Kotlin
- スター
- 33
- フォーク
- 27
- 平均マージ
- 4日 3時間
- マージ済み PR(30日)
- 15
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
UnitTestBot/usvm のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 45/100
UnitTestBot/usvm#388 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
UnitTestBot/usvm#384 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
UnitTestBot/usvm#382 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
UnitTestBot/usvm#379 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
UnitTestBot/usvm#373 ·
UnitTestBot/usvm の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
index-request triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
Anthonyy232/Paperize#614 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
bitcoindevkit/bdk-ffi#1125 ·
-
🌑 nextgen
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
CCBlueX/LiquidBounce#9214 · コメント 1 件 ·