package jadx.tests.integration.inline;
import jadx.core.dex.nodes.ClassNode;
import jadx.tests.api.IntegrationTest;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertThat;
public class TestSyntheticInline extends IntegrationTest {
public static class TestCls {
private int f;
private int func() {
return -1;
}
public class A {
public int getF() {
return f;
}
public void setF(int v) {
f = v;
}
public int callFunc() {
return func();
}
}
}
@Test
public void test() {
ClassNode cls = getClassNode(TestCls.class);
String code = cls.getCode().toString();
assertThat(code, not(containsString("synthetic")));
assertThat(code, not(containsString("access$")));
assertThat(code, not(containsString("x0")));
assertThat(code, containsString("f = v;"));
// assertThat(code, containsString("return f;"));
// assertThat(code, containsString("return func();"));
// Temporary solution
assertThat(code, containsString("return TestSyntheticInline$TestCls.this.f;"));
assertThat(code, containsString("return TestSyntheticInline$TestCls.this.func();"));
}
}