Merge pull request #95 from ian-semmle/resolveClass

C++: Rename resolve to resolveClass, and remove unused isElement
This commit is contained in:
Jonas Jensen
2018-08-23 22:13:13 +02:00
committed by GitHub
17 changed files with 18 additions and 22 deletions

View File

@@ -2,7 +2,7 @@ import semmle.code.cpp.Type
import semmle.code.cpp.UserType
import semmle.code.cpp.metrics.MetricClass
import semmle.code.cpp.Linkage
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A class type [N4140 9].

View File

@@ -1,6 +1,6 @@
import semmle.code.cpp.Location
private import semmle.code.cpp.Enclosing
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* Get the `@element` that represents this `@element`.
@@ -10,7 +10,7 @@ private import semmle.code.cpp.internal.Type
*/
private cached @element resolveElement(@element e) {
if isClass(e)
then result = resolve(e)
then result = resolveClass(e)
else result = e
}

View File

@@ -1,5 +1,5 @@
import semmle.code.cpp.Type
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A C/C++ enum [N4140 7.2].

View File

@@ -1,5 +1,5 @@
import semmle.code.cpp.Declaration
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A C++ friend declaration [N4140 11.3].

View File

@@ -5,7 +5,7 @@ import semmle.code.cpp.Parameter
import semmle.code.cpp.exprs.Call
import semmle.code.cpp.metrics.MetricFunction
import semmle.code.cpp.Linkage
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A C/C++ function [N4140 8.3.5]. Both member functions and non-member

View File

@@ -1,5 +1,5 @@
import semmle.code.cpp.Class
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* DEPRECATED: Objective-C is no longer supported.

View File

@@ -1,6 +1,6 @@
import semmle.code.cpp.Location
import semmle.code.cpp.Declaration
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A C/C++ function parameter or catch block parameter.

View File

@@ -1,5 +1,5 @@
import semmle.code.cpp.Element
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A C/C++ specifier: `friend`, `auto`, `register`, `static`, `extern`,

View File

@@ -1,7 +1,7 @@
import semmle.code.cpp.Element
import semmle.code.cpp.Member
import semmle.code.cpp.Function
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A C/C++ type.

View File

@@ -1,5 +1,5 @@
import semmle.code.cpp.Type
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A C/C++ typedef type. See 4.9.1.

View File

@@ -2,7 +2,7 @@ import semmle.code.cpp.Declaration
import semmle.code.cpp.Type
import semmle.code.cpp.Member
import semmle.code.cpp.Function
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A C/C++ user-defined type. Examples include `Class`, `Struct`, `Union`,

View File

@@ -1,7 +1,7 @@
import semmle.code.cpp.Element
import semmle.code.cpp.exprs.Access
import semmle.code.cpp.Initializer
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A C/C++ variable.

View File

@@ -1,5 +1,5 @@
import semmle.code.cpp.exprs.Expr
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A C/C++ cast expression or similar unary expression that doesn't affect the logical value of its operand.

View File

@@ -1,7 +1,7 @@
import semmle.code.cpp.Element
private import semmle.code.cpp.Enclosing
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A C/C++ expression.

View File

@@ -1,7 +1,7 @@
import semmle.code.cpp.exprs.Expr
import semmle.code.cpp.Class
import semmle.code.cpp.ObjectiveC
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* DEPRECATED: Objective-C is no longer supported.

View File

@@ -35,7 +35,7 @@ cached private module Cached {
* multiple complete classes have the same name, this predicate may have
* multiple results.
*/
cached @usertype resolve(@usertype c) {
cached @usertype resolveClass(@usertype c) {
hasCompleteTwin(c, result)
or
(not hasCompleteTwin(c, _) and result = c)
@@ -48,8 +48,4 @@ cached private module Cached {
(usertypes(t,_,1) or usertypes(t,_,2) or usertypes(t,_,3) or usertypes(t,_,6)
or usertypes(t,_,10) or usertypes(t,_,11) or usertypes(t,_,12))
}
cached predicate isElement(@element e) {
isClass(e) implies e = resolve(_)
}
}

View File

@@ -1,6 +1,6 @@
import semmle.code.cpp.Element
private import semmle.code.cpp.Enclosing
private import semmle.code.cpp.internal.Type
private import semmle.code.cpp.internal.ResolveClass
/**
* A C/C++ statement.