diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java index 33d8a203f..a2d0fcc94 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java @@ -463,8 +463,8 @@ public class ModVisitor extends AbstractVisitor { SSAVar sVar = reg.getSVar(); if (sVar != null) { sVar.getCodeVar().setFinal(true); - sVar.getAssign().add(AFlag.DONT_INLINE); } + reg.add(AFlag.DONT_INLINE); reg.add(AFlag.SKIP_ARG); } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass17.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass17.java new file mode 100644 index 000000000..14c8fd2f1 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass17.java @@ -0,0 +1,40 @@ +package jadx.tests.integration.inner; + +import org.junit.jupiter.api.Test; + +import jadx.tests.api.IntegrationTest; + +import static jadx.tests.api.utils.assertj.JadxAssertions.assertThat; + +public class TestAnonymousClass17 extends IntegrationTest { + + public static class TestCls { + + @SuppressWarnings({ "checkstyle:InnerAssignment", "Convert2Lambda" }) + public void test(boolean a, boolean b) { + String v; + if (a && (v = get(b)) != null) { + use(new Runnable() { + @Override + public void run() { + System.out.println(v); + } + }); + } + } + + public String get(boolean a) { + return a ? "str" : null; + } + + public void use(Runnable r) { + } + } + + @Test + public void test() { + assertThat(getClassNode(TestCls.class)) + .code() + .containsOne("if (a && (v = get(b)) != null) {"); + } +}