This commit is contained in:
Chris Smowton 2024-03-24 17:38:03 +00:00
Родитель 3d9bc6fc89
Коммит f347784ec2
1 изменённых файлов: 7 добавлений и 2 удалений

Просмотреть файл

@ -50,9 +50,14 @@ predicate gapInChildren(Element e, int i) {
// Pattern case statements legitimately have a TypeAccess (-2) and a pattern (0) but not a rule (-1)
not (i = -1 and e instanceof PatternCase and not e.(PatternCase).isRule()) and
// Pattern case statements can have a gap at -3 when they have more than one pattern but no guard.
not (i = -3 and count(e.(PatternCase).getAPattern()) > 1 and not exists(e.(PatternCase).getGuard())) and
not (
i = -3 and count(e.(PatternCase).getAPattern()) > 1 and not exists(e.(PatternCase).getGuard())
) and
// Pattern case statements may have some missing type accesses, depending on the nature of the direct child
not ((i = -2 or i < -4) and e instanceof PatternCase) and
not (
(i = -2 or i < -4) and
e instanceof PatternCase
) and
// Instanceof with a record pattern is not expected to have a type access in position 1
not (i = 1 and e.(InstanceOfExpr).getPattern() instanceof RecordPatternExpr) and
// RecordPatternExpr extracts type-accesses only for its LocalVariableDeclExpr children