Skip to content

Commit

Permalink
fix param resolve. remove CR
Browse files Browse the repository at this point in the history
  • Loading branch information
wagyourtail committed Oct 1, 2024
1 parent 0938bd3 commit 9810466
Show file tree
Hide file tree
Showing 7 changed files with 2,552 additions and 7 deletions.
4 changes: 4 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,12 @@ kotlin {
val jvmMain by getting {
dependencies {
api(libs.appache.commons.compress)

api(libs.asm)
api(libs.asm.tree)

api(libs.slf4j.api)
api(libs.slf4j.simple)
}
}
val jvmTest by getting {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ interface FormatReader {
envType: EnvType = EnvType.JOINED,
nsMapping: Map<String, String> = mapOf()
): MemoryMappingTree = MemoryMappingTree().also {
read(StringCharReader(content), null, it, envType, nsMapping)
read(StringCharReader(content.replace("\r", "")), null, it, envType, nsMapping)
}

suspend fun read(
Expand All @@ -31,7 +31,7 @@ interface FormatReader {
envType: EnvType = EnvType.JOINED,
nsMapping: Map<String, String> = mapOf()
) {
read(StringCharReader(content), into, into, envType, nsMapping)
read(StringCharReader(content.replace("\r", "")), into, into, envType, nsMapping)
}

suspend fun read(
Expand All @@ -40,7 +40,7 @@ interface FormatReader {
into: MappingVisitor,
envType: EnvType = EnvType.JOINED,
nsMapping: Map<String, String> = mapOf()
) = read(StringCharReader(content), context, into, envType, nsMapping)
) = read(StringCharReader(content.replace("\r", "")), context, into, envType, nsMapping)

suspend fun read(
input: BufferedSource,
Expand All @@ -56,7 +56,7 @@ interface FormatReader {
envType: EnvType = EnvType.JOINED,
nsMapping: Map<String, String> = mapOf()
) {
read(StringCharReader(input.readUtf8()), into, into, envType, nsMapping)
read(StringCharReader(input.readUtf8().replace("\r", "")), into, into, envType, nsMapping)
}

suspend fun read(
Expand All @@ -66,7 +66,7 @@ interface FormatReader {
envType: EnvType = EnvType.JOINED,
nsMapping: Map<String, String> = mapOf()
) {
read(StringCharReader(input.readUtf8()), context, into, envType, nsMapping)
read(StringCharReader(input.readUtf8().replace("\r", "")), context, into, envType, nsMapping)
}

suspend fun read(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package xyz.wagyourtail.unimined.mapping.jvms

import xyz.wagyourtail.commonskt.reader.CharReader
import xyz.wagyourtail.commonskt.reader.StringCharReader
import xyz.wagyourtail.commonskt.utils.escape

interface TypeCompanion<T> {

Expand All @@ -11,7 +12,7 @@ interface TypeCompanion<T> {
StringCharReader(value).let { buf ->
val readVal = read(buf)
if (!buf.exhausted()) {
throw IllegalArgumentException("Invalid type: \"$value\", not fully read, remaining: \"${buf.takeRemaining().let { if (it.length > 100) it.substring(0, 100) + "..." else it }}\"")
throw IllegalArgumentException("Invalid type: \"${value.escape()}\", not fully read, remaining: \"${buf.takeRemaining().let { if (it.length > 100) it.substring(0, 100) + "..." else it }.escape()}\"")
}
readVal
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ abstract class MappingResolver<T : MappingResolver<T>>(val name: String) {
if (!format.getSide(file, zip.getContents(file)).contains(envType)) continue
val fileName = file.replace("\\", "/").substringAfterLast("/")
val provider = ContentProvider.of(fileName, zip.getContents(file))
val entry = MappingEntry(provider, "$id/${fileName.substringBeforeLast(".")}")
val entry = MappingEntry(provider, "$id/$fileName")
entry.combineWith(this)
entry.provider = format
this.subEntries.forEach { entry.it(provider, format) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,14 @@ class ParameterNode<T: InvokableVisitor<T>>(
}

fun doMerge(target: ParameterNode<T>) {
target.setNames(names)
acceptInner(target, root.namespaces)
}

override fun merge(element: ParameterNode<T>): ParameterNode<T>? {
if (element.index == null && element.lvOrd == null) {
element.index = index
element.lvOrd = lvOrd
doMerge(element)
return element
}
Expand All @@ -65,6 +68,7 @@ class ParameterNode<T: InvokableVisitor<T>>(
}
return null
}
if (lvOrd != null) element.lvOrd = lvOrd
doMerge(element)
return element
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
package xyz.wagyourtail.unimined.mapping.test.formats.mcp

import kotlinx.coroutines.test.runTest
import okio.Buffer
import okio.Options
import okio.use
import xyz.wagyourtail.unimined.mapping.EnvType
import xyz.wagyourtail.unimined.mapping.formats.mcpconfig.MCPConfigConstructorReader
import xyz.wagyourtail.unimined.mapping.formats.umf.UMFWriter
import kotlin.test.Test
import kotlin.test.assertEquals

class ConstructorReadTest {

val contents = """
1009 net/minecraft/client/Minecraft${'$'}13 (Lnet/minecraft/client/Minecraft;)V
1010 net/minecraft/client/Minecraft${'$'}14 (Lnet/minecraft/client/Minecraft;)V
1011 net/minecraft/client/Minecraft${'$'}15 (Lnet/minecraft/client/Minecraft;)V
1015 net/minecraft/client/settings/GameSettings${'$'}Options (Ljava/lang/String;ILjava/lang/String;ZZ)V
1017 net/minecraft/client/LoadingScreenRenderer (Lnet/minecraft/client/Minecraft;)V
1018 net/minecraft/util/Timer (F)V
1020 net/minecraft/client/gui/GuiButton (IIILjava/lang/String;)V
1022 net/minecraft/client/gui/GuiNewChat (Lnet/minecraft/client/Minecraft;)V
1023 net/minecraft/client/gui/ScreenChatOptions (Lnet/minecraft/client/gui/GuiScreen;Lnet/minecraft/client/settings/GameSettings;)V
1024 net/minecraft/client/gui/GuiChat (Ljava/lang/String;)V
""".trimIndent()

@Test
fun testReadCtorFile() = runTest {
val tree = Buffer().use {
it.writeUtf8(contents)
MCPConfigConstructorReader.read(it)
}

val out = Buffer().use {
tree.accept(UMFWriter.write(EnvType.CLIENT, it, true))
it.readUtf8()
}

assertEquals("""
umf 1 0
searge
c net/minecraft/client/Minecraft${'$'}13
m <init>;(Lnet/minecraft/client/Minecraft;)V
p 0 1 p_i1009_1
c net/minecraft/client/Minecraft${'$'}14
m <init>;(Lnet/minecraft/client/Minecraft;)V
p 0 1 p_i1010_1
c net/minecraft/client/Minecraft${'$'}15
m <init>;(Lnet/minecraft/client/Minecraft;)V
p 0 1 p_i1011_1
c net/minecraft/client/settings/GameSettings${'$'}Options
m <init>;(Ljava/lang/String;ILjava/lang/String;ZZ)V
p 0 1 p_i1015_1
p 1 2 p_i1015_2
p 2 3 p_i1015_3
p 3 4 p_i1015_4
p 4 5 p_i1015_5
c net/minecraft/client/LoadingScreenRenderer
m <init>;(Lnet/minecraft/client/Minecraft;)V
p 0 1 p_i1017_1
c net/minecraft/util/Timer
m <init>;(F)V
p 0 1 p_i1018_1
c net/minecraft/client/gui/GuiButton
m <init>;(IIILjava/lang/String;)V
p 0 1 p_i1020_1
p 1 2 p_i1020_2
p 2 3 p_i1020_3
p 3 4 p_i1020_4
c net/minecraft/client/gui/GuiNewChat
m <init>;(Lnet/minecraft/client/Minecraft;)V
p 0 1 p_i1022_1
c net/minecraft/client/gui/ScreenChatOptions
m <init>;(Lnet/minecraft/client/gui/GuiScreen;Lnet/minecraft/client/settings/GameSettings;)V
p 0 1 p_i1023_1
p 1 2 p_i1023_2
c net/minecraft/client/gui/GuiChat
m <init>;(Ljava/lang/String;)V
p 0 1 p_i1024_1
""".trimIndent(), out)
}

}
Loading

0 comments on commit 9810466

Please sign in to comment.