8000 Merge pull request #19532 from owen-mc/go/make-test-version-independent · github/codeql@164cfaf · GitHub
[go: up one dir, main page]

Skip to content

Commit 164cfaf

Browse files
authored
Merge pull request #19532 from owen-mc/go/make-test-version-independent
Go: Make type param test independent of standard library version
2 parents 6f71e3b + f6f6a5c commit 164cfaf

File tree

2 files changed

+5
-207
lines changed

2 files changed

+5
-207
lines changed

go/ql/test/library-tests/semmle/go/Function/TypeParamType.expected

Lines changed: 0 additions & 206 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,6 @@ numberOfTypeParameters
2020
| genericFunctions.go:152:6:152:36 | multipleAnonymousTypeParamsType | 3 |
2121
| genericFunctions.go:154:51:154:51 | f | 3 |
2222
#select
23< 8000 /code>-
| cmp.Compare | 0 | T | Ordered |
24-
| cmp.Less | 0 | T | Ordered |
25-
| cmp.Or | 0 | T | comparable |
26-
| cmp.isNaN | 0 | T | Ordered |
2723
| codeql-go-tests/function.EdgeConstraint | 0 | Node | interface { } |
2824
| codeql-go-tests/function.Element | 0 | S | interface { } |
2925
| codeql-go-tests/function.GenericFunctionInAnotherFile | 0 | T | interface { } |
@@ -57,205 +53,3 @@ numberOfTypeParameters
5753
| codeql-go-tests/function.multipleAnonymousTypeParamsType.f | 0 | _ | interface { } |
5854
| codeql-go-tests/function.multipleAnonymousTypeParamsType.f | 1 | _ | interface { string } |
5955
| codeql-go-tests/function.multipleAnonymousTypeParamsType.f | 2 | _ | interface { } |
60-
| github.com/anotherpkg.GenericFunctionInAnotherPackage | 0 | T | interface { } |
61-
| internal/abi.Escape | 0 | T | interface { } |
62-
| internal/bytealg.HashStr | 0 | T | interface { string \| []uint8 } |
63-
| internal/bytealg.HashStrRev | 0 | T | interface { string \| []uint8 } |
64-
| internal/bytealg.IndexRabinKarp | 0 | T | interface { string \| []uint8 } |
65-
| internal/bytealg.LastIndexRabinKarp | 0 | T | interface { string \| []uint8 } |
66-
| internal/poll.ignoringEINTR2 | 0 | T | interface { } |
67-
| internal/runtime/atomic.Pointer.CompareAndSwap | 0 | T | interface { } |
68-
| internal/runtime/atomic.Pointer.CompareAndSwapNoWB | 0 | T | interface { } |
69-
| internal/runtime/atomic.Pointer.Load | 0 | T | interface { } |
70-
| internal/runtime/atomic.Pointer.Store | 0 | T | interface { } |
71-
| internal/runtime/atomic.Pointer.StoreNoWB | 0 | T | interface { } |
72-
| internal/sync.HashTrieMap.All | 0 | K | comparable |
73-
| internal/sync.HashTrieMap.All | 1 | V | interface { } |
74-
| internal/sync.HashTrieMap.CompareAndDelete | 0 | K | comparable |
75-
| internal/sync.HashTrieMap.CompareAndDelete | 1 | V | interface { } |
76-
| internal/sync.HashTrieMap.CompareAndSwap | 0 | K | comparable |
77-
| internal/sync.HashTrieMap.CompareAndSwap | 1 | V | interface { } |
78-
| internal/sync.HashTrieMap.Delete | 0 | K | comparable |
79-
| internal/sync.HashTrieMap.Load | 0 | K | comparable |
80-
| internal/sync.HashTrieMap.Load | 1 | V | interface { } |
81-
| internal/sync.HashTrieMap.LoadAndDelete | 0 | K | comparable |
82-
| internal/sync.HashTrieMap.LoadAndDelete | 1 | V | interface { } |
83-
| internal/sync.HashTrieMap.LoadOrStore | 0 | K | comparable |
84-
| internal/sync.HashTrieMap.LoadOrStore | 1 | V | interface { } |
85-
| internal/sync.HashTrieMap.Range | 0 | K | comparable |
86-
| internal/sync.HashTrieMap.Range | 1 | V | interface { } |
87-
| internal/sync.HashTrieMap.Store | 0 | K | comparable |
88-
| internal/sync.HashTrieMap.Store | 1 | V | interface { } |
89-
| internal/sync.HashTrieMap.Swap | 0 | K | comparable |
90-
| internal/sync.HashTrieMap.Swap | 1 | V | interface { } |
91-
| internal/sync.HashTrieMap.find | 0 | K | comparable |
92-
| internal/sync.HashTrieMap.find | 1 | V | interface { } |
93-
| internal/sync.HashTrieMap.iter | 0 | K | comparable |
94-
| internal/sync.HashTrieMap.iter | 1 | V | interface { } |
95-
| internal/sync.entry | 0 | K | comparable |
96-
| internal/sync.entry | 1 | V | interface { } |
97-
| internal/sync.entry.compareAndDelete | 0 | K | comparable |
98-
| internal/sync.entry.compareAndDelete | 1 | V | interface { } |
99-
| internal/sync.entry.compareAndSwap | 0 | K | comparable |
100-
| internal/sync.entry.compareAndSwap | 1 | V | interface { } |
101-
| internal/sync.entry.loadAndDelete | 0 | K | comparable |
102-
| internal/sync.entry.loadAndDelete | 1 | V | interface { } |
103-
| internal/sync.entry.lookup | 0 | K | comparable |
104-
| internal/sync.entry.lookup | 1 | V | interface { } |
105-
| internal/sync.entry.lookupWithValue | 0 | K | comparable |
106-
| internal/sync.entry.lookupWithValue | 1 | V | interface { } |
107-
| internal/sync.entry.swap | 0 | K | comparable |
108-
| internal/sync.entry.swap | 1 | V | interface { } |
109-
| internal/sync.newEntryNode | 0 | K | comparable |
110-
| internal/sync.newEntryNode | 1 | V | interface { } |
111-
| iter.Pull | 0 | V | interface { } |
112-
| iter.Pull2 | 0 | K | interface { } |
113-
| iter.Pull2 | 1 | V | interface { } |
114-
| iter.Seq | 0 | V | interface { } |
115-
| iter.Seq2 | 0 | K | interface { } |
116-
| iter.Seq2 | 1 | V | interface { } |
117-
| os.doInRoot | 0 | T | interface { } |
118-
| os.ignoringEINTR2 | 0 | T | interface { } |
119-
| reflect.rangeNum | 1 | N | interface { int64 \| uint64 } |
120-
| runtime.AddCleanup | 0 | T | interface { } |
121-
| runtime.AddCleanup | 1 | S | interface { } |
122-
| runtime.fandbits | 0 | F | floaty |
123-
| runtime.fmax | 0 | F | floaty |
124-
| runtime.fmin | 0 | F | floaty |
125-
| runtime.forbits | 0 | F | floaty |
126-
| runtime.noEscapePtr | 0 | T | interface { } |
127-
| slices.All | 0 | Slice | interface { ~[]E } |
128-
| slices.All | 1 | E | interface { } |
129-
| slices.AppendSeq | 0 | Slice | interface { ~[]E } |
130-
| slices.AppendSeq | 1 | E | interface { } |
131-
| slices.Backward | 0 | Slice | interface { ~[]E } |
132-
| slices.Backward | 1 | E | interface { } |
133-
| slices.BinarySearch | 0 | S | interface { ~[]E } |
134-
| slices.BinarySearch | 1 | E | Ordered |
135-
| slices.BinarySearchFunc | 0 | S | interface { ~[]E } |
136-
| slices.BinarySearchFunc | 1 | E | interface { } |
137-
| slices.BinarySearchFunc | 2 | T | interface { } |
138-
| slices.Chunk | 0 | Slice | interface { ~[]E } |
139-
| slices.Chunk | 1 | E | interface { } |
140-
| slices.Clip | 0 | S | interface { ~[]E } |
141-
| slices.Clip | 1 | E | interface { } |
142-
| slices.Clone | 0 | S | interface { ~[]E } |
143-
| slices.Clone | 1 | E | interface { } |
144-
| slices.Collect | 0 | E | interface { } |
145-
| slices.Compact | 0 | S | interface { ~[]E } |
146-
| slices.Compact | 1 | E | comparable |
147-
| slices.CompactFunc | 0 | S | interface { ~[]E } |
148-
| slices.CompactFunc | 1 | E | interface { } |
149-
| slices.Compare | 0 | S | interface { ~[]E } |
150-
| slices.Compare | 1 | E | Ordered |
151-
| slices.CompareFunc | 0 | S1 | interface { ~[]E1 } |
152-
| slices.CompareFunc | 1 | S2 | interface { ~[]E2 } |
153-
| slices.CompareFunc | 2 | E1 | interface { } |
154-
| slices.CompareFunc | 3 | E2 | interface { } |
155-
| slices.Concat | 0 | S | interface { ~[]E } |
156-
| slices.Concat | 1 | E | interface { } |
157-
| slices.Contains | 0 | S | interface { ~[]E } |
158-
| slices.Contains | 1 | E | comparable |
159-
| slices.ContainsFunc | 0 | S | interface { ~[]E } |
160-
| slices.ContainsFunc | 1 | E | interface { } |
161-
| slices.Delete | 0 | S | interface { ~[]E } |
162-
| slices.Delete | 1 | E | interface { } |
163-
| slices.DeleteFunc | 0 | S | interface { ~[]E } |
164-
| slices.DeleteFunc | 1 | E | interface { } |
165-
| slices.Equal | 0 | S | interface { ~[]E } |
166-
| slices.Equal | 1 | E | comparable |
167-
| slices.EqualFunc | 0 | S1 | interface { ~[]E1 } |
168-
| slices.EqualFunc | 1 | S2 | interface { ~[]E2 } |
169-
| slices.EqualFunc | 2 | E1 | interface { } |
170-
| slices.EqualFunc | 3 | E2 | interface { } |
171-
| slices.Grow | 0 | S | interface { ~[]E } |
172-
| slices.Grow | 1 | E | interface { } |
173-
| slices.Index | 0 | S | interface { ~[]E } |
174-
| slices.Index | 1 | E | comparable |
175-
| slices.IndexFunc | 0 | S | interface { ~[]E } |
176-
| slices.IndexFunc | 1 | E | interface { } |
177-
| slices.Insert | 0 | S | interface { ~[]E } |
178-
| slices.Insert | 1 | E | interface { } |
179-
| slices.IsSorted | 0 | S | interface { ~[]E } |
180-
| slices.IsSorted | 1 | E | Ordered |
181-
| slices.IsSortedFunc | 0 | S | interface { ~[]E } |
182-
| slices.IsSortedFunc | 1 | E | interface { } |
183-
| slices.Max | 0 | S | interface { ~[]E } |
184-
| slices.Max | 1 | E | Ordered |
185-
| slices.MaxFunc | 0 | S | interface { ~[]E } |
186-
| slices.MaxFunc | 1 | E | interface { } |
187-
| slices.Min | 0 | S | interface { ~[]E } |
188-
| slices.Min | 1 | E | Ordered |
189-
| slices.MinFunc | 0 | S | interface { ~[]E } |
190-
| slices.MinFunc | 1 | E | interface { } |
191-
| slices.Repeat | 0 | S | interface { ~[]E } |
192-
| slices.Repeat | 1 | E | interface { } |
193-
| slices.Replace | 0 | S | interface { ~[]E } |
194-
| slices.Replace | 1 | E | interface { } |
195-
| slices.Reverse | 0 | S | interface { ~[]E } |
196-
| slices.Reverse | 1 | E | interface { } |
197-
| slices.Sort | 0 | S | interface { ~[]E } |
198-
| slices.Sort | 1 | E | Ordered |
199-
| slices.SortFunc | 0 | S | interface { ~[]E } |
200-
| slices.SortFunc | 1 | E | interface { } |
201-
| slices.SortStableFunc | 0 | S | interface { ~[]E } |
202-
| slices.SortStableFunc | 1 | E | interface { } |
203-
| slices.Sorted | 0 | E | Ordered |
204-
| slices.SortedFunc | 0 | E | interface { } |
205-
| slices.SortedStableFunc | 0 | E | interface { } |
206-
| slices.Values | 0 | Slice | interface { ~[]E } |
207-
| slices.Values | 1 | E | interface { } |
208-
| slices.breakPatternsCmpFunc | 0 | E | interface { } |
209-
| slices.breakPatternsOrdered | 0 | E | Ordered |
210-
| slices.choosePivotCmpFunc | 0 | E | interface { } |
211-
| slices.choosePivotOrdered | 0 | E | Ordered |
212-
| slices.heapSortCmpFunc | 0 | E | interface { } |
213-
| slices.heapSortOrdered | 0 | E | Ordered |
214-
| slices.insertionSortCmpFunc | 0 | E | interface { } |
215-
| slices.insertionSortOrdered | 0 | E | Ordered |
216-
| slices.isNaN | 0 | T | Ordered |
217-
| slices.medianAdjacentCmpFunc | 0 | E | interface { } |
218-
| slices.medianAdjacentOrdered | 0 | E | Ordered |
219-
| slices.medianCmpFunc | 0 | E | interface { } |
220-
| slices.medianOrdered | 0 | E | Ordered |
221-
| slices.order2CmpFunc | 0 | E | interface { } |
222-
| slices.order2Ordered | 0 | E | Ordered |
223-
| slices.overlaps | 0 | E | interface { } |
224-
| slices.partialInsertionSortCmpFunc | 0 | E | interface { } |
225-
| slices.partialInsertionSortOrdered | 0 | E | Ordered |
226-
| slices.partitionCmpFunc | 0 | E | interface { } |
227-
| slices.partitionEqualCmpFunc | 0 | E | interface { } |
228-
| slices.partitionEqualOrdered | 0 | E | Ordered |
229-
| slices.partitionOrdered | 0 | E | Ordered |
230-
| slices.pdqsortCmpFunc | 0 | E | interface { } |
231-
| slices.pdqsortOrdered | 0 | E | Ordered |
232-
| slices.reverseRangeCmpFunc | 0 | E | interface { } |
233-
| slices.reverseRangeOrdered | 0 | E | Ordered |
234-
| slices.rotateCmpFunc | 0 | E | interface { } |
235-
| slices.rotateLeft | 0 | E | interface { } |
236-
| slices.rotateOrdered | 0 | E | Ordered |
237-
| slices.rotateRight | 0 | E | interface { } |
238-
| slices.siftDownCmpFunc | 0 | E | interface { } |
239-
| slices.siftDownOrdered | 0 | E | Ordered |
240-
| slices.stableCmpFunc | 0 | E | interface { } |
241-
| slices.stableOrdered | 0 | E | Ordered |
242-
| slices.startIdx | 0 | E | interface { } |
243-
| slices.swapRangeCmpFunc | 0 | E | interface { } |
244-
| slices.swapRangeOrdered | 0 | E | Ordered |
245-
| slices.symMergeCmpFunc | 0 | E | interface { } |
246-
| slices.symMergeOrdered | 0 | E | Ordered |
247-
| strconv.bsearch | 0 | S | interface { ~[]E } |
248-
| strconv.bsearch | 1 | E | interface { ~uint16 \| ~uint32 } |
249-
| sync.OnceValue | 0 | T | interface { } |
250-
| sync.OnceValues | 0 | T1 | interface { } |
251-
| sync.OnceValues | 1 | T2 | interface { } |
252-
| sync/atomic.Pointer | 0 | T | interface { } |
253-
| sync/atomic.Pointer.CompareAndSwap | 0 | T | interface { } |
254-
| sync/atomic.Pointer.Load | 0 | T | interface { } |
255-
| sync/atomic.Pointer.Store | 0 | T | interface { } |
256-
| sync/atomic.Pointer.Swap | 0 | T | interface { } |
257-
| time.atoi | 0 | bytes | interface { []uint8 \| string } |
258-
| time.isDigit | 0 | bytes | interface { []uint8 \| string } |
259-
| time.leadingInt | 0 | bytes | interface { []uint8 \| string } |
260-
| time.parseNanoseconds | 0 | bytes | interface { []uint8 \| string } |
261-
| time.parseRFC3339 | 0 | bytes | interface { []uint8 \| string } |

go/ql/test/library-tests/semmle/go/Function/TypeParamType.ql

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,9 @@ query predicate numberOfTypeParameters(TypeParamParentEntity parent, int n) {
66
}
77

88
from TypeParamType tpt, TypeParamParentEntity ty
9-
where ty = tpt.getParent()
9+
where
10+
ty = tpt.getParent() and
11+
// Note that we cannot use the location of `tpt` itself as we currently fail
12+
// to extract an object for type parameters for methods on generic structs.
13+
exists(ty.getLocation())
1014
select ty.getQualifiedName(), tpt.getIndex(), tpt.getParamName(), tpt.getConstraint().pp()

0 commit comments

Comments
 (0)
0