@@ -31,50 +31,5 @@ class CompilationUnit extends Element, File {
3131 */
3232 Module getModule ( ) { cumodule ( this , result ) }
3333
34- /**
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`
41- */
42- ClassOrInterface getATypeAvailableBySimpleName ( ) {
43- // 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
46- result .( TopLevelType ) .getCompilationUnit ( ) = this
47- 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 ( )
71- )
72- or
73- // From same package or java.lang, see https://docs.oracle.com/javase/specs/jls/se17/html/jls-7.html
74- result .( TopLevelType ) .getPackage ( ) = this .getPackage ( )
75- or
76- result .( TopLevelType ) .getPackage ( ) .hasName ( "java.lang" )
77- }
78-
7934 override string getAPrimaryQlClass ( ) { result = "CompilationUnit" }
8035}
0 commit comments