STRU and exception tasks accepted; G6 cascade fix, exception class mutants, RTTI unit notes
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -426,8 +426,15 @@ class Runner:
|
||||
contract_files = {f"{c['name'].lower()}.{c['type'].lower()}.abap" for c in contract}
|
||||
# abaplint does not know standard superclasses (CX_STATIC_CHECK ...); an exception hierarchy
|
||||
# then gives "Super class ... not found or contains errors". A4H activation (G1) covers this.
|
||||
# Cascade: a class that uses such an exception class gets "Definition for X not found in scope" (X is
|
||||
# the exception class abaplint could not build). Messages that name a broken class are not counted.
|
||||
broken = {re.sub(r"\.(clas|intf)\.abap$", "", i["file"]).upper() for i in issues
|
||||
if re.match(r"Super class .* not found or contains errors", i["msg"] or "")}
|
||||
def _cascade(msg):
|
||||
return any(re.search(rf"\b{re.escape(b)}\b", msg or "", re.I) for b in broken)
|
||||
g["G6_release"] = not any(i["rule"] == "check_syntax" and i["file"] in contract_files
|
||||
and not re.match(r"Super class .* not found or contains errors", i["msg"] or "")
|
||||
and not _cascade(i["msg"])
|
||||
for i in issues)
|
||||
|
||||
# 8 score
|
||||
|
||||
Reference in New Issue
Block a user