mirror of
https://github.com/github/codeql.git
synced 2026-01-29 22:32:58 +01:00
Merge pull request #227 from max/redundant-expr-bug
Fix hash-consing of literals
This commit is contained in:
@@ -50,10 +50,16 @@ class HashableNode extends AstNode {
|
||||
* Gets the value of this AST node, or the empty string if it does not have one.
|
||||
*/
|
||||
string getValue() {
|
||||
literals(this, result, _)
|
||||
or
|
||||
not literals(this, _, _) and
|
||||
result = ""
|
||||
// for literals, get the exact value if available
|
||||
if exists(this.(BasicLit).getExactValue())
|
||||
then result = this.(BasicLit).getExactValue()
|
||||
else
|
||||
// for identifiers, get the name
|
||||
if this instanceof Ident
|
||||
then result = this.(Ident).getName()
|
||||
else
|
||||
// for everything else, give up
|
||||
result = ""
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -24,5 +24,7 @@ func baz(b bool) int {
|
||||
}
|
||||
|
||||
func main() {
|
||||
foo(42)
|
||||
if c == '\xA8' || c == '\xA9' {
|
||||
foo(42)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user