@@ -32,30 +32,42 @@ class CompilationUnit extends Element, File {
3232 Module getModule ( ) { cumodule ( this , result ) }
3333
3434 /**
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.
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`
4441 */
45- ClassOrInterface getATypeInScope ( ) {
42+ ClassOrInterface getATypeAvailableBySimpleName ( ) {
4643 // See "Shadowing", https://docs.oracle.com/javase/specs/jls/se17/html/jls-6.html#jls-6.4.1
47- // Currently shadowing is not considered
44+ // Note: Currently the logic below does not consider shadowing and might have multiple results
45+ // with the same type name
4846 result .( TopLevelType ) .getCompilationUnit ( ) = this
4947 or
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- ]
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 ( )
5971 )
6072 or
6173 // From same package or java.lang, see https://docs.oracle.com/javase/specs/jls/se17/html/jls-7.html
0 commit comments