@@ -32,42 +32,30 @@ class CompilationUnit extends Element, File {
3232 Module getModule ( ) { cumodule ( this , result ) }
3333
3434 /**
35- * Gets a type which is available by its simple name in this compilation unit.
36- * Reasons for this can be:
37- * - The type is declared in this compilation unit as top-level type
38- * - The type is imported
39- * - The type is declared in the same package as this compilation unit
40- * - The type is declared in the package `java.lang`
35+ * Gets a type which is available in the top-level scope of this compilation unit.
36+ * This can be a type:
37+ * - declared in this compilation unit as top-level type
38+ * - imported with an `import` declaration
39+ * - declared in the same package as this compilation unit
40+ * - declared in the package `java.lang`
41+ *
42+ * This predicate not consider "shadowing", it can have types as result whose simple name is
43+ * shadowed by another type in scope.
4144 */
42- ClassOrInterface getATypeAvailableBySimpleName ( ) {
45+ ClassOrInterface getATypeInScope ( ) {
4346 // See "Shadowing", https://docs.oracle.com/javase/specs/jls/se17/html/jls-6.html#jls-6.4.1
44- // Note: Currently the logic below does not consider shadowing and might have multiple results
45- // with the same type name
47+ // Currently shadowing is not considered
4648 result .( TopLevelType ) .getCompilationUnit ( ) = this
4749 or
48- exists ( ImportStaticTypeMember importDecl |
49- importDecl .getCompilationUnit ( ) = this and
50- result = importDecl .getATypeImport ( )
51- )
52- or
53- exists ( ImportType importDecl |
54- importDecl .getCompilationUnit ( ) = this and
55- result = importDecl .getImportedType ( )
56- )
57- or
58- exists ( ImportStaticOnDemand importDecl |
59- importDecl .getCompilationUnit ( ) = this and
60- result = importDecl .getATypeImport ( )
61- )
62- or
63- exists ( ImportOnDemandFromType importDecl |
64- importDecl .getCompilationUnit ( ) = this and
65- result = importDecl .getAnImport ( )
66- )
67- or
68- exists ( ImportOnDemandFromPackage importDecl |
69- importDecl .getCompilationUnit ( ) = this and
70- result = importDecl .getAnImport ( )
50+ exists ( Import importDecl | importDecl .getCompilationUnit ( ) = this |
51+ result =
52+ [
53+ importDecl .( ImportStaticTypeMember ) .getATypeImport ( ) ,
54+ importDecl .( ImportType ) .getImportedType ( ) ,
55+ importDecl .( ImportStaticOnDemand ) .getATypeImport ( ) ,
56+ importDecl .( ImportOnDemandFromType ) .getAnImport ( ) ,
57+ importDecl .( ImportOnDemandFromPackage ) .getAnImport ( ) ,
58+ ]
7159 )
7260 or
7361 // From same package or java.lang, see https://docs.oracle.com/javase/specs/jls/se17/html/jls-7.html
0 commit comments