Skip to content
This repository has been archived by the owner on Jan 5, 2023. It is now read-only.

Commit

Permalink
Give entities a location.
Browse files Browse the repository at this point in the history
  • Loading branch information
Max Schaefer committed Jan 17, 2020
1 parent ad43296 commit 2558e67
Show file tree
Hide file tree
Showing 15 changed files with 266 additions and 254 deletions.
18 changes: 18 additions & 0 deletions ql/src/semmle/go/Scopes.qll
Expand Up @@ -124,6 +124,24 @@ class Entity extends @object {

/** Gets a textual representation of this entity. */
string toString() { result = getName() }

/**
* Holds if this element is at the specified location.
* The location spans column `startcolumn` of line `startline` to
* column `endcolumn` of line `endline` in file `filepath`.
* For more information, see
* [LGTM locations](https://lgtm.com/help/ql/locations).
*/
predicate hasLocationInfo(
string filepath, int startline, int startcolumn, int endline, int endcolumn
) {
// take the location of the declaration if there is one
getDeclaration().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
or
// otherwise fall back on dummy location
not exists(getDeclaration()) and
filepath = "" and startline = 0 and startcolumn = 0 and endline = 0 and endcolumn = 0
}
}

/** A declared entity (that is, type, constant, variable or function). */
Expand Down
8 changes: 1 addition & 7 deletions ql/src/semmle/go/dataflow/internal/DataFlowUtil.qll
Expand Up @@ -240,13 +240,7 @@ class GlobalFunctionNode extends FunctionNode, MkGlobalFunctionNode {
override predicate hasLocationInfo(
string filepath, int startline, int startcolumn, int endline, int endcolumn
) {
func
.(DeclaredFunction)
.getDecl()
.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
or
not func instanceof DeclaredFunction and
FunctionNode.super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
func.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
}
}

Expand Down
44 changes: 22 additions & 22 deletions ql/test/library-tests/semmle/go/Scopes/DeclaredEntity.expected
@@ -1,22 +1,22 @@
| a | types.go:24:22:24:22 | a |
| bump | main.go:23:16:23:19 | bump |
| foo | main.go:17:6:17:8 | foo |
| iHaveAMethod | types.go:3:6:3:17 | iHaveAMethod |
| main | main.go:9:6:9:9 | main |
| meth | main.go:13:16:13:19 | meth |
| meth | types.go:4:2:4:5 | meth |
| meth1 | types.go:8:2:8:6 | meth1 |
| meth1 | types.go:14:18:14:22 | meth1 |
| meth1 | types.go:24:16:24:20 | meth1 |
| meth2 | types.go:9:2:9:6 | meth2 |
| meth2 | types.go:18:17:18:21 | meth2 |
| meth2 | types.go:28:16:28:20 | meth2 |
| notImpl | types.go:22:6:22:12 | notImpl |
| recv | main.go:13:7:13:10 | recv |
| recv | main.go:23:7:23:10 | recv |
| starImpl | types.go:12:6:12:13 | starImpl |
| t | main.go:5:6:5:6 | t |
| twoMethods | types.go:7:6:7:15 | twoMethods |
| x | main.go:6:2:6:2 | x |
| x | main.go:17:10:17:10 | x |
| y | main.go:17:26:17:26 | y |
| main.go:5:6:5:6 | t | main.go:5:6:5:6 | t |
| main.go:6:2:6:2 | x | main.go:6:2:6:2 | x |
| main.go:9:6:9:9 | main | main.go:9:6:9:9 | main |
| main.go:13:7:13:10 | recv | main.go:13:7:13:10 | recv |
| main.go:13:16:13:19 | meth | main.go:13:16:13:19 | meth |
| main.go:17:6:17:8 | foo | main.go:17:6:17:8 | foo |
| main.go:17:10:17:10 | x | main.go:17:10:17:10 | x |
| main.go:17:26:17:26 | y | main.go:17:26:17:26 | y |
| main.go:23:7:23:10 | recv | main.go:23:7:23:10 | recv |
| main.go:23:16:23:19 | bump | main.go:23:16:23:19 | bump |
| types.go:3:6:3:17 | iHaveAMethod | types.go:3:6:3:17 | iHaveAMethod |
| types.go:4:2:4:5 | meth | types.go:4:2:4:5 | meth |
| types.go:7:6:7:15 | twoMethods | types.go:7:6:7:15 | twoMethods |
| types.go:8:2:8:6 | meth1 | types.go:8:2:8:6 | meth1 |
| types.go:9:2:9:6 | meth2 | types.go:9:2:9:6 | meth2 |
| types.go:12:6:12:13 | starImpl | types.go:12:6:12:13 | starImpl |
| types.go:14:18:14:22 | meth1 | types.go:14:18:14:22 | meth1 |
| types.go:18:17:18:21 | meth2 | types.go:18:17:18:21 | meth2 |
| types.go:22:6:22:12 | notImpl | types.go:22:6:22:12 | notImpl |
| types.go:24:16:24:20 | meth1 | types.go:24:16:24:20 | meth1 |
| types.go:24:22:24:22 | a | types.go:24:22:24:22 | a |
| types.go:28:16:28:20 | meth2 | types.go:28:16:28:20 | meth2 |
26 changes: 13 additions & 13 deletions ql/test/library-tests/semmle/go/Scopes/EntityRead.expected
@@ -1,13 +1,13 @@
| Println | main.go:10:2:10:12 | selection of Println |
| a | types.go:25:9:25:9 | a |
| false | types.go:15:9:15:13 | false |
| meth | main.go:18:2:18:7 | selection of meth |
| meth | main.go:19:2:19:7 | selection of meth |
| meth | main.go:20:2:20:10 | selection of meth |
| recv | main.go:14:9:14:12 | recv |
| recv | main.go:24:2:24:5 | recv |
| x | main.go:14:9:14:14 | selection of x |
| x | main.go:18:2:18:2 | x |
| x | main.go:24:2:24:7 | selection of x |
| y | main.go:19:2:19:2 | y |
| y | main.go:20:12:20:12 | y |
| file://:0:0:0:0 | Println | main.go:10:2:10:12 | selection of Println |
| file://:0:0:0:0 | false | types.go:15:9:15:13 | false |
| main.go:6:2:6:2 | x | main.go:14:9:14:14 | selection of x |
| main.go:6:2:6:2 | x | main.go:24:2:24:7 | selection of x |
| main.go:13:7:13:10 | recv | main.go:14:9:14:12 | recv |
| main.go:13:16:13:19 | meth | main.go:19:2:19:7 | selection of meth |
| main.go:13:16:13:19 | meth | main.go:20:2:20:10 | selection of meth |
| main.go:17:10:17:10 | x | main.go:18:2:18:2 | x |
| main.go:17:26:17:26 | y | main.go:19:2:19:2 | y |
| main.go:17:26:17:26 | y | main.go:20:12:20:12 | y |
| main.go:23:7:23:10 | recv | main.go:24:2:24:5 | recv |
| types.go:4:2:4:5 | meth | main.go:18:2:18:7 | selection of meth |
| types.go:24:22:24:22 | a | types.go:25:9:25:9 | a |
122 changes: 61 additions & 61 deletions ql/test/library-tests/semmle/go/Scopes/EntityReference.expected
@@ -1,61 +1,61 @@
| Println | <library> | main.go:10:2:10:12 | selection of Println |
| Println | <library> | main.go:10:6:10:12 | Println |
| a | types.go@24:22-24:22 | types.go:24:22:24:22 | a |
| a | types.go@24:22-24:22 | types.go:25:9:25:9 | a |
| bool | <library> | types.go:8:10:8:13 | bool |
| bool | <library> | types.go:14:26:14:29 | bool |
| bool | <library> | types.go:24:29:24:32 | bool |
| bump | main.go@23:16-23:19 | main.go:23:16:23:19 | bump |
| false | <library> | types.go:15:9:15:13 | false |
| fmt | <library> | main.go:10:2:10:4 | fmt |
| foo | main.go@17:6-17:8 | main.go:17:6:17:8 | foo |
| iHaveAMethod | types.go@3:6-3:17 | main.go:17:12:17:23 | iHaveAMethod |
| iHaveAMethod | types.go@3:6-3:17 | types.go:3:6:3:17 | iHaveAMethod |
| int | <library> | main.go:6:4:6:6 | int |
| int | <library> | main.go:13:23:13:25 | int |
| int | <library> | types.go:4:9:4:11 | int |
| int | <library> | types.go:9:10:9:12 | int |
| int | <library> | types.go:18:25:18:27 | int |
| int | <library> | types.go:24:24:24:26 | int |
| int | <library> | types.go:28:24:28:26 | int |
| main | main.go@9:6-9:9 | main.go:9:6:9:9 | main |
| meth | main.go@13:16-13:19 | main.go:13:16:13:19 | meth |
| meth | main.go@13:16-13:19 | main.go:19:2:19:7 | selection of meth |
| meth | main.go@13:16-13:19 | main.go:19:4:19:7 | meth |
| meth | main.go@13:16-13:19 | main.go:20:2:20:10 | selection of meth |
| meth | main.go@13:16-13:19 | main.go:20:7:20:10 | meth |
| meth | types.go@4:2-4:5 | main.go:18:2:18:7 | selection of meth |
| meth | types.go@4:2-4:5 | main.go:18:4:18:7 | meth |
| meth | types.go@4:2-4:5 | types.go:4:2:4:5 | meth |
| meth1 | types.go@8:2-8:6 | types.go:8:2:8:6 | meth1 |
| meth1 | types.go@14:18-14:22 | types.go:14:18:14:22 | meth1 |
| meth1 | types.go@24:16-24:20 | types.go:24:16:24:20 | meth1 |
| meth2 | types.go@9:2-9:6 | types.go:9:2:9:6 | meth2 |
| meth2 | types.go@18:17-18:21 | types.go:18:17:18:21 | meth2 |
| meth2 | types.go@28:16-28:20 | types.go:28:16:28:20 | meth2 |
| notImpl | types.go@22:6-22:12 | types.go:22:6:22:12 | notImpl |
| notImpl | types.go@22:6-22:12 | types.go:24:7:24:13 | notImpl |
| notImpl | types.go@22:6-22:12 | types.go:28:7:28:13 | notImpl |
| recv | main.go@13:7-13:10 | main.go:13:7:13:10 | recv |
| recv | main.go@13:7-13:10 | main.go:14:9:14:12 | recv |
| recv | main.go@23:7-23:10 | main.go:23:7:23:10 | recv |
| recv | main.go@23:7-23:10 | main.go:24:2:24:5 | recv |
| starImpl | types.go@12:6-12:13 | types.go:12:6:12:13 | starImpl |
| starImpl | types.go@12:6-12:13 | types.go:14:8:14:15 | starImpl |
| starImpl | types.go@12:6-12:13 | types.go:18:7:18:14 | starImpl |
| t | main.go@5:6-5:6 | main.go:5:6:5:6 | t |
| t | main.go@5:6-5:6 | main.go:13:13:13:13 | t |
| t | main.go@5:6-5:6 | main.go:17:29:17:29 | t |
| t | main.go@5:6-5:6 | main.go:20:4:20:4 | t |
| t | main.go@5:6-5:6 | main.go:23:13:23:13 | t |
| twoMethods | types.go@7:6-7:15 | types.go:7:6:7:15 | twoMethods |
| x | main.go@6:2-6:2 | main.go:6:2:6:2 | x |
| x | main.go@6:2-6:2 | main.go:14:9:14:14 | selection of x |
| x | main.go@6:2-6:2 | main.go:14:14:14:14 | x |
| x | main.go@6:2-6:2 | main.go:24:2:24:7 | selection of x |
| x | main.go@6:2-6:2 | main.go:24:7:24:7 | x |
| x | main.go@17:10-17:10 | main.go:17:10:17:10 | x |
| x | main.go@17:10-17:10 | main.go:18:2:18:2 | x |
| y | main.go@17:26-17:26 | main.go:17:26:17:26 | y |
| y | main.go@17:26-17:26 | main.go:19:2:19:2 | y |
| y | main.go@17:26-17:26 | main.go:20:12:20:12 | y |
| file://:0:0:0:0 | Println | <library> | main.go:10:2:10:12 | selection of Println |
| file://:0:0:0:0 | Println | <library> | main.go:10:6:10:12 | Println |
| file://:0:0:0:0 | bool | <library> | types.go:8:10:8:13 | bool |
| file://:0:0:0:0 | bool | <library> | types.go:14:26:14:29 | bool |
| file://:0:0:0:0 | bool | <library> | types.go:24:29:24:32 | bool |
| file://:0:0:0:0 | false | <library> | types.go:15:9:15:13 | false |
| file://:0:0:0:0 | fmt | <library> | main.go:10:2:10:4 | fmt |
| file://:0:0:0:0 | int | <library> | main.go:6:4:6:6 | int |
| file://:0:0:0:0 | int | <library> | main.go:13:23:13:25 | int |
| file://:0:0:0:0 | int | <library> | types.go:4:9:4:11 | int |
| file://:0:0:0:0 | int | <library> | types.go:9:10:9:12 | int |
| file://:0:0:0:0 | int | <library> | types.go:18:25:18:27 | int |
| file://:0:0:0:0 | int | <library> | types.go:24:24:24:26 | int |
| file://:0:0:0:0 | int | <library> | types.go:28:24:28:26 | int |
| main.go:5:6:5:6 | t | main.go@5:6:5:6 | main.go:5:6:5:6 | t |
| main.go:5:6:5:6 | t | main.go@5:6:5:6 | main.go:13:13:13:13 | t |
| main.go:5:6:5:6 | t | main.go@5:6:5:6 | main.go:17:29:17:29 | t |
| main.go:5:6:5:6 | t | main.go@5:6:5:6 | main.go:20:4:20:4 | t |
| main.go:5:6:5:6 | t | main.go@5:6:5:6 | main.go:23:13:23:13 | t |
| main.go:6:2:6:2 | x | main.go@6:2:6:2 | main.go:6:2:6:2 | x |
| main.go:6:2:6:2 | x | main.go@6:2:6:2 | main.go:14:9:14:14 | selection of x |
| main.go:6:2:6:2 | x | main.go@6:2:6:2 | main.go:14:14:14:14 | x |
| main.go:6:2:6:2 | x | main.go@6:2:6:2 | main.go:24:2:24:7 | selection of x |
| main.go:6:2:6:2 | x | main.go@6:2:6:2 | main.go:24:7:24:7 | x |
| main.go:9:6:9:9 | main | main.go@9:6:9:9 | main.go:9:6:9:9 | main |
| main.go:13:7:13:10 | recv | main.go@13:7:13:10 | main.go:13:7:13:10 | recv |
| main.go:13:7:13:10 | recv | main.go@13:7:13:10 | main.go:14:9:14:12 | recv |
| main.go:13:16:13:19 | meth | main.go@13:16:13:19 | main.go:13:16:13:19 | meth |
| main.go:13:16:13:19 | meth | main.go@13:16:13:19 | main.go:19:2:19:7 | selection of meth |
| main.go:13:16:13:19 | meth | main.go@13:16:13:19 | main.go:19:4:19:7 | meth |
| main.go:13:16:13:19 | meth | main.go@13:16:13:19 | main.go:20:2:20:10 | selection of meth |
| main.go:13:16:13:19 | meth | main.go@13:16:13:19 | main.go:20:7:20:10 | meth |
| main.go:17:6:17:8 | foo | main.go@17:6:17:8 | main.go:17:6:17:8 | foo |
| main.go:17:10:17:10 | x | main.go@17:10:17:10 | main.go:17:10:17:10 | x |
| main.go:17:10:17:10 | x | main.go@17:10:17:10 | main.go:18:2:18:2 | x |
| main.go:17:26:17:26 | y | main.go@17:26:17:26 | main.go:17:26:17:26 | y |
| main.go:17:26:17:26 | y | main.go@17:26:17:26 | main.go:19:2:19:2 | y |
| main.go:17:26:17:26 | y | main.go@17:26:17:26 | main.go:20:12:20:12 | y |
| main.go:23:7:23:10 | recv | main.go@23:7:23:10 | main.go:23:7:23:10 | recv |
| main.go:23:7:23:10 | recv | main.go@23:7:23:10 | main.go:24:2:24:5 | recv |
| main.go:23:16:23:19 | bump | main.go@23:16:23:19 | main.go:23:16:23:19 | bump |
| types.go:3:6:3:17 | iHaveAMethod | types.go@3:6:3:17 | main.go:17:12:17:23 | iHaveAMethod |
| types.go:3:6:3:17 | iHaveAMethod | types.go@3:6:3:17 | types.go:3:6:3:17 | iHaveAMethod |
| types.go:4:2:4:5 | meth | types.go@4:2:4:5 | main.go:18:2:18:7 | selection of meth |
| types.go:4:2:4:5 | meth | types.go@4:2:4:5 | main.go:18:4:18:7 | meth |
| types.go:4:2:4:5 | meth | types.go@4:2:4:5 | types.go:4:2:4:5 | meth |
| types.go:7:6:7:15 | twoMethods | types.go@7:6:7:15 | types.go:7:6:7:15 | twoMethods |
| types.go:8:2:8:6 | meth1 | types.go@8:2:8:6 | types.go:8:2:8:6 | meth1 |
| types.go:9:2:9:6 | meth2 | types.go@9:2:9:6 | types.go:9:2:9:6 | meth2 |
| types.go:12:6:12:13 | starImpl | types.go@12:6:12:13 | types.go:12:6:12:13 | starImpl |
| types.go:12:6:12:13 | starImpl | types.go@12:6:12:13 | types.go:14:8:14:15 | starImpl |
| types.go:12:6:12:13 | starImpl | types.go@12:6:12:13 | types.go:18:7:18:14 | starImpl |
| types.go:14:18:14:22 | meth1 | types.go@14:18:14:22 | types.go:14:18:14:22 | meth1 |
| types.go:18:17:18:21 | meth2 | types.go@18:17:18:21 | types.go:18:17:18:21 | meth2 |
| types.go:22:6:22:12 | notImpl | types.go@22:6:22:12 | types.go:22:6:22:12 | notImpl |
| types.go:22:6:22:12 | notImpl | types.go@22:6:22:12 | types.go:24:7:24:13 | notImpl |
| types.go:22:6:22:12 | notImpl | types.go@22:6:22:12 | types.go:28:7:28:13 | notImpl |
| types.go:24:16:24:20 | meth1 | types.go@24:16:24:20 | types.go:24:16:24:20 | meth1 |
| types.go:24:22:24:22 | a | types.go@24:22:24:22 | types.go:24:22:24:22 | a |
| types.go:24:22:24:22 | a | types.go@24:22:24:22 | types.go:25:9:25:9 | a |
| types.go:28:16:28:20 | meth2 | types.go@28:16:28:20 | types.go:28:16:28:20 | meth2 |
44 changes: 22 additions & 22 deletions ql/test/library-tests/semmle/go/Scopes/EntityType.expected
@@ -1,22 +1,22 @@
| a | int |
| bump | func() |
| foo | func(iHaveAMethod, * t) |
| iHaveAMethod | iHaveAMethod |
| main | func() |
| meth | func() int |
| meth | func() int |
| meth1 | func() bool |
| meth1 | func() bool |
| meth1 | func(int) bool |
| meth2 | func() int |
| meth2 | func() int |
| meth2 | func() int |
| notImpl | notImpl |
| recv | * t |
| recv | * t |
| starImpl | starImpl |
| t | t |
| twoMethods | twoMethods |
| x | iHaveAMethod |
| x | int |
| y | * t |
| main.go:5:6:5:6 | t | t |
| main.go:6:2:6:2 | x | int |
| main.go:9:6:9:9 | main | func() |
| main.go:13:7:13:10 | recv | * t |
| main.go:13:16:13:19 | meth | func() int |
| main.go:17:6:17:8 | foo | func(iHaveAMethod, * t) |
| main.go:17:10:17:10 | x | iHaveAMethod |
| main.go:17:26:17:26 | y | * t |
| main.go:23:7:23:10 | recv | * t |
| main.go:23:16:23:19 | bump | func() |
| types.go:3:6:3:17 | iHaveAMethod | iHaveAMethod |
| types.go:4:2:4:5 | meth | func() int |
| types.go:7:6:7:15 | twoMethods | twoMethods |
| types.go:8:2:8:6 | meth1 | func() bool |
| types.go:9:2:9:6 | meth2 | func() int |
| types.go:12:6:12:13 | starImpl | starImpl |
| types.go:14:18:14:22 | meth1 | func() bool |
| types.go:18:17:18:21 | meth2 | func() int |
| types.go:22:6:22:12 | notImpl | notImpl |
| types.go:24:16:24:20 | meth1 | func(int) bool |
| types.go:24:22:24:22 | a | int |
| types.go:28:16:28:20 | meth2 | func() int |
12 changes: 6 additions & 6 deletions ql/test/library-tests/semmle/go/Scopes/EntityWrite.expected
@@ -1,6 +1,6 @@
| a | types.go:24:22:24:22 | initialization of a |
| recv | main.go:13:7:13:10 | initialization of recv |
| recv | main.go:23:7:23:10 | initialization of recv |
| x | main.go:17:10:17:10 | initialization of x |
| x | main.go:24:2:24:9 | increment statement |
| y | main.go:17:26:17:26 | initialization of y |
| main.go:6:2:6:2 | x | main.go:24:2:24:9 | increment statement |
| main.go:13:7:13:10 | recv | main.go:13:7:13:10 | initialization of recv |
| main.go:17:10:17:10 | x | main.go:17:10:17:10 | initialization of x |
| main.go:17:26:17:26 | y | main.go:17:26:17:26 | initialization of y |
| main.go:23:7:23:10 | recv | main.go:23:7:23:10 | initialization of recv |
| types.go:24:22:24:22 | a | types.go:24:22:24:22 | initialization of a |
18 changes: 9 additions & 9 deletions ql/test/library-tests/semmle/go/Scopes/Methods.expected
@@ -1,9 +1,9 @@
| bump | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.t.bump | recv | * t |
| meth | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.iHaveAMethod.meth | | iHaveAMethod |
| meth | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.t.meth | recv | * t |
| meth1 | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.notImpl.meth1 | | notImpl |
| meth1 | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.starImpl.meth1 | | * starImpl |
| meth1 | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.twoMethods.meth1 | | twoMethods |
| meth2 | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.notImpl.meth2 | | notImpl |
| meth2 | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.starImpl.meth2 | | starImpl |
| meth2 | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.twoMethods.meth2 | | twoMethods |
| main.go:13:16:13:19 | meth | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.t.meth | main.go:13:7:13:10 | recv | * t |
| main.go:23:16:23:19 | bump | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.t.bump | main.go:23:7:23:10 | recv | * t |
| types.go:4:2:4:5 | meth | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.iHaveAMethod.meth | file://:0:0:0:0 | | iHaveAMethod |
| types.go:8:2:8:6 | meth1 | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.twoMethods.meth1 | file://:0:0:0:0 | | twoMethods |
| types.go:9:2:9:6 | meth2 | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.twoMethods.meth2 | file://:0:0:0:0 | | twoMethods |
| types.go:14:18:14:22 | meth1 | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.starImpl.meth1 | file://:0:0:0:0 | | * starImpl |
| types.go:18:17:18:21 | meth2 | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.starImpl.meth2 | file://:0:0:0:0 | | starImpl |
| types.go:24:16:24:20 | meth1 | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.notImpl.meth1 | file://:0:0:0:0 | | notImpl |
| types.go:28:16:28:20 | meth2 | github.com/Semmle/go/ql/test/library-tests/semmle/go/Scopes.notImpl.meth2 | file://:0:0:0:0 | | notImpl |
@@ -1,7 +1,7 @@
| HTMLEscape | html |
| HTMLEscapeString | html |
| HTMLEscaper | html |
| JSEscape | js |
| JSEscapeString | js |
| JSEscaper | js |
| URLQueryEscaper | url |
| file://:0:0:0:0 | HTMLEscape | html |
| file://:0:0:0:0 | HTMLEscapeString | html |
| file://:0:0:0:0 | HTMLEscaper | html |
| file://:0:0:0:0 | JSEscape | js |
| file://:0:0:0:0 | JSEscapeString | js |
| file://:0:0:0:0 | JSEscaper | js |
| file://:0:0:0:0 | URLQueryEscaper | url |
@@ -1,3 +1,3 @@
| Match | stdlib.go:16:30:16:37 | "posix?" | stdlib.go:28:11:28:24 | type conversion | stdlib.go:28:2:28:25 | call to Match |
| MatchReader | stdlib.go:16:30:16:37 | "posix?" | stdlib.go:29:17:29:37 | call to NewReader | stdlib.go:29:2:29:38 | call to MatchReader |
| MatchString | stdlib.go:16:30:16:37 | "posix?" | stdlib.go:17:17:17:22 | "posi" | stdlib.go:17:2:17:23 | call to MatchString |
| file://:0:0:0:0 | Match | stdlib.go:16:30:16:37 | "posix?" | stdlib.go:28:11:28:24 | type conversion | stdlib.go:28:2:28:25 | call to Match |
| file://:0:0:0:0 | MatchReader | stdlib.go:16:30:16:37 | "posix?" | stdlib.go:29:17:29:37 | call to NewReader | stdlib.go:29:2:29:38 | call to MatchReader |
| file://:0:0:0:0 | MatchString | stdlib.go:16:30:16:37 | "posix?" | stdlib.go:17:17:17:22 | "posi" | stdlib.go:17:2:17:23 | call to MatchString |

0 comments on commit 2558e67

Please sign in to comment.