File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -23,6 +23,20 @@ class Module extends TModule {
2323 /** Gets an `include`d module. */
2424 Module getAnIncludedModule ( ) { result = getAnIncludedModule ( this ) }
2525
26+ /** Gets the super class or an included or prepended module. */
27+ Module getADirectAncestor ( ) {
28+ result = [ this .getSuperClass ( ) , this .getAPrependedModule ( ) , this .getAnIncludedModule ( ) ]
29+ }
30+
31+ /** Gets a direct subclass or module including or prepending this one. */
32+ Module getADirectDescendent ( ) { this = result .getADirectAncestor ( ) }
33+
34+ /** Gets a module that is transitively subclassed, included, or prepended by this module. */
35+ Module getAnAncestor ( ) { result = this .getADirectAncestor * ( ) }
36+
37+ /** Gets a module that transitively subclasses, includes, or prepends this module. */
38+ Module getADescendent ( ) { result = this .getADirectDescendent * ( ) }
39+
2640 /** Holds if this module is a class. */
2741 pragma [ noinline]
2842 predicate isClass ( ) {
Original file line number Diff line number Diff line change @@ -703,6 +703,17 @@ class ModuleNode instanceof Module {
703703 /** Gets an `include`d module. */
704704 final ModuleNode getAnIncludedModule ( ) { result = super .getAnIncludedModule ( ) }
705705
706+ /** Gets the super class or an included or prepended module. */
707+ final ModuleNode getADirectAncestor ( ) { result = super .getADirectAncestor ( ) }
708+
709+ /** Gets a direct subclass or module including or prepending this one. */
710+ final ModuleNode getADirectDescendent ( ) { result = super .getADirectDescendent ( ) }
711+
712+ /** Gets a module that is transitively subclassed, included, or prepended by this module. */
713+ final ModuleNode getAnAncestor ( ) { result = super .getAnAncestor ( ) }
714+
715+ /** Gets a module that transitively subclasses, includes, or prepends this module. */
716+ final ModuleNode getADescendent ( ) { result = super .getADescendent ( ) }
706717 /** Holds if this module is a class. */
707718 predicate isClass ( ) { super .isClass ( ) }
708719
You can’t perform that action at this time.
0 commit comments