================
@@ -158,6 +158,16 @@ def get_failures(junit_objects) -> dict[str, 
list[tuple[str, str]]]:
     return failures
 
 
+def are_all_failures_explained(
+    failures: list[tuple[str, str]], failure_explanations: dict[str, 
FailureExplanation]
+) -> bool:
+    for failure in failures:
+        failed_action, _ = failure
+        if failed_action not in failure_explanations:
+            return False
+    return True
----------------
DavidSpickett wrote:

I see that the type of an explanation is:
```
class FailureExplanation(TypedDict):
    name: str
    explained: bool
    reason: Optional[str]
```
So I'd have expect to see checks that:
* the failure is a key in `failure_explanations` (which you've done)
* the key `explained` is set to true
* the `reason` key is set to some non-empty string (though I'm not sure what 
explained True and empty reason means, maybe this is fine)

If I haven't misinterpreted the type here, maybe you don't ever expect to be 
given FailureExplanation where explained is false?

If so I think here is a good opportunity to enforce that with an extra check 
that explained is true.

https://github.com/llvm/llvm-project/pull/172394
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to