EF waves N+35–N+43: lambda captures in 30 files (aph..zz), compileJava green
This commit is contained in:
parent
51b4c3cef2
commit
036d94952c
76 changed files with 2723 additions and 181 deletions
75
tools/waves_n40.py
Normal file
75
tools/waves_n40.py
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
"""Волна N+40: vfbuild70 — 31 EF в op.java (5 методов, 9 групп лямбд).
|
||||
Запуск: python3 tools/waves_n40.py"""
|
||||
|
||||
import os, re, sys
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
p = os.path.join(ROOT, "src/main/java/defpackage/op.java")
|
||||
L = open(p, encoding="utf-8", errors="replace").read().splitlines()
|
||||
ok = True
|
||||
|
||||
|
||||
def edit(ln, name):
|
||||
"""rename all whole-word `name` occurrences on line ln to name+'f'"""
|
||||
global ok
|
||||
i = ln - 1
|
||||
new = re.sub(rf"\b{name}\b", name + "f", L[i])
|
||||
if new != L[i]:
|
||||
L[i] = new
|
||||
elif name + "f" not in L[i]:
|
||||
ok = False
|
||||
print(f"MISS {ln}: no {name} in {L[i].strip()[:90]!r}")
|
||||
|
||||
|
||||
def insert_before(ln, anchor_prev, anchor_next, decl):
|
||||
global ok
|
||||
ip = ln - 1
|
||||
prev_ok = anchor_prev in L[ip - 1]
|
||||
next_ok = anchor_next in L[ip]
|
||||
done = decl in "\n".join(L[max(0, ip - 8) : ip + 8])
|
||||
if prev_ok and next_ok and not done:
|
||||
line = L[ip]
|
||||
indent = line[: len(line) - len(line.lstrip())]
|
||||
L[ip:ip] = [indent + decl]
|
||||
elif done:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(
|
||||
f"INSERT-MISS {ln}: prev={L[ip - 1].strip()[:70]!r} next={L[ip].strip()[:70]!r}"
|
||||
)
|
||||
|
||||
|
||||
# edits first (descending line numbers)
|
||||
for ln in (1452, 1451, 1450, 1441, 1440, 1439, 1428, 1427, 1426):
|
||||
edit(ln, "var5")
|
||||
for ln in (1336, 1335, 1334):
|
||||
edit(ln, "var4")
|
||||
for ln in (1306, 1304, 1302, 1293, 1292, 1291):
|
||||
edit(ln, "var5")
|
||||
for ln in (1205, 1204, 1203):
|
||||
edit(ln, "var4")
|
||||
for ln in (1166, 1165, 1164, 1153, 1152, 1151):
|
||||
edit(ln, "var4")
|
||||
|
||||
# inserts (descending): one copy per method/case group
|
||||
insert_before(
|
||||
1418,
|
||||
"var7 = var6.toLowerCase(Locale.ROOT);",
|
||||
"var0.add(",
|
||||
"final aso var5f = var5;",
|
||||
)
|
||||
insert_before(1326, "var4 = var1[var3];", "var0.add(", "final od var4f = var4;")
|
||||
insert_before(
|
||||
1283, "var7 = var6.toLowerCase(Locale.ROOT);", "var0.add(", "final oe var5f = var5;"
|
||||
)
|
||||
insert_before(
|
||||
1195, "var5 = titleCase(((ob)var4).name());", "var0.add(", "final ob var4f = var4;"
|
||||
)
|
||||
insert_before(
|
||||
1143, "var6 = var5.toLowerCase(Locale.ROOT);", "var0.add(", "final nz var4f = var4;"
|
||||
)
|
||||
|
||||
open(p, "w", encoding="utf-8").write("\n".join(L) + "\n")
|
||||
print("OK" if ok else "PROBLEMS")
|
||||
sys.exit(0 if ok else 1)
|
||||
Loading…
Add table
Add a link
Reference in a new issue