wave N+1: vfbuild15 fixes (EF lambda copies, tf clip reverts, mixin casts, unprivate

This commit is contained in:
loki5512344 2026-10-03 15:25:27 +02:00
parent ab59aff082
commit 1434ba25c4
Signed by: boba
GPG key ID: 253067914055423B
10 changed files with 277 additions and 13 deletions

81
build-logs/vfbuild15.log Normal file
View 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

View file

@ -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);

View file

@ -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:

View file

@ -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;

View file

@ -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;

View file

@ -12,7 +12,7 @@ final class hh {
this.key = var1;
}
private double weight() {
double weight() {
return this.key.nutrition() + this.key.saturation();
}
}

View file

@ -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);

View file

@ -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)) {

View file

@ -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
View 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()