wave N+1: vfbuild15 fixes (EF lambda copies, tf clip reverts, mixin casts, unprivate
This commit is contained in:
parent
ab59aff082
commit
1434ba25c4
10 changed files with 277 additions and 13 deletions
81
build-logs/vfbuild15.log
Normal file
81
build-logs/vfbuild15.log
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
/storage/aboba/evovis-client/src/main/java/defpackage/yc.java:258: error: local variables referenced from a lambda expression must be final or effectively final
|
||||
if (!var1.contains(var2x.getTheme())) {
|
||||
^
|
||||
/storage/aboba/evovis-client/src/main/java/defpackage/yc.java:1555: error: local variables referenced from a lambda expression must be final or effectively final
|
||||
var5x = (var3x.getName().toLowerCase().contains(var1)) ? 1 : 0;
|
||||
^
|
||||
/storage/aboba/evovis-client/src/main/java/defpackage/yc.java:1563: error: local variables referenced from a lambda expression must be final or effectively final
|
||||
if (var3x.getCategory() == var2) {
|
||||
^
|
||||
/storage/aboba/evovis-client/src/main/java/defpackage/ach.java:458: error: no suitable method found for comparing((var0)->va[...]ROOT))
|
||||
var6 = Comparator.<mo>comparing(var0 -> var0.stack().getHoverName().getString().toLowerCase(Locale.ROOT));
|
||||
^
|
||||
method Comparator.<T#1,U#1>comparing(Function<? super T#1,? extends U#1>,Comparator<? super U#1>) is not applicable
|
||||
(wrong number of type arguments; required 2)
|
||||
method Comparator.<T#2,U#2>comparing(Function<? super T#2,? extends U#2>) is not applicable
|
||||
(wrong number of type arguments; required 2)
|
||||
where T#1,U#1,T#2,U#2 are type-variables:
|
||||
T#1 extends Object declared in method <T#1,U#1>comparing(Function<? super T#1,? extends U#1>,Comparator<? super U#1>)
|
||||
U#1 extends Object declared in method <T#1,U#1>comparing(Function<? super T#1,? extends U#1>,Comparator<? super U#1>)
|
||||
T#2 extends Object declared in method <T#2,U#2>comparing(Function<? super T#2,? extends U#2>)
|
||||
U#2 extends Comparable<? super U#2> declared in method <T#2,U#2>comparing(Function<? super T#2,? extends U#2>)
|
||||
/storage/aboba/evovis-client/src/main/java/defpackage/ald.java:126: error: alc(BakedQuad[],Direction[],int[]) has private access in alc
|
||||
return new alc(
|
||||
^
|
||||
/storage/aboba/evovis-client/src/main/java/defpackage/ans.java:161: error: incompatible types: ArrayList<anr> cannot be converted to List<anq>
|
||||
this.parseTraf(var5, var2.offset(), var4);
|
||||
^
|
||||
/storage/aboba/evovis-client/src/main/java/defpackage/ans.java:177: error: incompatible types: ArrayList<anr> cannot be converted to List<anq>
|
||||
return var4;
|
||||
^
|
||||
/storage/aboba/evovis-client/src/main/java/defpackage/hl.java:89: error: incompatible types: cannot infer type-variable(s) T
|
||||
var7.sort(Comparator.comparingDouble(hh::weight).reversed());
|
||||
^
|
||||
(argument mismatch; invalid method reference
|
||||
method weight in class hh cannot be applied to given types
|
||||
required: no arguments
|
||||
found: Object
|
||||
reason: actual and formal argument lists differ in length)
|
||||
where T is a type-variable:
|
||||
T extends Object declared in method <T>comparingDouble(ToDoubleFunction<? super T>)
|
||||
/storage/aboba/evovis-client/src/main/java/defpackage/tf.java:279: error: incompatible types: invalid method reference
|
||||
var16 = var15.clip(var2, var3).map(BlockHitResult::getLocation);
|
||||
^
|
||||
method getLocation in class HitResult cannot be applied to given types
|
||||
required: no arguments
|
||||
found: Vec3
|
||||
reason: actual and formal argument lists differ in length
|
||||
/storage/aboba/evovis-client/src/main/java/defpackage/tf.java:488: error: incompatible types: Optional<Vec3> cannot be converted to Optional<BlockHitResult>
|
||||
var13 = var7.clip(var10, var11);
|
||||
^
|
||||
/storage/aboba/evovis-client/src/main/java/defpackage/ux.java:281: error: render(VertexConsumer,Pose,Vec3,long,long,boolean,boolean,float,uv) has private access in uw
|
||||
this.particles.get(var12x).render(var11x, var10x, var13, var6, var8, var16, var17 != 0, var18, var19);
|
||||
^
|
||||
/storage/aboba/evovis-client/src/main/java/b/t.java:50: error: incompatible types: ParseResults<SharedSuggestionProvider> cannot be converted to ParseResults<ClientSuggestionProvider>
|
||||
this.currentParse = defpackage.bz.getInstance().getCommandManager().getDispatcher().parse(reader, defpackage.bz.getInstance().getCommandManager().getSource());
|
||||
^
|
||||
/storage/aboba/evovis-client/src/main/java/b/t.java:55: error: incompatible types: ParseResults<ClientSuggestionProvider> cannot be converted to ParseResults<SharedSuggestionProvider>
|
||||
this.pendingSuggestions = defpackage.bz.getInstance().getCommandManager().getDispatcher().getCompletionSuggestions((ParseResults<SharedSuggestionProvider>)this.currentParse, cursor);
|
||||
^
|
||||
Note: Some input files use or override a deprecated API.
|
||||
Note: Recompile with -Xlint:deprecation for details.
|
||||
Note: Some input files use unchecked or unsafe operations.
|
||||
Note: Recompile with -Xlint:unchecked for details.
|
||||
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
|
||||
13 errors
|
||||
|
||||
FAILURE: Build failed with an exception.
|
||||
|
||||
* What went wrong:
|
||||
Execution failed for task ':compileJava' (registered by plugin class 'org.gradle.api.plugins.JavaBasePlugin').
|
||||
> Compilation failed; see the compiler output below.
|
||||
/storage/aboba/evovis-client/src/main/java/defpackage/yc.java:258: error: local variables referenced from a lambda expression must be final or effectively final
|
||||
if (!var1.contains(var2x.getTheme())) {
|
||||
^
|
||||
13 errors
|
||||
|
||||
* Try:
|
||||
> Check your code and dependencies to fix the compilation error(s)
|
||||
> Run with --scan to get full insights from a Build Scan (powered by Develocity).
|
||||
|
||||
BUILD FAILED in 24s
|
||||
|
|
@ -47,12 +47,12 @@ public abstract class t {
|
|||
&& reader.getString().startsWith(defpackage.bz.getInstance().getCommandManager().getPrefix(), reader.getCursor())) {
|
||||
reader.setCursor(reader.getCursor() + 1);
|
||||
if (this.currentParse == null) {
|
||||
this.currentParse = defpackage.bz.getInstance().getCommandManager().getDispatcher().parse(reader, defpackage.bz.getInstance().getCommandManager().getSource());
|
||||
this.currentParse = (ParseResults<ClientSuggestionProvider>)(Object)defpackage.bz.getInstance().getCommandManager().getDispatcher().parse(reader, defpackage.bz.getInstance().getCommandManager().getSource());
|
||||
}
|
||||
|
||||
int cursor = this.input.getCursorPosition();
|
||||
if (cursor >= 1 && (this.suggestions == null || !this.keepSuggestions)) {
|
||||
this.pendingSuggestions = defpackage.bz.getInstance().getCommandManager().getDispatcher().getCompletionSuggestions((ParseResults<SharedSuggestionProvider>)this.currentParse, cursor);
|
||||
this.pendingSuggestions = defpackage.bz.getInstance().getCommandManager().getDispatcher().getCompletionSuggestions((ParseResults<SharedSuggestionProvider>)(Object)this.currentParse, cursor);
|
||||
this.pendingSuggestions.thenAccept(s -> {
|
||||
if (this.pendingSuggestions.isDone()) {
|
||||
this.updateUsageInfo(this.currentParse, s);
|
||||
|
|
|
|||
|
|
@ -455,7 +455,7 @@ public final class ach extends api {
|
|||
var4 = 734420006;
|
||||
break;
|
||||
case -1343783297:
|
||||
var6 = Comparator.<mo>comparing(var0 -> var0.stack().getHoverName().getString().toLowerCase(Locale.ROOT));
|
||||
var6 = Comparator.<mo, String>comparing(var0 -> var0.stack().getHoverName().getString().toLowerCase(Locale.ROOT));
|
||||
var4 = 1334135620;
|
||||
break;
|
||||
case -577531470:
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ public final class alc {
|
|||
private final Direction[] cullFaces;
|
||||
private final int[] colors;
|
||||
|
||||
private alc(BakedQuad[] var1, Direction[] var2, int[] var3) {
|
||||
alc(BakedQuad[] var1, Direction[] var2, int[] var3) {
|
||||
this.quads = var1;
|
||||
this.cullFaces = var2;
|
||||
this.colors = var3;
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ final class ans {
|
|||
List<anq> readSegment(int var1) throws IOException {
|
||||
anr var2 = null;
|
||||
ByteBuffer var3 = null;
|
||||
ArrayList<anr> var4 = null;
|
||||
ArrayList<anq> var4 = null;
|
||||
ByteBuffer var5 = null;
|
||||
int var6 = -1556286043;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ final class hh {
|
|||
this.key = var1;
|
||||
}
|
||||
|
||||
private double weight() {
|
||||
double weight() {
|
||||
return this.key.nutrition() + this.key.saturation();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -276,7 +276,7 @@ public final class tf extends rm {
|
|||
case -525984328:
|
||||
var14 = (Entity)var13.next();
|
||||
var15 = this.renderBox(var14, var7).inflate(var14.getPickRadius());
|
||||
var16 = var15.clip(var2, var3).map(BlockHitResult::getLocation);
|
||||
var16 = var15.clip(var2, var3);
|
||||
if (var15.contains(var2)) {
|
||||
var20 = 814856296;
|
||||
} else {
|
||||
|
|
@ -479,14 +479,14 @@ public final class tf extends rm {
|
|||
Vec3 var10 = null;
|
||||
Vec3 var11 = null;
|
||||
BlockHitResult var12 = null;
|
||||
Optional<BlockHitResult> var13 = null;
|
||||
Optional<Vec3> var13 = null;
|
||||
int var14 = -1643872642;
|
||||
|
||||
while (true) {
|
||||
switch (var14) {
|
||||
case -1998940837:
|
||||
var13 = var7.clip(var10, var11);
|
||||
return var13.<EntityHitResult>map(var1x -> new EntityHitResult(var2, var1x.getLocation())).orElse(null);
|
||||
return var13.<EntityHitResult>map(var1x -> new EntityHitResult(var2, var1x)).orElse(null);
|
||||
case -1643872642:
|
||||
default:
|
||||
var7 = this.renderBox(var2, var6);
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ final class uw {
|
|||
}
|
||||
}
|
||||
|
||||
private void render(VertexConsumer var1, Pose var2, Vec3 var3, long var4, long var6, boolean var8, boolean var9, float var10, uv var11) {
|
||||
void render(VertexConsumer var1, Pose var2, Vec3 var3, long var4, long var6, boolean var8, boolean var9, float var10, uv var11) {
|
||||
int var12 = var11.of(this);
|
||||
float var13 = this.lifeAlpha(var4, var6);
|
||||
if (!(var13 <= 0.0F)) {
|
||||
|
|
|
|||
|
|
@ -228,6 +228,7 @@ public class yc extends api {
|
|||
case 1629176927:
|
||||
default:
|
||||
var1 = bz.getInstance().getThemeManager().getThemes();
|
||||
final List var1f = var1;
|
||||
this.modules.removeIf(var1x -> {
|
||||
aae var2x = null;
|
||||
int var4x = 0;
|
||||
|
|
@ -255,7 +256,7 @@ public class yc extends api {
|
|||
break;
|
||||
case 1874733119:
|
||||
var2x = (aae)var1x;
|
||||
if (!var1.contains(var2x.getTheme())) {
|
||||
if (!var1f.contains(var2x.getTheme())) {
|
||||
var3x = 1205756249;
|
||||
} else {
|
||||
var3x = 1245967796;
|
||||
|
|
@ -1544,6 +1545,8 @@ public class yc extends api {
|
|||
}
|
||||
break;
|
||||
case 2121200736:
|
||||
final String var1f = var1;
|
||||
final rl var2f = var2;
|
||||
var3 = this.resolveOrder(var2);
|
||||
this.cachedVisibleModules = this.modules.stream().filter(var3x -> {
|
||||
int var5x = 0;
|
||||
|
|
@ -1552,7 +1555,7 @@ public class yc extends api {
|
|||
while (true) {
|
||||
switch (var4x) {
|
||||
case -1994053734:
|
||||
var5x = (var3x.getName().toLowerCase().contains(var1)) ? 1 : 0;
|
||||
var5x = (var3x.getName().toLowerCase().contains(var1f)) ? 1 : 0;
|
||||
var4x = 841569715;
|
||||
break;
|
||||
case -1559034135:
|
||||
|
|
@ -1560,7 +1563,7 @@ public class yc extends api {
|
|||
var4x = 841569715;
|
||||
break;
|
||||
case -68546177:
|
||||
if (var3x.getCategory() == var2) {
|
||||
if (var3x.getCategory() == var2f) {
|
||||
var4x = 1684260877;
|
||||
} else {
|
||||
var4x = -1559034135;
|
||||
|
|
|
|||
180
tools/waves_n1.py
Normal file
180
tools/waves_n1.py
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
"""Волна N+1 поверх vfbuild15 (13 ошибок). Запуск: python3 tools/waves_n1.py"""
|
||||
|
||||
import os, sys, collections
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
JAVA = os.path.join(ROOT, "src/main/java")
|
||||
stats = collections.Counter()
|
||||
files = {}
|
||||
|
||||
|
||||
def get(rel):
|
||||
p = rel if os.path.isabs(rel) else os.path.join(JAVA, rel)
|
||||
if p not in files:
|
||||
files[p] = open(p, encoding="utf-8", errors="replace").read().splitlines()
|
||||
return files[p]
|
||||
|
||||
|
||||
def edit_line(rel, ln, old, new, tag="n"):
|
||||
L = get(rel)
|
||||
i = ln - 1
|
||||
if i >= len(L):
|
||||
stats[tag + "_MISS"] += 1
|
||||
print(f"MISS {rel}:{ln} (oob {len(L)})")
|
||||
return
|
||||
if old in L[i]:
|
||||
L[i] = L[i].replace(old, new, 1)
|
||||
stats[tag] += 1
|
||||
elif new in L[i]:
|
||||
stats[tag + "_skip"] += 1
|
||||
else:
|
||||
stats[tag + "_MISS"] += 1
|
||||
print(f"MISS {rel}:{ln}: {old!r}\n got: {L[i].strip()!r}")
|
||||
|
||||
|
||||
def edit_all(rel, old, new, tag="n"):
|
||||
L = get(rel)
|
||||
c = 0
|
||||
for i, l in enumerate(L):
|
||||
if old in l:
|
||||
L[i] = l.replace(old, new)
|
||||
c += 1
|
||||
if c:
|
||||
stats[tag] += c
|
||||
elif any(new in l for l in L):
|
||||
stats[tag + "_skip"] += 1
|
||||
else:
|
||||
stats[tag + "_MISS"] += 1
|
||||
print(f"MISS-ALL {rel}: {old!r}")
|
||||
|
||||
|
||||
def insert_before(rel, ln, lines, tag="ins"):
|
||||
L = get(rel)
|
||||
i = ln - 1
|
||||
if i > len(L):
|
||||
stats[tag + "_MISS"] += 1
|
||||
print(f"INS-MISS {rel}:{ln} oob")
|
||||
return
|
||||
if lines[0] in L[max(0, i - 3) : i]:
|
||||
stats[tag + "_skip"] += 1
|
||||
return
|
||||
L[i:i] = lines
|
||||
stats[tag] += len(lines)
|
||||
|
||||
|
||||
# line edits, per file descending
|
||||
EDIT_LINE_TABLE = [
|
||||
(
|
||||
"defpackage/yc.java",
|
||||
1563,
|
||||
"if (var3x.getCategory() == var2) {",
|
||||
"if (var3x.getCategory() == var2f) {",
|
||||
),
|
||||
(
|
||||
"defpackage/yc.java",
|
||||
1555,
|
||||
".contains(var1)) ? 1 : 0;",
|
||||
".contains(var1f)) ? 1 : 0;",
|
||||
),
|
||||
(
|
||||
"defpackage/yc.java",
|
||||
258,
|
||||
"if (!var1.contains(var2x.getTheme())) {",
|
||||
"if (!var1f.contains(var2x.getTheme())) {",
|
||||
),
|
||||
(
|
||||
"defpackage/tf.java",
|
||||
489,
|
||||
"new EntityHitResult(var2, var1x.getLocation())",
|
||||
"new EntityHitResult(var2, var1x)",
|
||||
),
|
||||
(
|
||||
"defpackage/tf.java",
|
||||
482,
|
||||
"Optional<BlockHitResult> var13 = null;",
|
||||
"Optional<Vec3> var13 = null;",
|
||||
),
|
||||
(
|
||||
"defpackage/tf.java",
|
||||
279,
|
||||
"var16 = var15.clip(var2, var3).map(BlockHitResult::getLocation);",
|
||||
"var16 = var15.clip(var2, var3);",
|
||||
),
|
||||
(
|
||||
"defpackage/ans.java",
|
||||
154,
|
||||
"ArrayList<anr> var4 = null;",
|
||||
"ArrayList<anq> var4 = null;",
|
||||
),
|
||||
(
|
||||
"defpackage/ach.java",
|
||||
458,
|
||||
"Comparator.<mo>comparing(",
|
||||
"Comparator.<mo, String>comparing(",
|
||||
),
|
||||
(
|
||||
"b/t.java",
|
||||
55,
|
||||
"(ParseResults<SharedSuggestionProvider>)this.currentParse",
|
||||
"(ParseResults<SharedSuggestionProvider>)(Object)this.currentParse",
|
||||
),
|
||||
(
|
||||
"b/t.java",
|
||||
50,
|
||||
"this.currentParse = defpackage.bz.getInstance()",
|
||||
"this.currentParse = (ParseResults<ClientSuggestionProvider>)(Object)defpackage.bz.getInstance()",
|
||||
),
|
||||
]
|
||||
|
||||
# inserts (line numbers = pre-insert file; applied in descending order below)
|
||||
INSERTS = [
|
||||
(
|
||||
"defpackage/yc.java",
|
||||
1547,
|
||||
[
|
||||
" final String var1f = var1;",
|
||||
" final rl var2f = var2;",
|
||||
],
|
||||
),
|
||||
("defpackage/yc.java", 231, [" final List var1f = var1;"]),
|
||||
]
|
||||
|
||||
CONTENT_EDITS = [
|
||||
("defpackage/alc.java", "private alc(", "alc("),
|
||||
("defpackage/hh.java", "private double weight()", "double weight()"),
|
||||
(
|
||||
"defpackage/uw.java",
|
||||
"private void render(VertexConsumer var1, Pose var2, Vec3 var3, long var4, long var6, boolean var8, boolean var9, float var10, uv var11)",
|
||||
"void render(VertexConsumer var1, Pose var2, Vec3 var3, long var4, long var6, boolean var8, boolean var9, float var10, uv var11)",
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
def main():
|
||||
# merge: all line-scope ops for same file in one descending pass
|
||||
ops = collections.defaultdict(list)
|
||||
for row in EDIT_LINE_TABLE:
|
||||
ops[row[0]].append(("edit", row[1], row[2], row[3]))
|
||||
for rel, ln, lines in INSERTS:
|
||||
ops[rel].append(("ins", ln, lines, None))
|
||||
for rel, rows in ops.items():
|
||||
for kind, ln, a, b in sorted(rows, key=lambda r: -r[1]):
|
||||
if kind == "edit":
|
||||
edit_line(rel, ln, a, b)
|
||||
else:
|
||||
insert_before(rel, ln, a)
|
||||
for rel, old, new in CONTENT_EDITS:
|
||||
edit_all(rel, old, new, "content")
|
||||
|
||||
for p, L in files.items():
|
||||
with open(p, "w", encoding="utf-8") as f:
|
||||
f.write("\n".join(L) + "\n")
|
||||
print(dict(stats))
|
||||
miss = {k: v for k, v in stats.items() if "MISS" in k}
|
||||
if miss:
|
||||
print("PROBLEMS:", dict(miss))
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue