Empty dependency predicate ready to get filled up.
| 588 | |
| 589 | |
| 590 | class EmptyDependency: |
| 591 | """Empty dependency predicate ready to get filled up.""" |
| 592 | |
| 593 | def __init__(self, level: int, rule_name: str): |
| 594 | self.level = level |
| 595 | self.rule_name = rule_name or '' |
| 596 | self.empty = True |
| 597 | self.why = [] |
| 598 | self.trace = None |
| 599 | |
| 600 | def populate(self, name: str, args: list[gm.Point]) -> Dependency: |
| 601 | dep = Dependency(name, args, self.rule_name, self.level) |
| 602 | dep.trace2 = self.trace |
| 603 | dep.why = list(self.why) |
| 604 | return dep |
| 605 | |
| 606 | def copy(self) -> EmptyDependency: |
| 607 | other = EmptyDependency(self.level, self.rule_name) |
| 608 | other.why = list(self.why) |
| 609 | return other |
| 610 | |
| 611 | def extend( |
| 612 | self, |
| 613 | g: Any, |
| 614 | name0: str, |
| 615 | args0: list[gm.Point], |
| 616 | name: str, |
| 617 | args: list[gm.Point], |
| 618 | ) -> EmptyDependency: |
| 619 | """Extend the dependency list by (name, args).""" |
| 620 | dep0 = self.populate(name0, args0) |
| 621 | deps = EmptyDependency(level=self.level, rule_name=None) |
| 622 | dep = Dependency(name, args, None, deps.level) |
| 623 | deps.why = [dep0, dep.why_me_or_cache(g, None)] |
| 624 | return deps |
| 625 | |
| 626 | def extend_many( |
| 627 | self, |
| 628 | g: Any, |
| 629 | name0: str, |
| 630 | args0: list[gm.Point], |
| 631 | name_args: list[tuple[str, list[gm.Point]]], |
| 632 | ) -> EmptyDependency: |
| 633 | """Extend the dependency list by many name_args.""" |
| 634 | if not name_args: |
| 635 | return self |
| 636 | dep0 = self.populate(name0, args0) |
| 637 | deps = EmptyDependency(level=self.level, rule_name=None) |
| 638 | deps.why = [dep0] |
| 639 | for name, args in name_args: |
| 640 | dep = Dependency(name, args, None, deps.level) |
| 641 | deps.why += [dep.why_me_or_cache(g, None)] |
| 642 | return deps |
| 643 | |
| 644 | |
| 645 | def maybe_make_equal_pairs( |
no outgoing calls
no test coverage detected