File: Test_2.scala

package info (click to toggle)
scala 2.11.12-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 62,828 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,250; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (29 lines) | stat: -rw-r--r-- 725 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import p.C
import scala.tools.asm.Opcodes
import scala.tools.partest.BytecodeTest
import scala.tools.partest.ASMConverters._


object Test extends BytecodeTest {
  def foo(c: C, x: Int) = c.f(x)
  def goo(c: C, x: Int) = c.g(x)

  def has(i: Instruction, c: String, m: String) = {
    val cls = loadClassNode(c)
    val mth = convertMethod(getMethod(cls, m))
    assert(mth.instructions.contains(i))
  }

  def show(): Unit = {
    assert(foo(new C, -2) == -5L)
    assert(goo(new C, -2) == -10L)

    val bipush2 = IntOp(Opcodes.BIPUSH, -2)
    has(bipush2, "p.C", "f")
    has(bipush2, "Test$", "foo")

    val sipush300 = IntOp(Opcodes.SIPUSH, -300)
    has(sipush300, "p.C", "g")
    has(sipush300, "Test$", "goo")
  }
}