@@ -247,11 +247,7 @@ abstract private class ModuleLikeNode extends ItemNode {
247247 * Holds if this is a root module, meaning either a source file or
248248 * the entry module of a crate.
249249 */
250- predicate isRoot ( ) {
251- this instanceof SourceFileItemNode
252- or
253- this = any ( Crate c ) .getModule ( )
254- }
250+ predicate isRoot ( ) { this instanceof SourceFileItemNode }
255251}
256252
257253private class SourceFileItemNode extends ModuleLikeNode , SourceFile {
@@ -279,12 +275,7 @@ class CrateItemNode extends ItemNode instanceof Crate {
279275 * or a module, when the crate is defined in a dependency.
280276 */
281277 pragma [ nomagic]
282- ModuleLikeNode getModuleNode ( ) {
283- result = super .getSourceFile ( )
284- or
285- not exists ( super .getSourceFile ( ) ) and
286- result = super .getModule ( )
287- }
278+ ModuleLikeNode getModuleNode ( ) { result = super .getSourceFile ( ) }
288279
289280 /**
290281 * Gets a source file that belongs to this crate, if any.
@@ -308,11 +299,7 @@ class CrateItemNode extends ItemNode instanceof Crate {
308299 /**
309300 * Gets a root module node belonging to this crate.
310301 */
311- ModuleLikeNode getARootModuleNode ( ) {
312- result = this .getASourceFile ( )
313- or
314- result = super .getModule ( )
315- }
302+ ModuleLikeNode getARootModuleNode ( ) { result = this .getASourceFile ( ) }
316303
317304 pragma [ nomagic]
318305 predicate isPotentialDollarCrateTarget ( ) {
@@ -776,7 +763,7 @@ private predicate crateDependencyEdge(ModuleLikeNode m, string name, CrateItemNo
776763 or
777764 // paths inside the crate graph use the name of the crate itself as prefix,
778765 // although that is not valid in Rust
779- dep = any ( Crate c | name = c .getName ( ) and m = c .getModule ( ) )
766+ dep = any ( Crate c | name = c .getName ( ) and m = c .getSourceFile ( ) )
780767}
781768
782769private predicate useTreeDeclares ( UseTree tree , string name ) {
@@ -1120,10 +1107,10 @@ private predicate useImportEdge(Use use, string name, ItemNode item) {
11201107 * [1]: https://doc.rust-lang.org/core/prelude/index.html
11211108 */
11221109private predicate preludeEdge ( SourceFile f , string name , ItemNode i ) {
1123- exists ( Crate core , ModuleItemNode mod , ModuleItemNode prelude , ModuleItemNode rust |
1110+ exists ( Crate core , ModuleLikeNode mod , ModuleItemNode prelude , ModuleItemNode rust |
11241111 f = any ( Crate c0 | core = c0 .getDependency ( _) ) .getASourceFile ( ) and
11251112 core .getName ( ) = "core" and
1126- mod = core .getModule ( ) and
1113+ mod = core .getSourceFile ( ) and
11271114 prelude = mod .getASuccessorRec ( "prelude" ) and
11281115 rust = prelude .getASuccessorRec ( [ "rust_2015" , "rust_2018" , "rust_2021" , "rust_2024" ] ) and
11291116 i = rust .getASuccessorRec ( name ) and
0 commit comments