@@ -181,13 +181,15 @@ lookupEnumerator
181
181
lookupEnumerator anchor ns (P. Name parent) (P. Name name) =
182
182
vars $ \ (decl :: Angle Cxx. Enumerator ) (entity :: Angle Cxx. Entity )
183
183
(codeEntity :: Angle Code. Entity ) (file :: Angle Src. File )
184
- (rangespan :: Angle Code. RangeSpan ) (lname :: Angle Text ) ->
185
- tuple (entity, file, rangespan, lname) `where_` ((
184
+ (rangespan :: Angle Code. RangeSpan ) (lname :: Angle Text )
185
+ (scope :: Angle Cxx. Scope ) ->
186
+ tuple (entity, file, rangespan, lname) `where_` (
187
+ (scope .= sig (scopeQ (reverse scopes))): (
186
188
wild .= predicate @ SymbolId. LookupEnumerator (
187
189
rec $
188
190
field @ " name" (string name) $
189
191
field @ " parent" (string parent) $
190
- field @ " scope" (scopeQ ( reverse scopes)) $
192
+ field @ " scope" scope $
191
193
field @ " decl" (asPredicate decl)
192
194
end))
193
195
: (alt @ " enumerator" (asPredicate decl) .= sig entity)
@@ -199,12 +201,14 @@ lookupDTorDeclaration :: Text -> [P.Name] -> Angle (ResultLocation Cxx.Entity)
199
201
lookupDTorDeclaration anchor ns =
200
202
vars $ \ (decl :: Angle Cxx. Declaration ) (entity :: Angle Cxx. Entity )
201
203
(codeEntity :: Angle Code. Entity ) (file :: Angle Src. File )
202
- (rangespan :: Angle Code. RangeSpan ) (lname :: Angle Text ) ->
203
- tuple (entity, file, rangespan, lname) `where_` ((
204
+ (rangespan :: Angle Code. RangeSpan ) (lname :: Angle Text )
205
+ (scope :: Angle Cxx. Scope ) ->
206
+ tuple (entity, file, rangespan, lname) `where_` (
207
+ (scope .= sig (scopeQ (reverse scopes))): (
204
208
wild .= predicate @ SymbolId. LookupFunctionDeclaration (
205
209
rec $
206
210
field @ " name" (alt @ " destructor" wild) $
207
- field @ " scope" (scopeQ ( reverse scopes)) $
211
+ field @ " scope" scope $
208
212
field @ " decl" decl
209
213
end))
210
214
: entityDeclFooter anchor decl entity codeEntity file rangespan lname
@@ -215,12 +219,13 @@ lookupDTorDefinition :: Text -> [P.Name] -> Angle (ResultLocation Cxx.Entity)
215
219
lookupDTorDefinition anchor ns =
216
220
vars $ \ (entity :: Angle Cxx. Entity ) (codeEntity :: Angle Code. Entity )
217
221
(file :: Angle Src. File ) (rangespan :: Angle Code. RangeSpan )
218
- (lname :: Angle Text ) ->
219
- tuple (entity, file, rangespan, lname) `where_` ((
222
+ (lname :: Angle Text ) (scope :: Angle Cxx. Scope ) ->
223
+ tuple (entity, file, rangespan, lname) `where_` (
224
+ (scope .= sig (scopeQ (reverse scopes))): (
220
225
wild .= predicate @ SymbolId. LookupFunctionDefinition (
221
226
rec $
222
227
field @ " name" (alt @ " destructor" wild) $
223
- field @ " scope" (scopeQ ( reverse scopes)) $
228
+ field @ " scope" scope $
224
229
field @ " entity" entity
225
230
end))
226
231
: entityFooter anchor entity codeEntity file rangespan lname
@@ -232,12 +237,14 @@ lookupCTorSignatureDefinition
232
237
lookupCTorSignatureDefinition anchor ns ps =
233
238
vars $ \ (entity :: Angle Cxx. Entity ) (codeEntity :: Angle Code. Entity )
234
239
(file :: Angle Src. File ) (rangespan :: Angle Code. RangeSpan )
235
- (lname :: Angle Text ) ->
240
+ (lname :: Angle Text )
241
+ (scope :: Angle Cxx. Scope ) ->
236
242
tuple (entity, file, rangespan, lname) `where_` ([
243
+ scope .= sig (scopeQ (reverse scopes)),
237
244
wild .= predicate @ SymbolId. LookupFunctionSignatureDefinition (
238
245
rec $
239
246
field @ " name" (alt @ " constructor" wild) $ -- either @alt ctor or dtor
240
- field @ " scope" (scopeQ ( reverse scopes)) $
247
+ field @ " scope" scope $
241
248
field @ " signature" (asPredicate (paramTypesQ params)) $
242
249
field @ " entity" entity
243
250
end)
@@ -252,12 +259,14 @@ lookupCTorSignatureDeclaration anchor ns ps =
252
259
vars $ \ (decl :: Angle Cxx. Declaration ) (entity :: Angle Cxx. Entity )
253
260
(codeEntity :: Angle Code. Entity ) (file :: Angle Src. File )
254
261
(rangespan :: Angle Code. RangeSpan )
255
- (lname :: Angle Text ) ->
262
+ (lname :: Angle Text )
263
+ (scope :: Angle Cxx. Scope ) ->
256
264
tuple (entity, file, rangespan, lname) `where_` ([
265
+ scope .= sig (scopeQ (reverse scopes)),
257
266
wild .= predicate @ SymbolId. LookupFunctionSignatureDeclaration (
258
267
rec $
259
268
field @ " name" (alt @ " constructor" wild) $ -- either @alt ctor or dtor
260
- field @ " scope" (scopeQ ( reverse scopes)) $
269
+ field @ " scope" scope $
261
270
field @ " signature" (asPredicate (paramTypesQ params)) $
262
271
field @ " decl" decl
263
272
end)
@@ -274,14 +283,16 @@ lookupFunctionSignatureDeclaration anchor ns (P.Name name) ps quals =
274
283
(codeEntity :: Angle Code. Entity ) (file :: Angle Src. File )
275
284
(rangespan :: Angle Code. RangeSpan )
276
285
(fname :: Angle Cxx. FunctionName ) (n :: Angle Cxx. Name )
277
- (lname :: Angle Text ) ->
286
+ (lname :: Angle Text )
287
+ (scope :: Angle Cxx. Scope ) ->
278
288
tuple (entity, file, rangespan, lname) `where_` ([
279
289
n .= predicate @ Cxx. Name (string name),
280
290
fname .= predicate @ Cxx. FunctionName (alt @ " name" (asPredicate n)),
291
+ scope .= sig (scopeQ (reverse scopes)),
281
292
wild .= predicate @ SymbolId. LookupFunctionSignatureQualifierDeclaration (
282
293
rec $
283
294
field @ " name" (asPredicate fname) $
284
- field @ " scope" (scopeQ ( reverse scopes)) $
295
+ field @ " scope" scope $
285
296
field @ " signature" (asPredicate (paramTypesQ params)) $
286
297
field @ " qualifiers" (qualifiersQ quals) $
287
298
field @ " decl" decl
@@ -298,14 +309,16 @@ lookupFunctionSignatureDefinition anchor ns (P.Name name) ps quals =
298
309
vars $ \ (entity :: Angle Cxx. Entity ) (codeEntity :: Angle Code. Entity )
299
310
(file :: Angle Src. File ) (rangespan :: Angle Code. RangeSpan )
300
311
(fname :: Angle Cxx. FunctionName ) (n :: Angle Cxx. Name )
301
- (lname :: Angle Text ) ->
312
+ (lname :: Angle Text )
313
+ (scope :: Angle Cxx. Scope ) ->
302
314
tuple (entity, file, rangespan, lname) `where_` ([
303
315
n .= predicate @ Cxx. Name (string name),
304
316
fname .= predicate @ Cxx. FunctionName (alt @ " name" (asPredicate n)),
317
+ scope .= sig (scopeQ (reverse scopes)),
305
318
wild .= predicate @ SymbolId. LookupFunctionSignatureQualifierDefinition (
306
319
rec $
307
320
field @ " name" (asPredicate fname) $
308
- field @ " scope" (scopeQ ( reverse scopes)) $
321
+ field @ " scope" scope $
309
322
field @ " signature" (asPredicate (paramTypesQ params)) $
310
323
field @ " qualifiers" (qualifiersQ quals) $
311
324
field @ " entity" entity
@@ -325,13 +338,15 @@ lookupOperatorSignatureDeclaration anchor ns (P.Name o) ps quals =
325
338
vars $ \ (decl :: Angle Cxx. Declaration ) (entity :: Angle Cxx. Entity )
326
339
(codeEntity :: Angle Code. Entity ) (file :: Angle Src. File )
327
340
(rangespan :: Angle Code. RangeSpan )
328
- (fname :: Angle Cxx. FunctionName ) (lname :: Angle Text ) ->
341
+ (fname :: Angle Cxx. FunctionName ) (lname :: Angle Text )
342
+ (scope :: Angle Cxx. Scope ) ->
329
343
tuple (entity, file, rangespan, lname) `where_` ([
330
344
fname .= predicate @ Cxx. FunctionName (operatorQ o),
345
+ scope .= sig (scopeQ (reverse scopes)),
331
346
wild .= predicate @ SymbolId. LookupFunctionSignatureQualifierDeclaration (
332
347
rec $
333
348
field @ " name" (asPredicate fname) $
334
- field @ " scope" (scopeQ ( reverse scopes)) $
349
+ field @ " scope" scope $
335
350
field @ " signature" (asPredicate (paramTypesQ params)) $
336
351
field @ " qualifiers" (qualifiersQ quals) $
337
352
field @ " decl" decl
@@ -347,13 +362,15 @@ lookupOperatorSignatureDefinition
347
362
lookupOperatorSignatureDefinition anchor ns (P. Name o) ps quals =
348
363
vars $ \ (entity :: Angle Cxx. Entity ) (codeEntity :: Angle Code. Entity )
349
364
(file :: Angle Src. File ) (rangespan :: Angle Code. RangeSpan )
350
- (fname :: Angle Cxx. FunctionName ) (lname :: Angle Text ) ->
365
+ (fname :: Angle Cxx. FunctionName ) (lname :: Angle Text )
366
+ (scope :: Angle Cxx. Scope ) ->
351
367
tuple (entity, file, rangespan, lname) `where_` ([
352
368
fname .= predicate @ Cxx. FunctionName (operatorQ o),
369
+ scope .= sig (scopeQ (reverse scopes)),
353
370
wild .= predicate @ SymbolId. LookupFunctionSignatureQualifierDefinition (
354
371
rec $
355
372
field @ " name" (asPredicate fname) $
356
- field @ " scope" (scopeQ ( reverse scopes)) $
373
+ field @ " scope" scope $
357
374
field @ " signature" (asPredicate (paramTypesQ params)) $
358
375
field @ " qualifiers" (qualifiersQ quals) $
359
376
field @ " entity" entity
@@ -373,15 +390,17 @@ lookupTypeOperatorSignatureDeclaration anchor ns (P.Name retTy) quals =
373
390
vars $ \ (decl :: Angle Cxx. Declaration ) (entity :: Angle Cxx. Entity )
374
391
(codeEntity :: Angle Code. Entity ) (file :: Angle Src. File )
375
392
(rangespan :: Angle Code. RangeSpan ) (tyFact :: Angle Cxx. Type )
376
- (fname :: Angle Cxx. FunctionName ) (lname :: Angle Text ) ->
393
+ (fname :: Angle Cxx. FunctionName ) (lname :: Angle Text )
394
+ (scope :: Angle Cxx. Scope ) ->
377
395
tuple (entity, file, rangespan, lname) `where_` ([
378
396
tyFact .= predicate @ Cxx. Type (string retTy),
379
397
fname .= predicate @ Cxx. FunctionName
380
398
(alt @ " conversionOperator" (asPredicate tyFact)),
399
+ scope .= sig (scopeQ (reverse scopes)),
381
400
wild .= predicate @ SymbolId. LookupFunctionSignatureQualifierDeclaration (
382
401
rec $
383
402
field @ " name" (asPredicate fname) $
384
- field @ " scope" (scopeQ ( reverse scopes)) $
403
+ field @ " scope" scope $
385
404
field @ " signature" (asPredicate (returnTypeQ tyFact)) $
386
405
field @ " qualifiers" (qualifiersQ quals) $
387
406
field @ " decl" decl
@@ -397,15 +416,16 @@ lookupTypeOperatorSignatureDefinition anchor ns (P.Name retTy) quals =
397
416
vars $ \ (entity :: Angle Cxx. Entity ) (codeEntity :: Angle Code. Entity )
398
417
(file :: Angle Src. File ) (rangespan :: Angle Code. RangeSpan )
399
418
(tyFact :: Angle Cxx. Type ) (fname :: Angle Cxx. FunctionName )
400
- (lname :: Angle Text ) ->
419
+ (lname :: Angle Text ) (scope :: Angle Cxx. Scope ) ->
401
420
tuple (entity, file, rangespan, lname) `where_` ([
402
421
tyFact .= predicate @ Cxx. Type (string retTy),
403
422
fname .= predicate @ Cxx. FunctionName
404
423
(alt @ " conversionOperator" (asPredicate tyFact)),
424
+ scope .= sig (scopeQ (reverse scopes)),
405
425
wild .= predicate @ SymbolId. LookupFunctionSignatureQualifierDefinition (
406
426
rec $
407
427
field @ " name" (asPredicate fname) $
408
- field @ " scope" (scopeQ ( reverse scopes)) $
428
+ field @ " scope" scope $
409
429
field @ " signature" (asPredicate (returnTypeQ tyFact)) $
410
430
field @ " qualifiers" (qualifiersQ quals) $
411
431
field @ " entity" entity
@@ -435,12 +455,14 @@ lookupDeclaration
435
455
lookupDeclaration anchor ns (P. Name name) =
436
456
vars $ \ (decl :: Angle Cxx. Declaration ) (entity :: Angle Cxx. Entity )
437
457
(codeEntity :: Angle Code. Entity ) (file :: Angle Src. File )
438
- (rangespan :: Angle Code. RangeSpan ) (lname :: Angle Text ) ->
439
- tuple (entity, file, rangespan, lname) `where_` ((
458
+ (rangespan :: Angle Code. RangeSpan ) (lname :: Angle Text )
459
+ (scope :: Angle Cxx. Scope ) ->
460
+ tuple (entity, file, rangespan, lname) `where_` (
461
+ (scope .= sig (scopeQ (reverse scopes))): (
440
462
wild .= predicate @ SymbolId. LookupDeclaration (
441
463
rec $
442
464
field @ " name" (string name) $
443
- field @ " scope" (scopeQ ( reverse scopes)) $
465
+ field @ " scope" scope $
444
466
field @ " decl" decl
445
467
end))
446
468
: entityDeclFooter anchor decl entity codeEntity file rangespan lname
@@ -460,13 +482,15 @@ lookupFunctionDeclaration
460
482
lookupFunctionDeclaration anchor ns (P. Name name) =
461
483
vars $ \ (decl :: Angle Cxx. Declaration ) (entity :: Angle Cxx. Entity )
462
484
(codeEntity :: Angle Code. Entity ) (file :: Angle Src. File )
463
- (rangespan :: Angle Code. RangeSpan ) (lname :: Angle Text ) ->
464
- tuple (entity, file, rangespan, lname) `where_` ((
485
+ (rangespan :: Angle Code. RangeSpan ) (lname :: Angle Text )
486
+ (scope :: Angle Cxx. Scope ) ->
487
+ tuple (entity, file, rangespan, lname) `where_` (
488
+ (scope .= sig (scopeQ (reverse scopes))): (
465
489
wild .= predicate @ SymbolId. LookupFunctionDeclaration (
466
490
rec $
467
491
field @ " name" (functionName name) $
468
492
-- scopeQuery: too generic? can this ever be local or a function?
469
- field @ " scope" (scopeQ ( reverse scopes)) $
493
+ field @ " scope" scope $
470
494
field @ " decl" decl
471
495
end))
472
496
: entityDeclFooter anchor decl entity codeEntity file rangespan lname
0 commit comments