mirror of
https://github.com/github/codeql.git
synced 2026-04-29 10:45:15 +02:00
Java: Make some types more specific
Where we used to use RefType, we now use ClassOrInterface.
This commit is contained in:
@@ -38,7 +38,7 @@ import Type
|
||||
*
|
||||
* For example, `X` in `class X<T> { }`.
|
||||
*/
|
||||
class GenericType extends RefType {
|
||||
class GenericType extends ClassOrInterface {
|
||||
GenericType() { typeVars(_, _, _, _, this) }
|
||||
|
||||
/**
|
||||
@@ -139,7 +139,7 @@ abstract class BoundedType extends RefType, @boundedtype {
|
||||
*/
|
||||
class TypeVariable extends BoundedType, @typevariable {
|
||||
/** Gets the generic type that is parameterized by this type parameter, if any. */
|
||||
RefType getGenericType() { typeVars(this, _, _, _, result) }
|
||||
GenericType getGenericType() { typeVars(this, _, _, _, result) }
|
||||
|
||||
/** Gets the generic callable that is parameterized by this type parameter, if any. */
|
||||
GenericCallable getGenericCallable() { typeVars(this, _, _, _, result) }
|
||||
@@ -321,7 +321,7 @@ class TypeBound extends @typebound {
|
||||
* For example, `List<Number>` is a parameterization of
|
||||
* the generic type `List<E>`, where `E` is a type parameter.
|
||||
*/
|
||||
class ParameterizedType extends RefType {
|
||||
class ParameterizedType extends ClassOrInterface {
|
||||
ParameterizedType() {
|
||||
typeArgs(_, _, this) or
|
||||
typeVars(_, _, _, _, this)
|
||||
@@ -367,7 +367,7 @@ class ParameterizedType extends RefType {
|
||||
}
|
||||
|
||||
/** Holds if this type originates from source code. */
|
||||
override predicate fromSource() { typeVars(_, _, _, _, this) and RefType.super.fromSource() }
|
||||
override predicate fromSource() { typeVars(_, _, _, _, this) and ClassOrInterface.super.fromSource() }
|
||||
|
||||
override string getAPrimaryQlClass() { result = "ParameterizedType" }
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ class ImportType extends Import {
|
||||
ImportType() { imports(this, _, _, 1) }
|
||||
|
||||
/** Gets the imported type. */
|
||||
RefType getImportedType() { imports(this, result, _, _) }
|
||||
ClassOrInterface getImportedType() { imports(this, result, _, _) }
|
||||
|
||||
override string toString() { result = "import " + this.getImportedType().toString() }
|
||||
|
||||
@@ -44,7 +44,7 @@ class ImportOnDemandFromType extends Import {
|
||||
ImportOnDemandFromType() { imports(this, _, _, 2) }
|
||||
|
||||
/** Gets the type from which accessible nested types are imported. */
|
||||
RefType getTypeHoldingImport() { imports(this, result, _, _) }
|
||||
ClassOrInterface getTypeHoldingImport() { imports(this, result, _, _) }
|
||||
|
||||
/** Gets an imported type. */
|
||||
NestedType getAnImport() { result.getEnclosingType() = this.getTypeHoldingImport() }
|
||||
@@ -87,7 +87,7 @@ class ImportStaticOnDemand extends Import {
|
||||
ImportStaticOnDemand() { imports(this, _, _, 4) }
|
||||
|
||||
/** Gets the type from which accessible static members are imported. */
|
||||
RefType getTypeHoldingImport() { imports(this, result, _, _) }
|
||||
ClassOrInterface getTypeHoldingImport() { imports(this, result, _, _) }
|
||||
|
||||
/** Gets an imported type. */
|
||||
NestedType getATypeImport() { result.getEnclosingType() = this.getTypeHoldingImport() }
|
||||
@@ -118,7 +118,7 @@ class ImportStaticTypeMember extends Import {
|
||||
ImportStaticTypeMember() { imports(this, _, _, 5) }
|
||||
|
||||
/** Gets the type from which static members with a given name are imported. */
|
||||
RefType getTypeHoldingImport() { imports(this, result, _, _) }
|
||||
ClassOrInterface getTypeHoldingImport() { imports(this, result, _, _) }
|
||||
|
||||
/** Gets the name of the imported member(s). */
|
||||
override string getName() { imports(this, _, result, _) }
|
||||
|
||||
Reference in New Issue
Block a user