Skip to content

Commit 06830a0

Browse files
authored
Fix wildcard targets (#139)
1 parent 64e7855 commit 06830a0

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/data/MemberInfo.java

+20-2
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,26 @@ public static MemberInfo parse(String str) {
129129
@Override
130130
public String toString() {
131131
String owner = getOwner().isEmpty() ? "" : StringUtility.classNameToDesc(getOwner());
132-
String desc = getDesc().isEmpty() ? "" : (Objects.equals(getType(), MemberType.FIELD) ? ":" : "") + getDesc();
133132

134-
return owner + name + quantifier + desc;
133+
return owner + name + quantifier + formattedDesc();
134+
}
135+
136+
private String formattedDesc() {
137+
final String desc = getDesc();
138+
139+
if (desc.isEmpty()) {
140+
return "";
141+
}
142+
143+
if (Objects.equals(getType(), MemberType.FIELD)) {
144+
return ":" + desc;
145+
}
146+
147+
// Wildcards match regardless of descriptor
148+
if (getQuantifier().equals("*")) {
149+
return "";
150+
}
151+
152+
return desc;
135153
}
136154
}

src/test/java/net/fabricmc/tinyremapper/extension/mixin/soft/data/MemberInfoTest.java

+18
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,23 @@ void parse() {
9898
assertEquals(info.getQuantifier(), "");
9999
assertEquals(info.getDesc(), "([C)Ljava/lang/String;");
100100
assertEquals(info.toString(), "([C)Ljava/lang/String;");
101+
102+
info = MemberInfo.parse("<init>*");
103+
assertNotNull(info);
104+
assertNull(info.getType());
105+
assertEquals(info.getOwner(), "");
106+
assertEquals(info.getName(), "<init>");
107+
assertEquals(info.getQuantifier(), "*");
108+
assertEquals(info.getDesc(), "");
109+
assertEquals(info.toString(), "<init>*");
110+
111+
info = new MemberInfo("", "<init>", "*", "()V");
112+
assertNotNull(info);
113+
assertEquals(info.getType(), MemberType.METHOD);
114+
assertEquals(info.getOwner(), "");
115+
assertEquals(info.getName(), "<init>");
116+
assertEquals(info.getQuantifier(), "*");
117+
assertEquals(info.getDesc(), "()V");
118+
assertEquals(info.toString(), "<init>*");
101119
}
102120
}

0 commit comments

Comments
 (0)