aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/a/pkg/A.java12
-rw-r--r--src/test/java/b/pkg/B.java12
-rw-r--r--src/test/kotlin/com/replaymod/gradle/remap/mapper/TestMixinInjections.kt38
3 files changed, 62 insertions, 0 deletions
diff --git a/src/test/java/a/pkg/A.java b/src/test/java/a/pkg/A.java
index d91a6e5..3143407 100644
--- a/src/test/java/a/pkg/A.java
+++ b/src/test/java/a/pkg/A.java
@@ -3,6 +3,12 @@ package a.pkg;
public class A extends AParent implements AInterface {
private int aField;
+ public A() {
+ }
+
+ public A(A arg) {
+ }
+
public void aMethod() {
}
@@ -21,6 +27,12 @@ public class A extends AParent implements AInterface {
public void commonOverloaded(A arg) {
}
+ public void unmappedOverloaded(Object arg) {
+ }
+
+ public void unmappedOverloaded(A arg) {
+ }
+
@Override
public void aInterfaceMethod() {
}
diff --git a/src/test/java/b/pkg/B.java b/src/test/java/b/pkg/B.java
index 48abdac..030ffa2 100644
--- a/src/test/java/b/pkg/B.java
+++ b/src/test/java/b/pkg/B.java
@@ -3,6 +3,12 @@ package b.pkg;
public class B extends BParent implements BInterface {
private int bField;
+ public B() {
+ }
+
+ public B(B arg) {
+ }
+
public void bMethod() {
}
@@ -21,6 +27,12 @@ public class B extends BParent implements BInterface {
public void commonOverloaded(B arg) {
}
+ public void unmappedOverloaded(Object arg) {
+ }
+
+ public void unmappedOverloaded(B arg) {
+ }
+
@Override
public void bInterfaceMethod() {
}
diff --git a/src/test/kotlin/com/replaymod/gradle/remap/mapper/TestMixinInjections.kt b/src/test/kotlin/com/replaymod/gradle/remap/mapper/TestMixinInjections.kt
index 7b9750e..3f8d55f 100644
--- a/src/test/kotlin/com/replaymod/gradle/remap/mapper/TestMixinInjections.kt
+++ b/src/test/kotlin/com/replaymod/gradle/remap/mapper/TestMixinInjections.kt
@@ -99,4 +99,42 @@ class TestMixinInjections {
}
""".trimIndent()
}
+
+ @Test
+ fun `remaps qualified method argument without mappings for target`() {
+ TestData.remap("""
+ @org.spongepowered.asm.mixin.Mixin(a.pkg.A.class)
+ class MixinA {
+ @org.spongepowered.asm.mixin.injection.Inject(method = "unmappedOverloaded(La/pkg/A;)V")
+ private void test() {}
+ }
+ """.trimIndent()) shouldBe """
+ @org.spongepowered.asm.mixin.Mixin(b.pkg.B.class)
+ class MixinA {
+ @org.spongepowered.asm.mixin.injection.Inject(method = "unmappedOverloaded(Lb/pkg/B;)V")
+ private void test() {}
+ }
+ """.trimIndent()
+ }
+
+ @Test
+ fun `remaps constructor target`() {
+ TestData.remap("""
+ @org.spongepowered.asm.mixin.Mixin(a.pkg.A.class)
+ class MixinA {
+ @org.spongepowered.asm.mixin.injection.Inject(method = "<init>()V")
+ private void test() {}
+ @org.spongepowered.asm.mixin.injection.Inject(method = "<init>(La/pkg/A;)V")
+ private void testArg() {}
+ }
+ """.trimIndent()) shouldBe """
+ @org.spongepowered.asm.mixin.Mixin(b.pkg.B.class)
+ class MixinA {
+ @org.spongepowered.asm.mixin.injection.Inject(method = "<init>()V")
+ private void test() {}
+ @org.spongepowered.asm.mixin.injection.Inject(method = "<init>(Lb/pkg/B;)V")
+ private void testArg() {}
+ }
+ """.trimIndent()
+ }
} \ No newline at end of file