@@ -245,11 +245,7 @@ abstract private class ModuleLikeNode extends ItemNode {
245245 * Holds if this is a root module, meaning either a source file or
246246 * the entry module of a crate.
247247 */
248- predicate isRoot ( ) {
249- this instanceof SourceFileItemNode
250- or
251- this = any ( Crate c ) .getModule ( )
252- }
248+ predicate isRoot ( ) { this instanceof SourceFileItemNode }
253249}
254250
255251private class SourceFileItemNode extends ModuleLikeNode , SourceFile {
@@ -277,12 +273,7 @@ class CrateItemNode extends ItemNode instanceof Crate {
277273 * or a module, when the crate is defined in a dependency.
278274 */
279275 pragma [ nomagic]
280- ModuleLikeNode getModuleNode ( ) {
281- result = super .getSourceFile ( )
282- or
283- not exists ( super .getSourceFile ( ) ) and
284- result = super .getModule ( )
285- }
276+ ModuleLikeNode getModuleNode ( ) { result = super .getSourceFile ( ) }
286277
287278 /**
288279 * Gets a source file that belongs to this crate, if any.
@@ -306,11 +297,7 @@ class CrateItemNode extends ItemNode instanceof Crate {
306297 /**
307298 * Gets a root module node belonging to this crate.
308299 */
309- ModuleLikeNode getARootModuleNode ( ) {
310- result = this .getASourceFile ( )
311- or
312- result = super .getModule ( )
313- }
300+ ModuleLikeNode getARootModuleNode ( ) { result = this .getASourceFile ( ) }
314301
315302 pragma [ nomagic]
316303 predicate isPotentialDollarCrateTarget ( ) {
@@ -829,7 +816,7 @@ private predicate crateDependencyEdge(ModuleLikeNode m, string name, CrateItemNo
829816 or
830817 // paths inside the crate graph use the name of the crate itself as prefix,
831818 // although that is not valid in Rust
832- dep = any ( Crate c | name = c .getName ( ) and m = c .getModule ( ) )
819+ dep = any ( Crate c | name = c .getName ( ) and m = c .getSourceFile ( ) )
833820}
834821
835822private predicate useTreeDeclares ( UseTree tree , string name ) {
@@ -1173,10 +1160,10 @@ private predicate useImportEdge(Use use, string name, ItemNode item) {
11731160 * [1]: https://doc.rust-lang.org/core/prelude/index.html
11741161 */
11751162private predicate preludeEdge ( SourceFile f , string name , ItemNode i ) {
1176- exists ( Crate core , ModuleItemNode mod , ModuleItemNode prelude , ModuleItemNode rust |
1163+ exists ( Crate core , ModuleLikeNode mod , ModuleItemNode prelude , ModuleItemNode rust |
11771164 f = any ( Crate c0 | core = c0 .getDependency ( _) ) .getASourceFile ( ) and
11781165 core .getName ( ) = "core" and
1179- mod = core .getModule ( ) and
1166+ mod = core .getSourceFile ( ) and
11801167 prelude = mod .getASuccessorRec ( "prelude" ) and
11811168 rust = prelude .getASuccessorRec ( [ "rust_2015" , "rust_2018" , "rust_2021" , "rust_2024" ] ) and
11821169 i = rust .getASuccessorRec ( name ) and
0 commit comments