aboutsummaryrefslogtreecommitdiff
path: root/src/test/kotlin/com/replaymod/gradle/remap/mapper
diff options
context:
space:
mode:
authorJonas Herzig <me@johni0702.de>2022-05-27 07:39:18 +0200
committerJonas Herzig <me@johni0702.de>2022-05-27 08:46:01 +0200
commitcde89808e3d9730fe784597bd6bbfc51753663a1 (patch)
treea8b654c6ff58f4fd0e965f91e79811721f52bb4d /src/test/kotlin/com/replaymod/gradle/remap/mapper
parent4019ebe20786059fdce5b25c7cf6d746a083eef3 (diff)
downloadRemap-cde89808e3d9730fe784597bd6bbfc51753663a1.tar.gz
Remap-cde89808e3d9730fe784597bd6bbfc51753663a1.tar.bz2
Remap-cde89808e3d9730fe784597bd6bbfc51753663a1.zip
Add support for adding missing and removing unused imports
This adds a post-process step which automatically adds unambiguous imports, removes unused imports and sorts the import list (formatting matches standard IntelliJ settings). This will preserve line count across versions at all cost. Java only for now because it's a lot more tricky with Kotlin and we don't yet use Kotlin ourselves (and won't be preprocessing it in the future either).
Diffstat (limited to 'src/test/kotlin/com/replaymod/gradle/remap/mapper')
-rw-r--r--src/test/kotlin/com/replaymod/gradle/remap/mapper/mixin/TestMixinAnnotation.kt8
-rw-r--r--src/test/kotlin/com/replaymod/gradle/remap/mapper/mixin/TestMixinInjections.kt18
2 files changed, 14 insertions, 12 deletions
diff --git a/src/test/kotlin/com/replaymod/gradle/remap/mapper/mixin/TestMixinAnnotation.kt b/src/test/kotlin/com/replaymod/gradle/remap/mapper/mixin/TestMixinAnnotation.kt
index bc7cd8f..729b00d 100644
--- a/src/test/kotlin/com/replaymod/gradle/remap/mapper/mixin/TestMixinAnnotation.kt
+++ b/src/test/kotlin/com/replaymod/gradle/remap/mapper/mixin/TestMixinAnnotation.kt
@@ -8,9 +8,11 @@ class TestMixinAnnotation {
@Test
fun `remaps with class target`() {
TestData.remap("""
+ import org.spongepowered.asm.mixin.Shadow;
@org.spongepowered.asm.mixin.Mixin(a.pkg.A.class)
class MixinA { @Shadow private int aField; }
""".trimIndent()) shouldBe """
+ import org.spongepowered.asm.mixin.Shadow;
@org.spongepowered.asm.mixin.Mixin(b.pkg.B.class)
class MixinA { @Shadow private int bField; }
""".trimIndent()
@@ -19,9 +21,11 @@ class TestMixinAnnotation {
@Test
fun `remaps with string target`() {
TestData.remap("""
+ import org.spongepowered.asm.mixin.Shadow;
@org.spongepowered.asm.mixin.Mixin(targets = "a.pkg.A")
class MixinA { @Shadow private int aField; }
""".trimIndent()) shouldBe """
+ import org.spongepowered.asm.mixin.Shadow;
@org.spongepowered.asm.mixin.Mixin(targets = "b.pkg.B")
class MixinA { @Shadow private int bField; }
""".trimIndent()
@@ -31,9 +35,11 @@ class TestMixinAnnotation {
fun `remaps with inner class string target separated by dot`() {
// FIXME should probably keep the dot?
TestData.remap("""
+ import org.spongepowered.asm.mixin.Shadow;
@org.spongepowered.asm.mixin.Mixin(targets = "a.pkg.A.Inner")
class MixinA { @Shadow private int aField; }
""".trimIndent()) shouldBe """
+ import org.spongepowered.asm.mixin.Shadow;
@org.spongepowered.asm.mixin.Mixin(targets = "b.pkg.B${'$'}Inner")
class MixinA { @Shadow private int bField; }
""".trimIndent()
@@ -42,9 +48,11 @@ class TestMixinAnnotation {
@Test
fun `remaps with inner class string target separated by dollar`() {
TestData.remap("""
+ import org.spongepowered.asm.mixin.Shadow;
@org.spongepowered.asm.mixin.Mixin(targets = "a.pkg.A${'$'}Inner")
class MixinA { @Shadow private int aField; }
""".trimIndent()) shouldBe """
+ import org.spongepowered.asm.mixin.Shadow;
@org.spongepowered.asm.mixin.Mixin(targets = "b.pkg.B${'$'}Inner")
class MixinA { @Shadow private int bField; }
""".trimIndent()
diff --git a/src/test/kotlin/com/replaymod/gradle/remap/mapper/mixin/TestMixinInjections.kt b/src/test/kotlin/com/replaymod/gradle/remap/mapper/mixin/TestMixinInjections.kt
index da68496..65fbc69 100644
--- a/src/test/kotlin/com/replaymod/gradle/remap/mapper/mixin/TestMixinInjections.kt
+++ b/src/test/kotlin/com/replaymod/gradle/remap/mapper/mixin/TestMixinInjections.kt
@@ -181,16 +181,14 @@ class TestMixinInjections {
@Test
fun `remaps @At target`() {
TestData.remap("""
- import org.spongepowered.asm.mixin.injection.At;
- import org.spongepowered.asm.mixin.injection.Inject;
+ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject;
@org.spongepowered.asm.mixin.Mixin(a.pkg.A.class)
class MixinA {
@Inject(method = "aMethod", at = @At(target = "La/pkg/A;aInterfaceMethod()V"))
private void test() {}
}
""".trimIndent()) shouldBe """
- import org.spongepowered.asm.mixin.injection.At;
- import org.spongepowered.asm.mixin.injection.Inject;
+ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject;
@org.spongepowered.asm.mixin.Mixin(b.pkg.B.class)
class MixinA {
@Inject(method = "bMethod", at = @At(target = "Lb/pkg/B;bInterfaceMethod()V"))
@@ -202,16 +200,14 @@ class TestMixinInjections {
@Test
fun `remaps @At target without mappings for target`() {
TestData.remap("""
- import org.spongepowered.asm.mixin.injection.At;
- import org.spongepowered.asm.mixin.injection.Inject;
+ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject;
@org.spongepowered.asm.mixin.Mixin(a.pkg.A.class)
class MixinA {
@Inject(method = "aMethod", at = @At(target = "La/pkg/A;unmappedOverloaded(La/pkg/A;)V"))
private void test() {}
}
""".trimIndent()) shouldBe """
- import org.spongepowered.asm.mixin.injection.At;
- import org.spongepowered.asm.mixin.injection.Inject;
+ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject;
@org.spongepowered.asm.mixin.Mixin(b.pkg.B.class)
class MixinA {
@Inject(method = "bMethod", at = @At(target = "Lb/pkg/B;unmappedOverloaded(Lb/pkg/B;)V"))
@@ -223,8 +219,7 @@ class TestMixinInjections {
@Test
fun `remaps @At target in constant`() {
TestData.remap("""
- import org.spongepowered.asm.mixin.injection.At;
- import org.spongepowered.asm.mixin.injection.Inject;
+ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject;
@org.spongepowered.asm.mixin.Mixin(a.pkg.A.class)
class MixinA {
private static final String TARGET = "La/pkg/A;aInterfaceMethod()V";
@@ -234,8 +229,7 @@ class TestMixinInjections {
private void test2() {}
}
""".trimIndent()) shouldBe """
- import org.spongepowered.asm.mixin.injection.At;
- import org.spongepowered.asm.mixin.injection.Inject;
+ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject;
@org.spongepowered.asm.mixin.Mixin(b.pkg.B.class)
class MixinA {
private static final String TARGET = "Lb/pkg/B;bInterfaceMethod()V";