@@ -32,30 +32,42 @@ class CompilationUnit extends Element, File {
32
32
Module getModule ( ) { cumodule ( this , result ) }
33
33
34
34
/**
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`
44
41
*/
45
- ClassOrInterface getATypeInScope ( ) {
42
+ ClassOrInterface getATypeAvailableBySimpleName ( ) {
46
43
// 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
48
46
result .( TopLevelType ) .getCompilationUnit ( ) = this
49
47
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 ( )
59
71
)
60
72
or
61
73
// From same package or java.lang, see https://docs.oracle.com/javase/specs/jls/se17/html/jls-7.html
0 commit comments