From 1a4844fc8a9287c4611305877250a7d8710cf851 Mon Sep 17 00:00:00 2001 From: Don Stewart Date: Wed, 11 Dec 2024 19:06:34 -0800 Subject: [PATCH] Search by name using per-kind tables for Hack Summary: Kind-oriented search for Hack. This will speed up the main source of slow queries for Hack. Reviewed By: phlalx Differential Revision: D66800015 fbshipit-source-id: 52009316fc1e5e7d833761cc63ab0aceaa572c50 --- .../search_insensitive_exact_exactkind.perf | 5 +- .../search_insensitive_exact_nokind.perf | 5 +- .../search_insensitive_prefix_exactkind.perf | 5 +- ...arch_insensitive_prefix_exactkindplus.perf | 7 +- .../search_insensitive_prefix_nokind.perf | 5 +- .../cases/xrefs/search_sensitive_exact.perf | 4 +- .../search_sensitive_exact_exactkind.perf | 4 +- .../search_sensitive_exact_exactkindplus.perf | 6 +- .../xrefs/search_sensitive_exact_lang.perf | 4 +- .../search_sensitive_exact_lang_dontcare.perf | 4 +- ...earch_sensitive_exact_lang_exact_kind.perf | 4 +- .../search_sensitive_exact_multilang.perf | 4 +- .../xrefs/search_sensitive_exact_nokind.perf | 4 +- .../search_sensitive_prefix_exactkind.perf | 4 +- ...search_sensitive_prefix_exactkindplus.perf | 6 +- .../xrefs/search_sensitive_prefix_nokind.perf | 4 +- .../tests/hack/search/fileentities.out | 236 ++ .../tests/hack/search/fileentities.perf | 10 + .../tests/hack/search/fileentities.query | 3 + .../hack/search/prefix_search_by_name.out | 40 - .../hack/search/prefix_search_by_name.perf | 32 +- .../hack/search/prefix_search_by_name.query | 2 +- .../search/search_by_lowercase_scope.perf | 6 +- .../tests/hack/search/search_by_name.perf | 5 +- .../tests/hack/search/search_by_name.query | 2 +- .../tests/hack/search/search_by_scope.perf | 6 +- .../search/search_by_scope_class_const.out | 9 +- .../search/search_by_scope_class_const.perf | 8 +- .../search/search_by_scope_class_const.query | 2 +- .../hack/search/search_by_scope_enum.out | 9 +- .../hack/search/search_by_scope_enum.perf | 8 +- .../hack/search/search_by_scope_enum.query | 2 +- .../hack/search/search_by_scope_interface.out | 9 +- .../search/search_by_scope_interface.perf | 8 +- .../search/search_by_scope_interface.query | 2 +- .../search_by_scope_interface_method.out | 9 +- .../search_by_scope_interface_method.perf | 8 +- .../search_by_scope_interface_method.query | 2 +- .../hack/search/search_by_scope_method.out | 9 +- .../hack/search/search_by_scope_method.perf | 8 +- .../hack/search/search_by_scope_method.query | 2 +- .../hack/search/search_by_scope_module.out | 9 +- .../hack/search/search_by_scope_module.perf | 5 +- .../hack/search/search_by_scope_module.query | 2 +- .../hack/search/search_by_scope_property.out | 9 +- .../hack/search/search_by_scope_property.perf | 8 +- .../search/search_by_scope_property.query | 2 +- .../hack/search/search_by_scope_super.out | 9 +- .../hack/search/search_by_scope_super.perf | 8 +- .../hack/search/search_by_scope_super.query | 2 +- .../hack/search/search_by_scope_trait.out | 9 +- .../hack/search/search_by_scope_trait.perf | 8 +- .../hack/search/search_by_scope_trait.query | 2 +- .../search/search_by_scope_type_const.perf | 6 +- .../tests/hack/search/search_in_context.out | 29 - .../tests/hack/search/search_in_context.perf | 10 - .../tests/hack/search/search_in_context.query | 3 - .../hack/search/search_in_context_const.out | 30 +- .../hack/search/search_in_context_const.perf | 7 +- .../hack/search/search_in_context_const.query | 2 +- .../search/search_in_context_const_full.out | 40 + .../search/search_in_context_const_full.perf | 11 + .../search/search_in_context_const_full.query | 3 + .../hack/search/search_in_context_enum.out | 32 +- .../hack/search/search_in_context_enum.perf | 7 +- .../hack/search/search_in_context_enum.query | 2 +- .../search/search_in_context_interface.out | 38 +- .../search/search_in_context_interface.perf | 7 +- .../search/search_in_context_interface.query | 2 +- glean/schema/cpp/schema.h | 2232 +++++++++-------- glean/schema/source/search.code.angle | 249 +- glean/schema/source/search.hack.angle | 30 - 72 files changed, 1846 insertions(+), 1479 deletions(-) create mode 100644 glean/lang/codemarkup/tests/hack/search/fileentities.out create mode 100644 glean/lang/codemarkup/tests/hack/search/fileentities.perf create mode 100644 glean/lang/codemarkup/tests/hack/search/fileentities.query delete mode 100644 glean/lang/codemarkup/tests/hack/search/search_in_context.out delete mode 100644 glean/lang/codemarkup/tests/hack/search/search_in_context.perf delete mode 100644 glean/lang/codemarkup/tests/hack/search/search_in_context.query create mode 100644 glean/lang/codemarkup/tests/hack/search/search_in_context_const_full.out create mode 100644 glean/lang/codemarkup/tests/hack/search/search_in_context_const_full.perf create mode 100644 glean/lang/codemarkup/tests/hack/search/search_in_context_const_full.query diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_exact_exactkind.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_exact_exactkind.perf index 5596bccc3..ca5a7b8f1 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_exact_exactkind.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_exact_exactkind.perf @@ -1,10 +1,9 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.NameLowerCase.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByLowerCaseName.6": 1, + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_exact_nokind.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_exact_nokind.perf index 5596bccc3..ca5a7b8f1 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_exact_nokind.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_exact_nokind.perf @@ -1,10 +1,9 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.NameLowerCase.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByLowerCaseName.6": 1, + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_prefix_exactkind.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_prefix_exactkind.perf index 5596bccc3..ca5a7b8f1 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_prefix_exactkind.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_prefix_exactkind.perf @@ -1,10 +1,9 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.NameLowerCase.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByLowerCaseName.6": 1, + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_prefix_exactkindplus.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_prefix_exactkindplus.perf index f8783e633..ca5a7b8f1 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_prefix_exactkindplus.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_prefix_exactkindplus.perf @@ -1,10 +1,9 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 2, - "hack.DeclarationSpan.6": 2, - "hack.NameLowerCase.6": 2, - "hack.QName.6": 2 + "hack.DeclarationSpan.6": 1, + "hack.SearchClassByLowerCaseName.6": 1, + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_prefix_nokind.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_prefix_nokind.perf index 5596bccc3..ca5a7b8f1 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_prefix_nokind.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_insensitive_prefix_nokind.perf @@ -1,10 +1,9 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.NameLowerCase.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByLowerCaseName.6": 1, + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact.perf index 87c514a9d..2e44fc3d7 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact.perf @@ -1,10 +1,8 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.Name.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_exactkind.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_exactkind.perf index 87c514a9d..2e44fc3d7 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_exactkind.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_exactkind.perf @@ -1,10 +1,8 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.Name.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_exactkindplus.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_exactkindplus.perf index 1072814e3..2e44fc3d7 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_exactkindplus.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_exactkindplus.perf @@ -1,10 +1,8 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 2, - "hack.DeclarationSpan.6": 2, - "hack.Name.6": 2, - "hack.QName.6": 2 + "hack.DeclarationSpan.6": 1, + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_lang.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_lang.perf index 87c514a9d..2e44fc3d7 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_lang.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_lang.perf @@ -1,10 +1,8 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.Name.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_lang_dontcare.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_lang_dontcare.perf index 87c514a9d..2e44fc3d7 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_lang_dontcare.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_lang_dontcare.perf @@ -1,10 +1,8 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.Name.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_lang_exact_kind.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_lang_exact_kind.perf index 87c514a9d..2e44fc3d7 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_lang_exact_kind.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_lang_exact_kind.perf @@ -1,10 +1,8 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.Name.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_multilang.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_multilang.perf index 87c514a9d..2e44fc3d7 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_multilang.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_multilang.perf @@ -1,10 +1,8 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.Name.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_nokind.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_nokind.perf index 87c514a9d..2e44fc3d7 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_nokind.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_exact_nokind.perf @@ -1,10 +1,8 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.Name.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_prefix_exactkind.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_prefix_exactkind.perf index 87c514a9d..2e44fc3d7 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_prefix_exactkind.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_prefix_exactkind.perf @@ -1,10 +1,8 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.Name.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_prefix_exactkindplus.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_prefix_exactkindplus.perf index 1072814e3..2e44fc3d7 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_prefix_exactkindplus.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_prefix_exactkindplus.perf @@ -1,10 +1,8 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 2, - "hack.DeclarationSpan.6": 2, - "hack.Name.6": 2, - "hack.QName.6": 2 + "hack.DeclarationSpan.6": 1, + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_prefix_nokind.perf b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_prefix_nokind.perf index 87c514a9d..2e44fc3d7 100644 --- a/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_prefix_nokind.perf +++ b/glean/lang/codemarkup/tests/hack/cases/xrefs/search_sensitive_prefix_nokind.perf @@ -1,10 +1,8 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, "hack.DeclarationSpan.6": 1, - "hack.Name.6": 1, - "hack.QName.6": 1 + "hack.SearchClassByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/fileentities.out b/glean/lang/codemarkup/tests/hack/search/fileentities.out new file mode 100644 index 000000000..f3b61c5e0 --- /dev/null +++ b/glean/lang/codemarkup/tests/hack/search/fileentities.out @@ -0,0 +1,236 @@ +[ + "@generated", + { + "key": { + "file": { "key": "www/SourceClass.php" }, + "location": { + "name": "BAZ", + "file": { "key": "www/SourceClass.php" }, + "location": { "span": { "start": 339, "length": 18 } }, + "destination": { + "file": { "key": "www/SourceClass.php" }, + "span": { "start": 349, "length": 3 } + } + }, + "entity": { + "hack": { + "decl": { + "classConst": { + "key": { + "name": { "key": "BAZ" }, + "container": { + "class_": { + "key": { + "name": { + "key": { + "name": { "key": "SourceClass" }, + "namespace_": { "key": { "name": { "key": "NS" } } } + } + } + } + } + } + } + } + } + } + } + } + }, + { + "key": { + "file": { "key": "www/SourceClass.php" }, + "location": { + "name": "NS", + "file": { "key": "www/SourceClass.php" }, + "location": { "span": { "start": 237, "length": 2 } }, + "destination": { + "file": { "key": "www/SourceClass.php" }, + "span": { "start": 237, "length": 2 } + } + }, + "entity": { + "hack": { + "decl": { + "namespace_": { + "key": { "name": { "key": { "name": { "key": "NS" } } } } + } + } + } + } + } + }, + { + "key": { + "file": { "key": "www/SourceClass.php" }, + "location": { + "name": "SourceClass", + "file": { "key": "www/SourceClass.php" }, + "location": { "span": { "start": 297, "length": 279 } }, + "destination": { + "file": { "key": "www/SourceClass.php" }, + "span": { "start": 303, "length": 11 } + } + }, + "entity": { + "hack": { + "decl": { + "container": { + "class_": { + "key": { + "name": { + "key": { + "name": { "key": "SourceClass" }, + "namespace_": { "key": { "name": { "key": "NS" } } } + } + } + } + } + } + } + } + } + } + }, + { + "key": { + "file": { "key": "www/SourceClass.php" }, + "location": { + "name": "T", + "file": { "key": "www/SourceClass.php" }, + "location": { "span": { "start": 361, "length": 19 } }, + "destination": { + "file": { "key": "www/SourceClass.php" }, + "span": { "start": 372, "length": 1 } + } + }, + "entity": { + "hack": { + "decl": { + "typeConst": { + "key": { + "name": { "key": "T" }, + "container": { + "class_": { + "key": { + "name": { + "key": { + "name": { "key": "SourceClass" }, + "namespace_": { "key": { "name": { "key": "NS" } } } + } + } + } + } + } + } + } + } + } + } + } + }, + { + "key": { + "file": { "key": "www/SourceClass.php" }, + "location": { + "name": "TopTierFnType", + "file": { "key": "www/SourceClass.php" }, + "location": { "span": { "start": 242, "length": 53 } }, + "destination": { + "file": { "key": "www/SourceClass.php" }, + "span": { "start": 247, "length": 13 } + } + }, + "entity": { + "hack": { + "decl": { + "typedef_": { + "key": { + "name": { + "key": { + "name": { "key": "TopTierFnType" }, + "namespace_": { "key": { "name": { "key": "NS" } } } + } + } + } + } + } + } + } + } + }, + { + "key": { + "file": { "key": "www/SourceClass.php" }, + "location": { + "name": "bar", + "file": { "key": "www/SourceClass.php" }, + "location": { "span": { "start": 503, "length": 71 } }, + "destination": { + "file": { "key": "www/SourceClass.php" }, + "span": { "start": 519, "length": 3 } + } + }, + "entity": { + "hack": { + "decl": { + "method": { + "key": { + "name": { "key": "bar" }, + "container": { + "class_": { + "key": { + "name": { + "key": { + "name": { "key": "SourceClass" }, + "namespace_": { "key": { "name": { "key": "NS" } } } + } + } + } + } + } + } + } + } + } + } + } + }, + { + "key": { + "file": { "key": "www/SourceClass.php" }, + "location": { + "name": "daz", + "file": { "key": "www/SourceClass.php" }, + "location": { "span": { "start": 489, "length": 9 } }, + "destination": { + "file": { "key": "www/SourceClass.php" }, + "span": { "start": 489, "length": 4 } + } + }, + "entity": { + "hack": { + "decl": { + "property_": { + "key": { + "name": { "key": "daz" }, + "container": { + "class_": { + "key": { + "name": { + "key": { + "name": { "key": "SourceClass" }, + "namespace_": { "key": { "name": { "key": "NS" } } } + } + } + } + } + } + } + } + } + } + } + } + } +] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/fileentities.perf b/glean/lang/codemarkup/tests/hack/search/fileentities.perf new file mode 100644 index 000000000..0a782683c --- /dev/null +++ b/glean/lang/codemarkup/tests/hack/search/fileentities.perf @@ -0,0 +1,10 @@ +{ + "@generated": null, + "facts_searched": { + "hack.DeclarationLocation.6": 7, + "hack.DeclarationSpan.6": 7, + "hack.FileDeclarations.6": 1, + "src.File.1": 1 + }, + "full_scans": [ ] +} \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/fileentities.query b/glean/lang/codemarkup/tests/hack/search/fileentities.query new file mode 100644 index 000000000..c6e27a42a --- /dev/null +++ b/glean/lang/codemarkup/tests/hack/search/fileentities.query @@ -0,0 +1,3 @@ +query: codemarkup.FileEntityLocations { file = "www/SourceClass.php" } +perf: true +transform: [gensort, []] diff --git a/glean/lang/codemarkup/tests/hack/search/prefix_search_by_name.out b/glean/lang/codemarkup/tests/hack/search/prefix_search_by_name.out index f390f7f55..58232b8f9 100644 --- a/glean/lang/codemarkup/tests/hack/search/prefix_search_by_name.out +++ b/glean/lang/codemarkup/tests/hack/search/prefix_search_by_name.out @@ -85,26 +85,6 @@ } } }, - { - "key": { - "hack": { - "decl": { - "container": { - "class_": { - "key": { - "name": { - "key": { - "name": { "key": "Awaitable" }, - "namespace_": { "key": { "name": { "key": "HH" } } } - } - } - } - } - } - } - } - } - }, { "key": { "hack": { @@ -151,26 +131,6 @@ } } }, - { - "key": { - "hack": { - "decl": { - "container": { - "class_": { - "key": { - "name": { - "key": { - "name": { "key": "SuperClass" }, - "namespace_": { "key": { "name": { "key": "NS" } } } - } - } - } - } - } - } - } - } - }, { "key": { "hack": { diff --git a/glean/lang/codemarkup/tests/hack/search/prefix_search_by_name.perf b/glean/lang/codemarkup/tests/hack/search/prefix_search_by_name.perf index d3a9dcbc9..61ddfd882 100644 --- a/glean/lang/codemarkup/tests/hack/search/prefix_search_by_name.perf +++ b/glean/lang/codemarkup/tests/hack/search/prefix_search_by_name.perf @@ -1,23 +1,21 @@ { "@generated": null, "facts_searched": { - "hack.ClassConstDeclaration.6": 4, - "hack.ClassDeclaration.6": 5, - "hack.EnumDeclaration.6": 1, - "hack.Enumerator.6": 5, - "hack.FunctionDeclaration.6": 1, - "hack.GlobalConstDeclaration.6": 1, - "hack.InterfaceDeclaration.6": 1, - "hack.MethodDeclaration.6": 7, - "hack.ModuleDeclaration.6": 1, - "hack.Name.6": 33, - "hack.NamespaceDeclaration.6": 1, - "hack.NamespaceQName.6": 5, - "hack.PropertyDeclaration.6": 2, - "hack.QName.6": 11, - "hack.TraitDeclaration.6": 1, - "hack.TypeConstDeclaration.6": 1, - "hack.TypedefDeclaration.6": 1 + "hack.DeclarationSpan.6": 30, + "hack.SearchClassByName.6": 5, + "hack.SearchClassConstByName.6": 4, + "hack.SearchEnumByName.6": 1, + "hack.SearchEnumeratorByName.6": 5, + "hack.SearchFunctionByName.6": 1, + "hack.SearchGlobalConstByName.6": 1, + "hack.SearchInterfaceByName.6": 1, + "hack.SearchMethodByName.6": 7, + "hack.SearchModuleByName.6": 1, + "hack.SearchNamespaceByName.6": 1, + "hack.SearchPropertyByName.6": 2, + "hack.SearchTraitByName.6": 1, + "hack.SearchTypeConstByName.6": 1, + "hack.SearchTypedefByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/prefix_search_by_name.query b/glean/lang/codemarkup/tests/hack/search/prefix_search_by_name.query index 8a98e12e9..241952dbe 100644 --- a/glean/lang/codemarkup/tests/hack/search/prefix_search_by_name.query +++ b/glean/lang/codemarkup/tests/hack/search/prefix_search_by_name.query @@ -1,3 +1,3 @@ -query: D where search.code.SearchByNameAndLanguage { name = "".., entity = D } +query: D where codemarkup.search.SearchByName { name = "".., entity = D, language = Hack, searchcase = Sensitive } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_lowercase_scope.perf b/glean/lang/codemarkup/tests/hack/search/search_by_lowercase_scope.perf index aff746f34..4e9f23602 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_lowercase_scope.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_lowercase_scope.perf @@ -1,5 +1 @@ -{ - "@generated": null, - "facts_searched": { "hack.NameLowerCase.6": 1 }, - "full_scans": [ ] -} \ No newline at end of file +{ "@generated": null, "facts_searched": { }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_name.perf b/glean/lang/codemarkup/tests/hack/search/search_by_name.perf index cf90d2af2..cba254b8a 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_name.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_name.perf @@ -1,5 +1,8 @@ { "@generated": null, - "facts_searched": { "hack.MethodDeclaration.6": 2, "hack.Name.6": 1 }, + "facts_searched": { + "hack.DeclarationSpan.6": 2, + "hack.SearchMethodByName.6": 2 + }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_name.query b/glean/lang/codemarkup/tests/hack/search/search_by_name.query index f613e539f..888831b08 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_name.query +++ b/glean/lang/codemarkup/tests/hack/search/search_by_name.query @@ -1,3 +1,3 @@ -query: D where search.code.SearchByNameAndLanguage { name = "foo", entity = D } +query: D where codemarkup.search.SearchByName { name = "foo", language = Hack, searchcase = Sensitive, entity = D } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope.perf b/glean/lang/codemarkup/tests/hack/search/search_by_scope.perf index 584af3c3b..4e9f23602 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope.perf @@ -1,5 +1 @@ -{ - "@generated": null, - "facts_searched": { "hack.Name.6": 3, "hack.NamespaceQName.6": 1 }, - "full_scans": [ ] -} \ No newline at end of file +{ "@generated": null, "facts_searched": { }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_class_const.out b/glean/lang/codemarkup/tests/hack/search/search_by_scope_class_const.out index 3f7f052ed..b479ec575 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_class_const.out +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_class_const.out @@ -20,9 +20,16 @@ } } }, + "kind": 15, "language": 5, + "location": { + "file": { "key": "www/RefClass.php" }, + "location": { "span": { "length": 20, "start": 146 } }, + "name": "JAZZ" + }, "name": "JAZZ", - "scope": [ "RefClass" ] + "scope": [ "RefClass" ], + "searchcase": 0 } } ] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_class_const.perf b/glean/lang/codemarkup/tests/hack/search/search_by_scope_class_const.perf index 1ec44fac3..55da32d78 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_class_const.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_class_const.perf @@ -1,11 +1,11 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, - "hack.ClassDefinition.6": 1, - "hack.Name.6": 3, + "hack.DeclarationSpan.6": 1, + "hack.Name.6": 2, "hack.NamespaceQName.6": 1, - "hack.QName.6": 3 + "hack.QName.6": 5, + "hack.SearchClassConstByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_class_const.query b/glean/lang/codemarkup/tests/hack/search/search_by_scope_class_const.query index b84a82d2d..d9a70edaf 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_class_const.query +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_class_const.query @@ -1,3 +1,3 @@ -query: search.code.SearchByScope { name = "JAZZ", scope = ["RefClass"] } +query: codemarkup.search.SearchByScope { name = "JAZZ", scope = ["RefClass"], language = Hack ,searchcase = Sensitive } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_enum.out b/glean/lang/codemarkup/tests/hack/search/search_by_scope_enum.out index d8b67a168..d8c1c35e4 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_enum.out +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_enum.out @@ -18,9 +18,16 @@ } } }, + "kind": 9, "language": 5, + "location": { + "file": { "key": "www/TopLevel.php" }, + "location": { "span": { "length": 3, "start": 184 } }, + "name": "Top" + }, "name": "Top", - "scope": [ "Position" ] + "scope": [ "Position" ], + "searchcase": 0 } } ] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_enum.perf b/glean/lang/codemarkup/tests/hack/search/search_by_scope_enum.perf index 3a6ff43a0..d769aeab1 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_enum.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_enum.perf @@ -1,11 +1,11 @@ { "@generated": null, "facts_searched": { - "hack.EnumDeclaration.6": 1, - "hack.Enumerator.6": 1, - "hack.Name.6": 3, + "hack.DeclarationSpan.6": 1, + "hack.Name.6": 2, "hack.NamespaceQName.6": 1, - "hack.QName.6": 3 + "hack.QName.6": 5, + "hack.SearchEnumeratorByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_enum.query b/glean/lang/codemarkup/tests/hack/search/search_by_scope_enum.query index 96bdd09cb..04d235417 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_enum.query +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_enum.query @@ -1,3 +1,3 @@ -query: search.code.SearchByScope { name = "Top", scope = ["Position"] } +query: codemarkup.search.SearchByScope { name = "Top", scope = ["Position"], searchcase = Sensitive, language = Hack } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface.out b/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface.out index 36cc23132..e4923436a 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface.out +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface.out @@ -22,9 +22,16 @@ } } }, + "kind": 15, "language": 5, + "location": { + "file": { "key": "www/SourceInterface.php" }, + "location": { "span": { "length": 24, "start": 111 } }, + "name": "JAZZ" + }, "name": "JAZZ", - "scope": [ "SourceInterface" ] + "scope": [ "SourceInterface" ], + "searchcase": 0 } } ] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface.perf b/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface.perf index e068ccc08..55da32d78 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface.perf @@ -1,11 +1,11 @@ { "@generated": null, "facts_searched": { - "hack.InterfaceDeclaration.6": 1, - "hack.InterfaceDefinition.6": 1, - "hack.Name.6": 3, + "hack.DeclarationSpan.6": 1, + "hack.Name.6": 2, "hack.NamespaceQName.6": 1, - "hack.QName.6": 3 + "hack.QName.6": 5, + "hack.SearchClassConstByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface.query b/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface.query index 561f8f0ef..98c6586b2 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface.query +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface.query @@ -1,3 +1,3 @@ -query: search.code.SearchByScope { name = "JAZZ", scope = ["SourceInterface"] } +query: codemarkup.search.SearchByScope { name = "JAZZ", scope = ["SourceInterface"], searchcase = Sensitive, language = Hack } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface_method.out b/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface_method.out index 9c3776927..36ae2cb72 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface_method.out +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface_method.out @@ -22,9 +22,16 @@ } } }, + "kind": 7, "language": 5, + "location": { + "file": { "key": "www/SourceInterface.php" }, + "location": { "span": { "length": 34, "start": 139 } }, + "name": "foo" + }, "name": "foo", - "scope": [ "SourceInterface" ] + "scope": [ "SourceInterface" ], + "searchcase": 0 } } ] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface_method.perf b/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface_method.perf index e068ccc08..9a574d703 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface_method.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface_method.perf @@ -1,11 +1,11 @@ { "@generated": null, "facts_searched": { - "hack.InterfaceDeclaration.6": 1, - "hack.InterfaceDefinition.6": 1, - "hack.Name.6": 3, + "hack.DeclarationSpan.6": 1, + "hack.Name.6": 2, "hack.NamespaceQName.6": 1, - "hack.QName.6": 3 + "hack.QName.6": 5, + "hack.SearchMethodByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface_method.query b/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface_method.query index ed4e737af..5059aac06 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface_method.query +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_interface_method.query @@ -1,3 +1,3 @@ -query: search.code.SearchByScope { name = "foo", scope = ["SourceInterface"] } +query: codemarkup.search.SearchByScope { name = "foo", scope = ["SourceInterface"], searchcase = Sensitive, language = Hack } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_method.out b/glean/lang/codemarkup/tests/hack/search/search_by_scope_method.out index 24bee1a97..e136eb492 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_method.out +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_method.out @@ -20,9 +20,16 @@ } } }, + "kind": 7, "language": 5, + "location": { + "file": { "key": "www/RefClass.php" }, + "location": { "span": { "length": 390, "start": 331 } }, + "name": "bar" + }, "name": "bar", - "scope": [ "RefClass" ] + "scope": [ "RefClass" ], + "searchcase": 0 } } ] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_method.perf b/glean/lang/codemarkup/tests/hack/search/search_by_scope_method.perf index 1ec44fac3..9a574d703 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_method.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_method.perf @@ -1,11 +1,11 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, - "hack.ClassDefinition.6": 1, - "hack.Name.6": 3, + "hack.DeclarationSpan.6": 1, + "hack.Name.6": 2, "hack.NamespaceQName.6": 1, - "hack.QName.6": 3 + "hack.QName.6": 5, + "hack.SearchMethodByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_method.query b/glean/lang/codemarkup/tests/hack/search/search_by_scope_method.query index 63e75fb0e..c171f3d46 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_method.query +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_method.query @@ -1,3 +1,3 @@ -query: search.code.SearchByScope { name = "bar", scope = ["RefClass"] } +query: codemarkup.search.SearchByScope { name = "bar", scope = ["RefClass"], language = Hack, searchcase = Sensitive } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_module.out b/glean/lang/codemarkup/tests/hack/search/search_by_scope_module.out index 8e15a7c1c..9bda6b50b 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_module.out +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_module.out @@ -7,9 +7,16 @@ "decl": { "module": { "key": { "name": { "key": "glean.test" } } } } } }, + "kind": 4, "language": 5, + "location": { + "file": { "key": "www/BaseModule.php" }, + "location": { "span": { "length": 25, "start": 80 } }, + "name": "glean.test" + }, "name": "glean.test", - "scope": [ ] + "scope": [ ], + "searchcase": 0 } } ] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_module.perf b/glean/lang/codemarkup/tests/hack/search/search_by_scope_module.perf index 83acc5728..012b06cbe 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_module.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_module.perf @@ -1,9 +1,10 @@ { "@generated": null, "facts_searched": { - "hack.ModuleDeclaration.6": 1, + "hack.DeclarationSpan.6": 1, "hack.Name.6": 2, - "hack.NamespaceQName.6": 1 + "hack.NamespaceQName.6": 1, + "hack.SearchModuleByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_module.query b/glean/lang/codemarkup/tests/hack/search/search_by_scope_module.query index 80831cc0f..090938b29 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_module.query +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_module.query @@ -1,3 +1,3 @@ -query: search.code.SearchByScope { name = "glean.test", scope = [] } +query: codemarkup.search.SearchByScope { name = "glean.test", scope = [], language = Hack, searchcase = Sensitive } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_property.out b/glean/lang/codemarkup/tests/hack/search/search_by_scope_property.out index b1e7480bc..bba30c81f 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_property.out +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_property.out @@ -20,9 +20,16 @@ } } }, + "kind": 8, "language": 5, + "location": { + "file": { "key": "www/RefClass.php" }, + "location": { "span": { "length": 10, "start": 182 } }, + "name": "raz" + }, "name": "raz", - "scope": [ "RefClass" ] + "scope": [ "RefClass" ], + "searchcase": 0 } } ] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_property.perf b/glean/lang/codemarkup/tests/hack/search/search_by_scope_property.perf index 1ec44fac3..88229d097 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_property.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_property.perf @@ -1,11 +1,11 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, - "hack.ClassDefinition.6": 1, - "hack.Name.6": 3, + "hack.DeclarationSpan.6": 1, + "hack.Name.6": 2, "hack.NamespaceQName.6": 1, - "hack.QName.6": 3 + "hack.QName.6": 5, + "hack.SearchPropertyByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_property.query b/glean/lang/codemarkup/tests/hack/search/search_by_scope_property.query index 00fdf6db7..c872fc38b 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_property.query +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_property.query @@ -1,3 +1,3 @@ -query: search.code.SearchByScope { name = "raz", scope = ["RefClass"] } +query: codemarkup.search.SearchByScope { name = "raz", scope = ["RefClass"], language = Hack, searchcase = Sensitive } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_super.out b/glean/lang/codemarkup/tests/hack/search/search_by_scope_super.out index cbfcf16a5..6be704aaa 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_super.out +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_super.out @@ -20,9 +20,16 @@ } } }, + "kind": 15, "language": 5, + "location": { + "file": { "key": "www/SuperClass.php" }, + "location": { "span": { "length": 20, "start": 102 } }, + "name": "BAZ" + }, "name": "BAZ", - "scope": [ "SuperClass" ] + "scope": [ "SuperClass" ], + "searchcase": 0 } } ] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_super.perf b/glean/lang/codemarkup/tests/hack/search/search_by_scope_super.perf index 1ec44fac3..55da32d78 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_super.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_super.perf @@ -1,11 +1,11 @@ { "@generated": null, "facts_searched": { - "hack.ClassDeclaration.6": 1, - "hack.ClassDefinition.6": 1, - "hack.Name.6": 3, + "hack.DeclarationSpan.6": 1, + "hack.Name.6": 2, "hack.NamespaceQName.6": 1, - "hack.QName.6": 3 + "hack.QName.6": 5, + "hack.SearchClassConstByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_super.query b/glean/lang/codemarkup/tests/hack/search/search_by_scope_super.query index 54d475543..527102235 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_super.query +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_super.query @@ -1,3 +1,3 @@ -query: search.code.SearchByScope { name = "BAZ", scope = ["SuperClass"] } +query: codemarkup.search.SearchByScope { name = "BAZ", scope = ["SuperClass"], language = Hack, searchcase = Sensitive } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_trait.out b/glean/lang/codemarkup/tests/hack/search/search_by_scope_trait.out index b9e3a734d..0dd9afa06 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_trait.out +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_trait.out @@ -20,9 +20,16 @@ } } }, + "kind": 7, "language": 5, + "location": { + "file": { "key": "www/SourceTrait.php" }, + "location": { "span": { "length": 58, "start": 102 } }, + "name": "quux" + }, "name": "quux", - "scope": [ "SourceTrait" ] + "scope": [ "SourceTrait" ], + "searchcase": 0 } } ] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_trait.perf b/glean/lang/codemarkup/tests/hack/search/search_by_scope_trait.perf index 4427b7d6c..9a574d703 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_trait.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_trait.perf @@ -1,11 +1,11 @@ { "@generated": null, "facts_searched": { - "hack.Name.6": 3, + "hack.DeclarationSpan.6": 1, + "hack.Name.6": 2, "hack.NamespaceQName.6": 1, - "hack.QName.6": 3, - "hack.TraitDeclaration.6": 1, - "hack.TraitDefinition.6": 1 + "hack.QName.6": 5, + "hack.SearchMethodByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_trait.query b/glean/lang/codemarkup/tests/hack/search/search_by_scope_trait.query index 826783045..cfcdc4c78 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_trait.query +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_trait.query @@ -1,3 +1,3 @@ -query: search.code.SearchByScope { name = "quux", scope = ["SourceTrait"] } +query: codemarkup.search.SearchByScope { name = "quux", scope = ["SourceTrait"], searchcase = Sensitive, language = Hack } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_by_scope_type_const.perf b/glean/lang/codemarkup/tests/hack/search/search_by_scope_type_const.perf index 584af3c3b..4e9f23602 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_by_scope_type_const.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_by_scope_type_const.perf @@ -1,5 +1 @@ -{ - "@generated": null, - "facts_searched": { "hack.Name.6": 3, "hack.NamespaceQName.6": 1 }, - "full_scans": [ ] -} \ No newline at end of file +{ "@generated": null, "facts_searched": { }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context.out b/glean/lang/codemarkup/tests/hack/search/search_in_context.out deleted file mode 100644 index 09c0e1473..000000000 --- a/glean/lang/codemarkup/tests/hack/search/search_in_context.out +++ /dev/null @@ -1,29 +0,0 @@ -[ - "@generated", - { - "key": { - "contextName": { "key": "SourceClass" }, - "contextNamespace": { "key": { "name": { "key": "NS" } } }, - "decl": { - "classConst": { - "key": { - "container": { - "class_": { - "key": { - "name": { - "key": { - "name": { "key": "SourceClass" }, - "namespace_": { "key": { "name": { "key": "NS" } } } - } - } - } - } - }, - "name": { "key": "BAZ" } - } - } - }, - "name": { "key": "BAZ" } - } - } -] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context.perf b/glean/lang/codemarkup/tests/hack/search/search_in_context.perf deleted file mode 100644 index 186cb96c3..000000000 --- a/glean/lang/codemarkup/tests/hack/search/search_in_context.perf +++ /dev/null @@ -1,10 +0,0 @@ -{ - "@generated": null, - "facts_searched": { - "hack.ClassDeclaration.6": 1, - "hack.ClassDefinition.6": 1, - "hack.Name.6": 2, - "hack.QName.6": 3 - }, - "full_scans": [ ] -} \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context.query b/glean/lang/codemarkup/tests/hack/search/search_in_context.query deleted file mode 100644 index 8bfe6c6c5..000000000 --- a/glean/lang/codemarkup/tests/hack/search/search_in_context.query +++ /dev/null @@ -1,3 +0,0 @@ -query: search.hack.SearchInContext { name = "BAZ", contextName = "SourceClass" } -transform: [normord, []] -perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context_const.out b/glean/lang/codemarkup/tests/hack/search/search_in_context_const.out index 09c0e1473..c7ae735b9 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_in_context_const.out +++ b/glean/lang/codemarkup/tests/hack/search/search_in_context_const.out @@ -1,29 +1 @@ -[ - "@generated", - { - "key": { - "contextName": { "key": "SourceClass" }, - "contextNamespace": { "key": { "name": { "key": "NS" } } }, - "decl": { - "classConst": { - "key": { - "container": { - "class_": { - "key": { - "name": { - "key": { - "name": { "key": "SourceClass" }, - "namespace_": { "key": { "name": { "key": "NS" } } } - } - } - } - } - }, - "name": { "key": "BAZ" } - } - } - }, - "name": { "key": "BAZ" } - } - } -] \ No newline at end of file +[ "@generated" ] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context_const.perf b/glean/lang/codemarkup/tests/hack/search/search_in_context_const.perf index 186cb96c3..9710aa9ac 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_in_context_const.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_in_context_const.perf @@ -1,10 +1,5 @@ { "@generated": null, - "facts_searched": { - "hack.ClassDeclaration.6": 1, - "hack.ClassDefinition.6": 1, - "hack.Name.6": 2, - "hack.QName.6": 3 - }, + "facts_searched": { "hack.Name.6": 2, "hack.NamespaceQName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context_const.query b/glean/lang/codemarkup/tests/hack/search/search_in_context_const.query index 8bfe6c6c5..c54a2330d 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_in_context_const.query +++ b/glean/lang/codemarkup/tests/hack/search/search_in_context_const.query @@ -1,3 +1,3 @@ -query: search.hack.SearchInContext { name = "BAZ", contextName = "SourceClass" } +query: codemarkup.search.SearchByScope { name = "BAZ", scope = ["SourceClass"], language = Hack, searchcase = Sensitive } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context_const_full.out b/glean/lang/codemarkup/tests/hack/search/search_in_context_const_full.out new file mode 100644 index 000000000..32a1ab67c --- /dev/null +++ b/glean/lang/codemarkup/tests/hack/search/search_in_context_const_full.out @@ -0,0 +1,40 @@ +[ + "@generated", + { + "key": { + "entity": { + "hack": { + "decl": { + "classConst": { + "key": { + "container": { + "class_": { + "key": { + "name": { + "key": { + "name": { "key": "SourceClass" }, + "namespace_": { "key": { "name": { "key": "NS" } } } + } + } + } + } + }, + "name": { "key": "BAZ" } + } + } + } + } + }, + "kind": 15, + "language": 5, + "location": { + "file": { "key": "www/SourceClass.php" }, + "location": { "span": { "length": 18, "start": 339 } }, + "name": "BAZ" + }, + "name": "BAZ", + "scope": [ "NS", "SourceClass" ], + "searchcase": 0 + } + } +] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context_const_full.perf b/glean/lang/codemarkup/tests/hack/search/search_in_context_const_full.perf new file mode 100644 index 000000000..447ff4267 --- /dev/null +++ b/glean/lang/codemarkup/tests/hack/search/search_in_context_const_full.perf @@ -0,0 +1,11 @@ +{ + "@generated": null, + "facts_searched": { + "hack.DeclarationSpan.6": 1, + "hack.Name.6": 3, + "hack.NamespaceQName.6": 2, + "hack.QName.6": 5, + "hack.SearchClassConstByName.6": 1 + }, + "full_scans": [ ] +} \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context_const_full.query b/glean/lang/codemarkup/tests/hack/search/search_in_context_const_full.query new file mode 100644 index 000000000..a24656a57 --- /dev/null +++ b/glean/lang/codemarkup/tests/hack/search/search_in_context_const_full.query @@ -0,0 +1,3 @@ +query: codemarkup.search.SearchByScope { name = "BAZ", scope = ["NS","SourceClass"], language = Hack, searchcase = Sensitive } +transform: [normord, []] +perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context_enum.out b/glean/lang/codemarkup/tests/hack/search/search_in_context_enum.out index 250651d1c..5ee540edd 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_in_context_enum.out +++ b/glean/lang/codemarkup/tests/hack/search/search_in_context_enum.out @@ -2,18 +2,32 @@ "@generated", { "key": { - "contextName": { "key": "Position" }, - "decl": { - "enumerator": { - "key": { - "enumeration": { - "key": { "name": { "key": { "name": { "key": "Position" } } } } - }, - "name": { "key": "Right" } + "entity": { + "hack": { + "decl": { + "enumerator": { + "key": { + "enumeration": { + "key": { + "name": { "key": { "name": { "key": "Position" } } } + } + }, + "name": { "key": "Right" } + } + } } } }, - "name": { "key": "Right" } + "kind": 9, + "language": 5, + "location": { + "file": { "key": "www/TopLevel.php" }, + "location": { "span": { "length": 5, "start": 221 } }, + "name": "Right" + }, + "name": "Right", + "scope": [ "Position" ], + "searchcase": 0 } } ] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context_enum.perf b/glean/lang/codemarkup/tests/hack/search/search_in_context_enum.perf index 7e03b1c21..d769aeab1 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_in_context_enum.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_in_context_enum.perf @@ -1,10 +1,11 @@ { "@generated": null, "facts_searched": { - "hack.EnumDeclaration.6": 1, - "hack.Enumerator.6": 1, + "hack.DeclarationSpan.6": 1, "hack.Name.6": 2, - "hack.QName.6": 3 + "hack.NamespaceQName.6": 1, + "hack.QName.6": 5, + "hack.SearchEnumeratorByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context_enum.query b/glean/lang/codemarkup/tests/hack/search/search_in_context_enum.query index 0d5bc2de1..bb21ec98e 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_in_context_enum.query +++ b/glean/lang/codemarkup/tests/hack/search/search_in_context_enum.query @@ -1,3 +1,3 @@ -query: search.hack.SearchInContext { name = "Right", contextName = "Position" } +query: codemarkup.search.SearchByScope { name = "Right", scope = ["Position"], language = Hack, searchcase = Sensitive } transform: [normord, []] perf: true diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context_interface.out b/glean/lang/codemarkup/tests/hack/search/search_in_context_interface.out index 94599a5eb..36ae2cb72 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_in_context_interface.out +++ b/glean/lang/codemarkup/tests/hack/search/search_in_context_interface.out @@ -2,22 +2,36 @@ "@generated", { "key": { - "contextName": { "key": "SourceInterface" }, - "decl": { - "method": { - "key": { - "container": { - "interface_": { - "key": { - "name": { "key": { "name": { "key": "SourceInterface" } } } - } + "entity": { + "hack": { + "decl": { + "method": { + "key": { + "container": { + "interface_": { + "key": { + "name": { + "key": { "name": { "key": "SourceInterface" } } + } + } + } + }, + "name": { "key": "foo" } } - }, - "name": { "key": "foo" } + } } } }, - "name": { "key": "foo" } + "kind": 7, + "language": 5, + "location": { + "file": { "key": "www/SourceInterface.php" }, + "location": { "span": { "length": 34, "start": 139 } }, + "name": "foo" + }, + "name": "foo", + "scope": [ "SourceInterface" ], + "searchcase": 0 } } ] \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context_interface.perf b/glean/lang/codemarkup/tests/hack/search/search_in_context_interface.perf index b15042643..9a574d703 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_in_context_interface.perf +++ b/glean/lang/codemarkup/tests/hack/search/search_in_context_interface.perf @@ -1,10 +1,11 @@ { "@generated": null, "facts_searched": { - "hack.InterfaceDeclaration.6": 1, - "hack.InterfaceDefinition.6": 1, + "hack.DeclarationSpan.6": 1, "hack.Name.6": 2, - "hack.QName.6": 3 + "hack.NamespaceQName.6": 1, + "hack.QName.6": 5, + "hack.SearchMethodByName.6": 1 }, "full_scans": [ ] } \ No newline at end of file diff --git a/glean/lang/codemarkup/tests/hack/search/search_in_context_interface.query b/glean/lang/codemarkup/tests/hack/search/search_in_context_interface.query index f84c0fc3f..4fba68df9 100644 --- a/glean/lang/codemarkup/tests/hack/search/search_in_context_interface.query +++ b/glean/lang/codemarkup/tests/hack/search/search_in_context_interface.query @@ -1,3 +1,3 @@ -query: search.hack.SearchInContext { name = "foo", contextName = "SourceInterface" } +query: codemarkup.search.SearchByScope { name = "foo", scope = ["SourceInterface"], language = Hack, searchcase = Sensitive } transform: [normord, []] perf: true diff --git a/glean/schema/cpp/schema.h b/glean/schema/cpp/schema.h index 4a3b40f17..2fd3e25af 100644 --- a/glean/schema/cpp/schema.h +++ b/glean/schema/cpp/schema.h @@ -1457,8 +1457,6 @@ struct SearchInContainerOrEnum; struct SearchInContainerOrEnumNoProperty; -struct SearchInContext; - struct SearchInEnum; struct SearchInNamespace; @@ -2607,6 +2605,8 @@ struct CxxNameLowerCase; struct FlowNameLowerCase; +struct HackNameLowerCase; + struct PythonNameLowerCase; } // namespace Code @@ -3803,17 +3803,19 @@ struct GraphQLSearchByLowerCaseName; struct GraphQLSearchByName; -struct HackSearchByLowerCaseName; +struct HackSearchByLowerCaseNameAndKind; + +struct HackSearchByLowerCaseScopeAndKind; -struct HackSearchByLowerCaseScope; +struct HackSearchByNameAndKind; -struct HackSearchByName; +struct HackSearchByNameKindWithNamespace; -struct HackSearchByNameWithName; +struct HackSearchByNameKindWithQName; -struct HackSearchByScope; +struct HackSearchByScopeAndKind; -struct HackSearchByScopeWithName; +struct HackSearchByScopeWithNameKinds; struct HsSearchByLowerCaseName; @@ -13518,16 +13520,6 @@ struct SearchInContainerOrEnumNoProperty : Predicate, Fact, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { - static const char* GLEAN_name() { - return "search.hack.SearchInContext"; - } - - static constexpr size_t GLEAN_version() { - return 7; - } -}; // struct SearchInContext - struct SearchInEnum : Predicate, Fact, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchInEnum"; @@ -21986,6 +21978,16 @@ struct FlowNameLowerCase : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, std::string>> { + static const char* GLEAN_name() { + return "search.code.HackNameLowerCase"; + } + + static constexpr size_t GLEAN_version() { + return 16; + } +}; // struct HackNameLowerCase + struct PythonNameLowerCase : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, std::string>> { static const char* GLEAN_name() { return "search.code.PythonNameLowerCase"; @@ -27560,65 +27562,75 @@ struct GraphQLSearchByName : Predicate> { +struct HackSearchByLowerCaseNameAndKind : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { + static const char* GLEAN_name() { + return "search.code.HackSearchByLowerCaseNameAndKind"; + } + + static constexpr size_t GLEAN_version() { + return 16; + } +}; // struct HackSearchByLowerCaseNameAndKind + +struct HackSearchByLowerCaseScopeAndKind : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { - return "search.code.HackSearchByLowerCaseName"; + return "search.code.HackSearchByLowerCaseScopeAndKind"; } static constexpr size_t GLEAN_version() { return 16; } -}; // struct HackSearchByLowerCaseName +}; // struct HackSearchByLowerCaseScopeAndKind -struct HackSearchByLowerCaseScope : Predicate, facebook::glean::cpp::schema::Code::Entity>> { +struct HackSearchByNameAndKind : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { - return "search.code.HackSearchByLowerCaseScope"; + return "search.code.HackSearchByNameAndKind"; } static constexpr size_t GLEAN_version() { return 16; } -}; // struct HackSearchByLowerCaseScope +}; // struct HackSearchByNameAndKind -struct HackSearchByName : Predicate> { +struct HackSearchByNameKindWithNamespace : Predicate>, Alt<1, Fact>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { - return "search.code.HackSearchByName"; + return "search.code.HackSearchByNameKindWithNamespace"; } static constexpr size_t GLEAN_version() { return 16; } -}; // struct HackSearchByName +}; // struct HackSearchByNameKindWithNamespace -struct HackSearchByNameWithName : Predicate, facebook::glean::cpp::schema::Code::Entity>> { +struct HackSearchByNameKindWithQName : Predicate, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { - return "search.code.HackSearchByNameWithName"; + return "search.code.HackSearchByNameKindWithQName"; } static constexpr size_t GLEAN_version() { return 16; } -}; // struct HackSearchByNameWithName +}; // struct HackSearchByNameKindWithQName -struct HackSearchByScope : Predicate, facebook::glean::cpp::schema::Code::Entity>> { +struct HackSearchByScopeAndKind : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { - return "search.code.HackSearchByScope"; + return "search.code.HackSearchByScopeAndKind"; } static constexpr size_t GLEAN_version() { return 16; } -}; // struct HackSearchByScope +}; // struct HackSearchByScopeAndKind -struct HackSearchByScopeWithName : Predicate, bool, std::vector, facebook::glean::cpp::schema::Code::Entity>> { +struct HackSearchByScopeWithNameKinds : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { - return "search.code.HackSearchByScopeWithName"; + return "search.code.HackSearchByScopeWithNameKinds"; } static constexpr size_t GLEAN_version() { return 16; } -}; // struct HackSearchByScopeWithName +}; // struct HackSearchByScopeWithNameKinds struct HsSearchByLowerCaseName : Predicate> { static const char* GLEAN_name() { @@ -29777,7 +29789,7 @@ struct ArgumentValue : Predicate, Alt<1, std: struct SCHEMA { template struct index; - static constexpr size_t count = 1327; + static constexpr size_t count = 1328; template struct predicate; }; @@ -30286,399 +30298,399 @@ template<> struct SCHEMA::index struct SCHEMA::index { static constexpr size_t value = 502; }; template<> struct SCHEMA::index { static constexpr size_t value = 503; }; template<> struct SCHEMA::index { static constexpr size_t value = 504; }; -template<> struct SCHEMA::index { static constexpr size_t value = 505; }; -template<> struct SCHEMA::index { static constexpr size_t value = 506; }; -template<> struct SCHEMA::index { static constexpr size_t value = 507; }; -template<> struct SCHEMA::index { static constexpr size_t value = 508; }; -template<> struct SCHEMA::index { static constexpr size_t value = 509; }; -template<> struct SCHEMA::index { static constexpr size_t value = 510; }; -template<> struct SCHEMA::index { static constexpr size_t value = 511; }; -template<> struct SCHEMA::index { static constexpr size_t value = 512; }; -template<> struct SCHEMA::index { static constexpr size_t value = 513; }; -template<> struct SCHEMA::index { static constexpr size_t value = 514; }; -template<> struct SCHEMA::index { static constexpr size_t value = 515; }; -template<> struct SCHEMA::index { static constexpr size_t value = 516; }; -template<> struct SCHEMA::index { static constexpr size_t value = 517; }; -template<> struct SCHEMA::index { static constexpr size_t value = 518; }; -template<> struct SCHEMA::index { static constexpr size_t value = 519; }; -template<> struct SCHEMA::index { static constexpr size_t value = 520; }; -template<> struct SCHEMA::index { static constexpr size_t value = 521; }; -template<> struct SCHEMA::index { static constexpr size_t value = 522; }; -template<> struct SCHEMA::index { static constexpr size_t value = 523; }; -template<> struct SCHEMA::index { static constexpr size_t value = 524; }; -template<> struct SCHEMA::index { static constexpr size_t value = 525; }; -template<> struct SCHEMA::index { static constexpr size_t value = 526; }; -template<> struct SCHEMA::index { static constexpr size_t value = 527; }; -template<> struct SCHEMA::index { static constexpr size_t value = 528; }; -template<> struct SCHEMA::index { static constexpr size_t value = 529; }; -template<> struct SCHEMA::index { static constexpr size_t value = 530; }; -template<> struct SCHEMA::index { static constexpr size_t value = 531; }; -template<> struct SCHEMA::index { static constexpr size_t value = 532; }; -template<> struct SCHEMA::index { static constexpr size_t value = 533; }; -template<> struct SCHEMA::index { static constexpr size_t value = 534; }; -template<> struct SCHEMA::index { static constexpr size_t value = 535; }; -template<> struct SCHEMA::index { static constexpr size_t value = 536; }; -template<> struct SCHEMA::index { static constexpr size_t value = 537; }; -template<> struct SCHEMA::index { static constexpr size_t value = 538; }; -template<> struct SCHEMA::index { static constexpr size_t value = 539; }; -template<> struct SCHEMA::index { static constexpr size_t value = 540; }; -template<> struct SCHEMA::index { static constexpr size_t value = 541; }; -template<> struct SCHEMA::index { static constexpr size_t value = 542; }; -template<> struct SCHEMA::index { static constexpr size_t value = 543; }; -template<> struct SCHEMA::index { static constexpr size_t value = 544; }; -template<> struct SCHEMA::index { static constexpr size_t value = 545; }; -template<> struct SCHEMA::index { static constexpr size_t value = 546; }; -template<> struct SCHEMA::index { static constexpr size_t value = 547; }; -template<> struct SCHEMA::index { static constexpr size_t value = 548; }; -template<> struct SCHEMA::index { static constexpr size_t value = 549; }; -template<> struct SCHEMA::index { static constexpr size_t value = 550; }; -template<> struct SCHEMA::index { static constexpr size_t value = 551; }; -template<> struct SCHEMA::index { static constexpr size_t value = 552; }; -template<> struct SCHEMA::index { static constexpr size_t value = 553; }; -template<> struct SCHEMA::index { static constexpr size_t value = 554; }; -template<> struct SCHEMA::index { static constexpr size_t value = 555; }; -template<> struct SCHEMA::index { static constexpr size_t value = 556; }; -template<> struct SCHEMA::index { static constexpr size_t value = 557; }; -template<> struct SCHEMA::index { static constexpr size_t value = 558; }; -template<> struct SCHEMA::index { static constexpr size_t value = 559; }; -template<> struct SCHEMA::index { static constexpr size_t value = 560; }; -template<> struct SCHEMA::index { static constexpr size_t value = 561; }; -template<> struct SCHEMA::index { static constexpr size_t value = 562; }; -template<> struct SCHEMA::index { static constexpr size_t value = 563; }; -template<> struct SCHEMA::index { static constexpr size_t value = 564; }; -template<> struct SCHEMA::index { static constexpr size_t value = 565; }; -template<> struct SCHEMA::index { static constexpr size_t value = 566; }; -template<> struct SCHEMA::index { static constexpr size_t value = 567; }; -template<> struct SCHEMA::index { static constexpr size_t value = 568; }; -template<> struct SCHEMA::index { static constexpr size_t value = 569; }; -template<> struct SCHEMA::index { static constexpr size_t value = 570; }; -template<> struct SCHEMA::index { static constexpr size_t value = 571; }; -template<> struct SCHEMA::index { static constexpr size_t value = 572; }; -template<> struct SCHEMA::index { static constexpr size_t value = 573; }; -template<> struct SCHEMA::index { static constexpr size_t value = 574; }; -template<> struct SCHEMA::index { static constexpr size_t value = 575; }; -template<> struct SCHEMA::index { static constexpr size_t value = 576; }; -template<> struct SCHEMA::index { static constexpr size_t value = 577; }; -template<> struct SCHEMA::index { static constexpr size_t value = 578; }; -template<> struct SCHEMA::index { static constexpr size_t value = 579; }; -template<> struct SCHEMA::index { static constexpr size_t value = 580; }; -template<> struct SCHEMA::index { static constexpr size_t value = 581; }; -template<> struct SCHEMA::index { static constexpr size_t value = 582; }; -template<> struct SCHEMA::index { static constexpr size_t value = 583; }; -template<> struct SCHEMA::index { static constexpr size_t value = 584; }; -template<> struct SCHEMA::index { static constexpr size_t value = 585; }; -template<> struct SCHEMA::index { static constexpr size_t value = 586; }; -template<> struct SCHEMA::index { static constexpr size_t value = 587; }; -template<> struct SCHEMA::index { static constexpr size_t value = 588; }; -template<> struct SCHEMA::index { static constexpr size_t value = 589; }; -template<> struct SCHEMA::index { static constexpr size_t value = 590; }; -template<> struct SCHEMA::index { static constexpr size_t value = 591; }; -template<> struct SCHEMA::index { static constexpr size_t value = 592; }; -template<> struct SCHEMA::index { static constexpr size_t value = 593; }; -template<> struct SCHEMA::index { static constexpr size_t value = 594; }; -template<> struct SCHEMA::index { static constexpr size_t value = 595; }; -template<> struct SCHEMA::index { static constexpr size_t value = 596; }; -template<> struct SCHEMA::index { static constexpr size_t value = 597; }; -template<> struct SCHEMA::index { static constexpr size_t value = 598; }; -template<> struct SCHEMA::index { static constexpr size_t value = 599; }; -template<> struct SCHEMA::index { static constexpr size_t value = 600; }; -template<> struct SCHEMA::index { static constexpr size_t value = 601; }; -template<> struct SCHEMA::index { static constexpr size_t value = 602; }; -template<> struct SCHEMA::index { static constexpr size_t value = 603; }; -template<> struct SCHEMA::index { static constexpr size_t value = 604; }; -template<> struct SCHEMA::index { static constexpr size_t value = 605; }; -template<> struct SCHEMA::index { static constexpr size_t value = 606; }; -template<> struct SCHEMA::index { static constexpr size_t value = 607; }; -template<> struct SCHEMA::index { static constexpr size_t value = 608; }; -template<> struct SCHEMA::index { static constexpr size_t value = 609; }; -template<> struct SCHEMA::index { static constexpr size_t value = 610; }; -template<> struct SCHEMA::index { static constexpr size_t value = 611; }; -template<> struct SCHEMA::index { static constexpr size_t value = 612; }; -template<> struct SCHEMA::index { static constexpr size_t value = 613; }; -template<> struct SCHEMA::index { static constexpr size_t value = 614; }; -template<> struct SCHEMA::index { static constexpr size_t value = 615; }; -template<> struct SCHEMA::index { static constexpr size_t value = 616; }; -template<> struct SCHEMA::index { static constexpr size_t value = 617; }; -template<> struct SCHEMA::index { static constexpr size_t value = 618; }; -template<> struct SCHEMA::index { static constexpr size_t value = 619; }; -template<> struct SCHEMA::index { static constexpr size_t value = 620; }; -template<> struct SCHEMA::index { static constexpr size_t value = 621; }; -template<> struct SCHEMA::index { static constexpr size_t value = 622; }; -template<> struct SCHEMA::index { static constexpr size_t value = 623; }; -template<> struct SCHEMA::index { static constexpr size_t value = 624; }; -template<> struct SCHEMA::index { static constexpr size_t value = 625; }; -template<> struct SCHEMA::index { static constexpr size_t value = 626; }; -template<> struct SCHEMA::index { static constexpr size_t value = 627; }; -template<> struct SCHEMA::index { static constexpr size_t value = 628; }; -template<> struct SCHEMA::index { static constexpr size_t value = 629; }; -template<> struct SCHEMA::index { static constexpr size_t value = 630; }; -template<> struct SCHEMA::index { static constexpr size_t value = 631; }; -template<> struct SCHEMA::index { static constexpr size_t value = 632; }; -template<> struct SCHEMA::index { static constexpr size_t value = 633; }; -template<> struct SCHEMA::index { static constexpr size_t value = 634; }; -template<> struct SCHEMA::index { static constexpr size_t value = 635; }; -template<> struct SCHEMA::index { static constexpr size_t value = 636; }; -template<> struct SCHEMA::index { static constexpr size_t value = 637; }; -template<> struct SCHEMA::index { static constexpr size_t value = 638; }; -template<> struct SCHEMA::index { static constexpr size_t value = 639; }; -template<> struct SCHEMA::index { static constexpr size_t value = 640; }; -template<> struct SCHEMA::index { static constexpr size_t value = 641; }; -template<> struct SCHEMA::index { static constexpr size_t value = 642; }; -template<> struct SCHEMA::index { static constexpr size_t value = 643; }; -template<> struct SCHEMA::index { static constexpr size_t value = 644; }; -template<> struct SCHEMA::index { static constexpr size_t value = 645; }; -template<> struct SCHEMA::index { static constexpr size_t value = 646; }; -template<> struct SCHEMA::index { static constexpr size_t value = 647; }; -template<> struct SCHEMA::index { static constexpr size_t value = 648; }; -template<> struct SCHEMA::index { static constexpr size_t value = 649; }; -template<> struct SCHEMA::index { static constexpr size_t value = 650; }; -template<> struct SCHEMA::index { static constexpr size_t value = 651; }; -template<> struct SCHEMA::index { static constexpr size_t value = 652; }; -template<> struct SCHEMA::index { static constexpr size_t value = 653; }; -template<> struct SCHEMA::index { static constexpr size_t value = 654; }; -template<> struct SCHEMA::index { static constexpr size_t value = 655; }; -template<> struct SCHEMA::index { static constexpr size_t value = 656; }; -template<> struct SCHEMA::index { static constexpr size_t value = 657; }; -template<> struct SCHEMA::index { static constexpr size_t value = 658; }; -template<> struct SCHEMA::index { static constexpr size_t value = 659; }; -template<> struct SCHEMA::index { static constexpr size_t value = 660; }; -template<> struct SCHEMA::index { static constexpr size_t value = 661; }; -template<> struct SCHEMA::index { static constexpr size_t value = 662; }; -template<> struct SCHEMA::index { static constexpr size_t value = 663; }; -template<> struct SCHEMA::index { static constexpr size_t value = 664; }; -template<> struct SCHEMA::index { static constexpr size_t value = 665; }; -template<> struct SCHEMA::index { static constexpr size_t value = 666; }; -template<> struct SCHEMA::index { static constexpr size_t value = 667; }; -template<> struct SCHEMA::index { static constexpr size_t value = 668; }; -template<> struct SCHEMA::index { static constexpr size_t value = 669; }; -template<> struct SCHEMA::index { static constexpr size_t value = 670; }; -template<> struct SCHEMA::index { static constexpr size_t value = 671; }; -template<> struct SCHEMA::index { static constexpr size_t value = 672; }; -template<> struct SCHEMA::index { static constexpr size_t value = 673; }; -template<> struct SCHEMA::index { static constexpr size_t value = 674; }; -template<> struct SCHEMA::index { static constexpr size_t value = 675; }; -template<> struct SCHEMA::index { static constexpr size_t value = 676; }; -template<> struct SCHEMA::index { static constexpr size_t value = 677; }; -template<> struct SCHEMA::index { static constexpr size_t value = 678; }; -template<> struct SCHEMA::index { static constexpr size_t value = 679; }; -template<> struct SCHEMA::index { static constexpr size_t value = 680; }; -template<> struct SCHEMA::index { static constexpr size_t value = 681; }; -template<> struct SCHEMA::index { static constexpr size_t value = 682; }; -template<> struct SCHEMA::index { static constexpr size_t value = 683; }; -template<> struct SCHEMA::index { static constexpr size_t value = 684; }; -template<> struct SCHEMA::index { static constexpr size_t value = 685; }; -template<> struct SCHEMA::index { static constexpr size_t value = 686; }; -template<> struct SCHEMA::index { static constexpr size_t value = 687; }; -template<> struct SCHEMA::index { static constexpr size_t value = 688; }; -template<> struct SCHEMA::index { static constexpr size_t value = 689; }; -template<> struct SCHEMA::index { static constexpr size_t value = 690; }; -template<> struct SCHEMA::index { static constexpr size_t value = 691; }; -template<> struct SCHEMA::index { static constexpr size_t value = 692; }; -template<> struct SCHEMA::index { static constexpr size_t value = 693; }; -template<> struct SCHEMA::index { static constexpr size_t value = 694; }; -template<> struct SCHEMA::index { static constexpr size_t value = 695; }; -template<> struct SCHEMA::index { static constexpr size_t value = 696; }; -template<> struct SCHEMA::index { static constexpr size_t value = 697; }; -template<> struct SCHEMA::index { static constexpr size_t value = 698; }; -template<> struct SCHEMA::index { static constexpr size_t value = 699; }; -template<> struct SCHEMA::index { static constexpr size_t value = 700; }; -template<> struct SCHEMA::index { static constexpr size_t value = 701; }; -template<> struct SCHEMA::index { static constexpr size_t value = 702; }; -template<> struct SCHEMA::index { static constexpr size_t value = 703; }; -template<> struct SCHEMA::index { static constexpr size_t value = 704; }; -template<> struct SCHEMA::index { static constexpr size_t value = 705; }; -template<> struct SCHEMA::index { static constexpr size_t value = 706; }; -template<> struct SCHEMA::index { static constexpr size_t value = 707; }; -template<> struct SCHEMA::index { static constexpr size_t value = 708; }; -template<> struct SCHEMA::index { static constexpr size_t value = 709; }; -template<> struct SCHEMA::index { static constexpr size_t value = 710; }; -template<> struct SCHEMA::index { static constexpr size_t value = 711; }; -template<> struct SCHEMA::index { static constexpr size_t value = 712; }; -template<> struct SCHEMA::index { static constexpr size_t value = 713; }; -template<> struct SCHEMA::index { static constexpr size_t value = 714; }; -template<> struct SCHEMA::index { static constexpr size_t value = 715; }; -template<> struct SCHEMA::index { static constexpr size_t value = 716; }; -template<> struct SCHEMA::index { static constexpr size_t value = 717; }; -template<> struct SCHEMA::index { static constexpr size_t value = 718; }; -template<> struct SCHEMA::index { static constexpr size_t value = 719; }; -template<> struct SCHEMA::index { static constexpr size_t value = 720; }; -template<> struct SCHEMA::index { static constexpr size_t value = 721; }; -template<> struct SCHEMA::index { static constexpr size_t value = 722; }; -template<> struct SCHEMA::index { static constexpr size_t value = 723; }; -template<> struct SCHEMA::index { static constexpr size_t value = 724; }; -template<> struct SCHEMA::index { static constexpr size_t value = 725; }; -template<> struct SCHEMA::index { static constexpr size_t value = 726; }; -template<> struct SCHEMA::index { static constexpr size_t value = 727; }; -template<> struct SCHEMA::index { static constexpr size_t value = 728; }; -template<> struct SCHEMA::index { static constexpr size_t value = 729; }; -template<> struct SCHEMA::index { static constexpr size_t value = 730; }; -template<> struct SCHEMA::index { static constexpr size_t value = 731; }; -template<> struct SCHEMA::index { static constexpr size_t value = 732; }; -template<> struct SCHEMA::index { static constexpr size_t value = 733; }; -template<> struct SCHEMA::index { static constexpr size_t value = 734; }; -template<> struct SCHEMA::index { static constexpr size_t value = 735; }; -template<> struct SCHEMA::index { static constexpr size_t value = 736; }; -template<> struct SCHEMA::index { static constexpr size_t value = 737; }; -template<> struct SCHEMA::index { static constexpr size_t value = 738; }; -template<> struct SCHEMA::index { static constexpr size_t value = 739; }; -template<> struct SCHEMA::index { static constexpr size_t value = 740; }; -template<> struct SCHEMA::index { static constexpr size_t value = 741; }; -template<> struct SCHEMA::index { static constexpr size_t value = 742; }; -template<> struct SCHEMA::index { static constexpr size_t value = 743; }; -template<> struct SCHEMA::index { static constexpr size_t value = 744; }; -template<> struct SCHEMA::index { static constexpr size_t value = 745; }; -template<> struct SCHEMA::index { static constexpr size_t value = 746; }; -template<> struct SCHEMA::index { static constexpr size_t value = 747; }; -template<> struct SCHEMA::index { static constexpr size_t value = 748; }; -template<> struct SCHEMA::index { static constexpr size_t value = 749; }; -template<> struct SCHEMA::index { static constexpr size_t value = 750; }; -template<> struct SCHEMA::index { static constexpr size_t value = 751; }; -template<> struct SCHEMA::index { static constexpr size_t value = 752; }; -template<> struct SCHEMA::index { static constexpr size_t value = 753; }; -template<> struct SCHEMA::index { static constexpr size_t value = 754; }; -template<> struct SCHEMA::index { static constexpr size_t value = 755; }; -template<> struct SCHEMA::index { static constexpr size_t value = 756; }; -template<> struct SCHEMA::index { static constexpr size_t value = 757; }; -template<> struct SCHEMA::index { static constexpr size_t value = 758; }; -template<> struct SCHEMA::index { static constexpr size_t value = 759; }; -template<> struct SCHEMA::index { static constexpr size_t value = 760; }; -template<> struct SCHEMA::index { static constexpr size_t value = 761; }; -template<> struct SCHEMA::index { static constexpr size_t value = 762; }; -template<> struct SCHEMA::index { static constexpr size_t value = 763; }; -template<> struct SCHEMA::index { static constexpr size_t value = 764; }; -template<> struct SCHEMA::index { static constexpr size_t value = 765; }; -template<> struct SCHEMA::index { static constexpr size_t value = 766; }; -template<> struct SCHEMA::index { static constexpr size_t value = 767; }; -template<> struct SCHEMA::index { static constexpr size_t value = 768; }; -template<> struct SCHEMA::index { static constexpr size_t value = 769; }; -template<> struct SCHEMA::index { static constexpr size_t value = 770; }; -template<> struct SCHEMA::index { static constexpr size_t value = 771; }; -template<> struct SCHEMA::index { static constexpr size_t value = 772; }; -template<> struct SCHEMA::index { static constexpr size_t value = 773; }; -template<> struct SCHEMA::index { static constexpr size_t value = 774; }; -template<> struct SCHEMA::index { static constexpr size_t value = 775; }; -template<> struct SCHEMA::index { static constexpr size_t value = 776; }; -template<> struct SCHEMA::index { static constexpr size_t value = 777; }; -template<> struct SCHEMA::index { static constexpr size_t value = 778; }; -template<> struct SCHEMA::index { static constexpr size_t value = 779; }; -template<> struct SCHEMA::index { static constexpr size_t value = 780; }; -template<> struct SCHEMA::index { static constexpr size_t value = 781; }; -template<> struct SCHEMA::index { static constexpr size_t value = 782; }; -template<> struct SCHEMA::index { static constexpr size_t value = 783; }; -template<> struct SCHEMA::index { static constexpr size_t value = 784; }; -template<> struct SCHEMA::index { static constexpr size_t value = 785; }; -template<> struct SCHEMA::index { static constexpr size_t value = 786; }; -template<> struct SCHEMA::index { static constexpr size_t value = 787; }; -template<> struct SCHEMA::index { static constexpr size_t value = 788; }; -template<> struct SCHEMA::index { static constexpr size_t value = 789; }; -template<> struct SCHEMA::index { static constexpr size_t value = 790; }; -template<> struct SCHEMA::index { static constexpr size_t value = 791; }; -template<> struct SCHEMA::index { static constexpr size_t value = 792; }; -template<> struct SCHEMA::index { static constexpr size_t value = 793; }; -template<> struct SCHEMA::index { static constexpr size_t value = 794; }; -template<> struct SCHEMA::index { static constexpr size_t value = 795; }; -template<> struct SCHEMA::index { static constexpr size_t value = 796; }; -template<> struct SCHEMA::index { static constexpr size_t value = 797; }; -template<> struct SCHEMA::index { static constexpr size_t value = 798; }; -template<> struct SCHEMA::index { static constexpr size_t value = 799; }; -template<> struct SCHEMA::index { static constexpr size_t value = 800; }; -template<> struct SCHEMA::index { static constexpr size_t value = 801; }; -template<> struct SCHEMA::index { static constexpr size_t value = 802; }; -template<> struct SCHEMA::index { static constexpr size_t value = 803; }; -template<> struct SCHEMA::index { static constexpr size_t value = 804; }; -template<> struct SCHEMA::index { static constexpr size_t value = 805; }; -template<> struct SCHEMA::index { static constexpr size_t value = 806; }; -template<> struct SCHEMA::index { static constexpr size_t value = 807; }; -template<> struct SCHEMA::index { static constexpr size_t value = 808; }; -template<> struct SCHEMA::index { static constexpr size_t value = 809; }; -template<> struct SCHEMA::index { static constexpr size_t value = 810; }; -template<> struct SCHEMA::index { static constexpr size_t value = 811; }; -template<> struct SCHEMA::index { static constexpr size_t value = 812; }; -template<> struct SCHEMA::index { static constexpr size_t value = 813; }; -template<> struct SCHEMA::index { static constexpr size_t value = 814; }; -template<> struct SCHEMA::index { static constexpr size_t value = 815; }; -template<> struct SCHEMA::index { static constexpr size_t value = 816; }; -template<> struct SCHEMA::index { static constexpr size_t value = 817; }; -template<> struct SCHEMA::index { static constexpr size_t value = 818; }; -template<> struct SCHEMA::index { static constexpr size_t value = 819; }; -template<> struct SCHEMA::index { static constexpr size_t value = 820; }; -template<> struct SCHEMA::index { static constexpr size_t value = 821; }; -template<> struct SCHEMA::index { static constexpr size_t value = 822; }; -template<> struct SCHEMA::index { static constexpr size_t value = 823; }; -template<> struct SCHEMA::index { static constexpr size_t value = 824; }; -template<> struct SCHEMA::index { static constexpr size_t value = 825; }; -template<> struct SCHEMA::index { static constexpr size_t value = 826; }; -template<> struct SCHEMA::index { static constexpr size_t value = 827; }; -template<> struct SCHEMA::index { static constexpr size_t value = 828; }; -template<> struct SCHEMA::index { static constexpr size_t value = 829; }; -template<> struct SCHEMA::index { static constexpr size_t value = 830; }; -template<> struct SCHEMA::index { static constexpr size_t value = 831; }; -template<> struct SCHEMA::index { static constexpr size_t value = 832; }; -template<> struct SCHEMA::index { static constexpr size_t value = 833; }; -template<> struct SCHEMA::index { static constexpr size_t value = 834; }; -template<> struct SCHEMA::index { static constexpr size_t value = 835; }; -template<> struct SCHEMA::index { static constexpr size_t value = 836; }; -template<> struct SCHEMA::index { static constexpr size_t value = 837; }; -template<> struct SCHEMA::index { static constexpr size_t value = 838; }; -template<> struct SCHEMA::index { static constexpr size_t value = 839; }; -template<> struct SCHEMA::index { static constexpr size_t value = 840; }; -template<> struct SCHEMA::index { static constexpr size_t value = 841; }; -template<> struct SCHEMA::index { static constexpr size_t value = 842; }; -template<> struct SCHEMA::index { static constexpr size_t value = 843; }; -template<> struct SCHEMA::index { static constexpr size_t value = 844; }; -template<> struct SCHEMA::index { static constexpr size_t value = 845; }; -template<> struct SCHEMA::index { static constexpr size_t value = 846; }; -template<> struct SCHEMA::index { static constexpr size_t value = 847; }; -template<> struct SCHEMA::index { static constexpr size_t value = 848; }; -template<> struct SCHEMA::index { static constexpr size_t value = 849; }; -template<> struct SCHEMA::index { static constexpr size_t value = 850; }; -template<> struct SCHEMA::index { static constexpr size_t value = 851; }; -template<> struct SCHEMA::index { static constexpr size_t value = 852; }; -template<> struct SCHEMA::index { static constexpr size_t value = 853; }; -template<> struct SCHEMA::index { static constexpr size_t value = 854; }; -template<> struct SCHEMA::index { static constexpr size_t value = 855; }; -template<> struct SCHEMA::index { static constexpr size_t value = 856; }; -template<> struct SCHEMA::index { static constexpr size_t value = 857; }; -template<> struct SCHEMA::index { static constexpr size_t value = 858; }; -template<> struct SCHEMA::index { static constexpr size_t value = 859; }; -template<> struct SCHEMA::index { static constexpr size_t value = 860; }; -template<> struct SCHEMA::index { static constexpr size_t value = 861; }; -template<> struct SCHEMA::index { static constexpr size_t value = 862; }; -template<> struct SCHEMA::index { static constexpr size_t value = 863; }; -template<> struct SCHEMA::index { static constexpr size_t value = 864; }; -template<> struct SCHEMA::index { static constexpr size_t value = 865; }; -template<> struct SCHEMA::index { static constexpr size_t value = 866; }; -template<> struct SCHEMA::index { static constexpr size_t value = 867; }; -template<> struct SCHEMA::index { static constexpr size_t value = 868; }; -template<> struct SCHEMA::index { static constexpr size_t value = 869; }; -template<> struct SCHEMA::index { static constexpr size_t value = 870; }; -template<> struct SCHEMA::index { static constexpr size_t value = 871; }; -template<> struct SCHEMA::index { static constexpr size_t value = 872; }; -template<> struct SCHEMA::index { static constexpr size_t value = 873; }; -template<> struct SCHEMA::index { static constexpr size_t value = 874; }; -template<> struct SCHEMA::index { static constexpr size_t value = 875; }; -template<> struct SCHEMA::index { static constexpr size_t value = 876; }; -template<> struct SCHEMA::index { static constexpr size_t value = 877; }; -template<> struct SCHEMA::index { static constexpr size_t value = 878; }; -template<> struct SCHEMA::index { static constexpr size_t value = 879; }; -template<> struct SCHEMA::index { static constexpr size_t value = 880; }; -template<> struct SCHEMA::index { static constexpr size_t value = 881; }; -template<> struct SCHEMA::index { static constexpr size_t value = 882; }; -template<> struct SCHEMA::index { static constexpr size_t value = 883; }; -template<> struct SCHEMA::index { static constexpr size_t value = 884; }; -template<> struct SCHEMA::index { static constexpr size_t value = 885; }; -template<> struct SCHEMA::index { static constexpr size_t value = 886; }; -template<> struct SCHEMA::index { static constexpr size_t value = 887; }; -template<> struct SCHEMA::index { static constexpr size_t value = 888; }; -template<> struct SCHEMA::index { static constexpr size_t value = 889; }; -template<> struct SCHEMA::index { static constexpr size_t value = 890; }; -template<> struct SCHEMA::index { static constexpr size_t value = 891; }; -template<> struct SCHEMA::index { static constexpr size_t value = 892; }; -template<> struct SCHEMA::index { static constexpr size_t value = 893; }; -template<> struct SCHEMA::index { static constexpr size_t value = 894; }; -template<> struct SCHEMA::index { static constexpr size_t value = 895; }; -template<> struct SCHEMA::index { static constexpr size_t value = 896; }; -template<> struct SCHEMA::index { static constexpr size_t value = 897; }; +template<> struct SCHEMA::index { static constexpr size_t value = 505; }; +template<> struct SCHEMA::index { static constexpr size_t value = 506; }; +template<> struct SCHEMA::index { static constexpr size_t value = 507; }; +template<> struct SCHEMA::index { static constexpr size_t value = 508; }; +template<> struct SCHEMA::index { static constexpr size_t value = 509; }; +template<> struct SCHEMA::index { static constexpr size_t value = 510; }; +template<> struct SCHEMA::index { static constexpr size_t value = 511; }; +template<> struct SCHEMA::index { static constexpr size_t value = 512; }; +template<> struct SCHEMA::index { static constexpr size_t value = 513; }; +template<> struct SCHEMA::index { static constexpr size_t value = 514; }; +template<> struct SCHEMA::index { static constexpr size_t value = 515; }; +template<> struct SCHEMA::index { static constexpr size_t value = 516; }; +template<> struct SCHEMA::index { static constexpr size_t value = 517; }; +template<> struct SCHEMA::index { static constexpr size_t value = 518; }; +template<> struct SCHEMA::index { static constexpr size_t value = 519; }; +template<> struct SCHEMA::index { static constexpr size_t value = 520; }; +template<> struct SCHEMA::index { static constexpr size_t value = 521; }; +template<> struct SCHEMA::index { static constexpr size_t value = 522; }; +template<> struct SCHEMA::index { static constexpr size_t value = 523; }; +template<> struct SCHEMA::index { static constexpr size_t value = 524; }; +template<> struct SCHEMA::index { static constexpr size_t value = 525; }; +template<> struct SCHEMA::index { static constexpr size_t value = 526; }; +template<> struct SCHEMA::index { static constexpr size_t value = 527; }; +template<> struct SCHEMA::index { static constexpr size_t value = 528; }; +template<> struct SCHEMA::index { static constexpr size_t value = 529; }; +template<> struct SCHEMA::index { static constexpr size_t value = 530; }; +template<> struct SCHEMA::index { static constexpr size_t value = 531; }; +template<> struct SCHEMA::index { static constexpr size_t value = 532; }; +template<> struct SCHEMA::index { static constexpr size_t value = 533; }; +template<> struct SCHEMA::index { static constexpr size_t value = 534; }; +template<> struct SCHEMA::index { static constexpr size_t value = 535; }; +template<> struct SCHEMA::index { static constexpr size_t value = 536; }; +template<> struct SCHEMA::index { static constexpr size_t value = 537; }; +template<> struct SCHEMA::index { static constexpr size_t value = 538; }; +template<> struct SCHEMA::index { static constexpr size_t value = 539; }; +template<> struct SCHEMA::index { static constexpr size_t value = 540; }; +template<> struct SCHEMA::index { static constexpr size_t value = 541; }; +template<> struct SCHEMA::index { static constexpr size_t value = 542; }; +template<> struct SCHEMA::index { static constexpr size_t value = 543; }; +template<> struct SCHEMA::index { static constexpr size_t value = 544; }; +template<> struct SCHEMA::index { static constexpr size_t value = 545; }; +template<> struct SCHEMA::index { static constexpr size_t value = 546; }; +template<> struct SCHEMA::index { static constexpr size_t value = 547; }; +template<> struct SCHEMA::index { static constexpr size_t value = 548; }; +template<> struct SCHEMA::index { static constexpr size_t value = 549; }; +template<> struct SCHEMA::index { static constexpr size_t value = 550; }; +template<> struct SCHEMA::index { static constexpr size_t value = 551; }; +template<> struct SCHEMA::index { static constexpr size_t value = 552; }; +template<> struct SCHEMA::index { static constexpr size_t value = 553; }; +template<> struct SCHEMA::index { static constexpr size_t value = 554; }; +template<> struct SCHEMA::index { static constexpr size_t value = 555; }; +template<> struct SCHEMA::index { static constexpr size_t value = 556; }; +template<> struct SCHEMA::index { static constexpr size_t value = 557; }; +template<> struct SCHEMA::index { static constexpr size_t value = 558; }; +template<> struct SCHEMA::index { static constexpr size_t value = 559; }; +template<> struct SCHEMA::index { static constexpr size_t value = 560; }; +template<> struct SCHEMA::index { static constexpr size_t value = 561; }; +template<> struct SCHEMA::index { static constexpr size_t value = 562; }; +template<> struct SCHEMA::index { static constexpr size_t value = 563; }; +template<> struct SCHEMA::index { static constexpr size_t value = 564; }; +template<> struct SCHEMA::index { static constexpr size_t value = 565; }; +template<> struct SCHEMA::index { static constexpr size_t value = 566; }; +template<> struct SCHEMA::index { static constexpr size_t value = 567; }; +template<> struct SCHEMA::index { static constexpr size_t value = 568; }; +template<> struct SCHEMA::index { static constexpr size_t value = 569; }; +template<> struct SCHEMA::index { static constexpr size_t value = 570; }; +template<> struct SCHEMA::index { static constexpr size_t value = 571; }; +template<> struct SCHEMA::index { static constexpr size_t value = 572; }; +template<> struct SCHEMA::index { static constexpr size_t value = 573; }; +template<> struct SCHEMA::index { static constexpr size_t value = 574; }; +template<> struct SCHEMA::index { static constexpr size_t value = 575; }; +template<> struct SCHEMA::index { static constexpr size_t value = 576; }; +template<> struct SCHEMA::index { static constexpr size_t value = 577; }; +template<> struct SCHEMA::index { static constexpr size_t value = 578; }; +template<> struct SCHEMA::index { static constexpr size_t value = 579; }; +template<> struct SCHEMA::index { static constexpr size_t value = 580; }; +template<> struct SCHEMA::index { static constexpr size_t value = 581; }; +template<> struct SCHEMA::index { static constexpr size_t value = 582; }; +template<> struct SCHEMA::index { static constexpr size_t value = 583; }; +template<> struct SCHEMA::index { static constexpr size_t value = 584; }; +template<> struct SCHEMA::index { static constexpr size_t value = 585; }; +template<> struct SCHEMA::index { static constexpr size_t value = 586; }; +template<> struct SCHEMA::index { static constexpr size_t value = 587; }; +template<> struct SCHEMA::index { static constexpr size_t value = 588; }; +template<> struct SCHEMA::index { static constexpr size_t value = 589; }; +template<> struct SCHEMA::index { static constexpr size_t value = 590; }; +template<> struct SCHEMA::index { static constexpr size_t value = 591; }; +template<> struct SCHEMA::index { static constexpr size_t value = 592; }; +template<> struct SCHEMA::index { static constexpr size_t value = 593; }; +template<> struct SCHEMA::index { static constexpr size_t value = 594; }; +template<> struct SCHEMA::index { static constexpr size_t value = 595; }; +template<> struct SCHEMA::index { static constexpr size_t value = 596; }; +template<> struct SCHEMA::index { static constexpr size_t value = 597; }; +template<> struct SCHEMA::index { static constexpr size_t value = 598; }; +template<> struct SCHEMA::index { static constexpr size_t value = 599; }; +template<> struct SCHEMA::index { static constexpr size_t value = 600; }; +template<> struct SCHEMA::index { static constexpr size_t value = 601; }; +template<> struct SCHEMA::index { static constexpr size_t value = 602; }; +template<> struct SCHEMA::index { static constexpr size_t value = 603; }; +template<> struct SCHEMA::index { static constexpr size_t value = 604; }; +template<> struct SCHEMA::index { static constexpr size_t value = 605; }; +template<> struct SCHEMA::index { static constexpr size_t value = 606; }; +template<> struct SCHEMA::index { static constexpr size_t value = 607; }; +template<> struct SCHEMA::index { static constexpr size_t value = 608; }; +template<> struct SCHEMA::index { static constexpr size_t value = 609; }; +template<> struct SCHEMA::index { static constexpr size_t value = 610; }; +template<> struct SCHEMA::index { static constexpr size_t value = 611; }; +template<> struct SCHEMA::index { static constexpr size_t value = 612; }; +template<> struct SCHEMA::index { static constexpr size_t value = 613; }; +template<> struct SCHEMA::index { static constexpr size_t value = 614; }; +template<> struct SCHEMA::index { static constexpr size_t value = 615; }; +template<> struct SCHEMA::index { static constexpr size_t value = 616; }; +template<> struct SCHEMA::index { static constexpr size_t value = 617; }; +template<> struct SCHEMA::index { static constexpr size_t value = 618; }; +template<> struct SCHEMA::index { static constexpr size_t value = 619; }; +template<> struct SCHEMA::index { static constexpr size_t value = 620; }; +template<> struct SCHEMA::index { static constexpr size_t value = 621; }; +template<> struct SCHEMA::index { static constexpr size_t value = 622; }; +template<> struct SCHEMA::index { static constexpr size_t value = 623; }; +template<> struct SCHEMA::index { static constexpr size_t value = 624; }; +template<> struct SCHEMA::index { static constexpr size_t value = 625; }; +template<> struct SCHEMA::index { static constexpr size_t value = 626; }; +template<> struct SCHEMA::index { static constexpr size_t value = 627; }; +template<> struct SCHEMA::index { static constexpr size_t value = 628; }; +template<> struct SCHEMA::index { static constexpr size_t value = 629; }; +template<> struct SCHEMA::index { static constexpr size_t value = 630; }; +template<> struct SCHEMA::index { static constexpr size_t value = 631; }; +template<> struct SCHEMA::index { static constexpr size_t value = 632; }; +template<> struct SCHEMA::index { static constexpr size_t value = 633; }; +template<> struct SCHEMA::index { static constexpr size_t value = 634; }; +template<> struct SCHEMA::index { static constexpr size_t value = 635; }; +template<> struct SCHEMA::index { static constexpr size_t value = 636; }; +template<> struct SCHEMA::index { static constexpr size_t value = 637; }; +template<> struct SCHEMA::index { static constexpr size_t value = 638; }; +template<> struct SCHEMA::index { static constexpr size_t value = 639; }; +template<> struct SCHEMA::index { static constexpr size_t value = 640; }; +template<> struct SCHEMA::index { static constexpr size_t value = 641; }; +template<> struct SCHEMA::index { static constexpr size_t value = 642; }; +template<> struct SCHEMA::index { static constexpr size_t value = 643; }; +template<> struct SCHEMA::index { static constexpr size_t value = 644; }; +template<> struct SCHEMA::index { static constexpr size_t value = 645; }; +template<> struct SCHEMA::index { static constexpr size_t value = 646; }; +template<> struct SCHEMA::index { static constexpr size_t value = 647; }; +template<> struct SCHEMA::index { static constexpr size_t value = 648; }; +template<> struct SCHEMA::index { static constexpr size_t value = 649; }; +template<> struct SCHEMA::index { static constexpr size_t value = 650; }; +template<> struct SCHEMA::index { static constexpr size_t value = 651; }; +template<> struct SCHEMA::index { static constexpr size_t value = 652; }; +template<> struct SCHEMA::index { static constexpr size_t value = 653; }; +template<> struct SCHEMA::index { static constexpr size_t value = 654; }; +template<> struct SCHEMA::index { static constexpr size_t value = 655; }; +template<> struct SCHEMA::index { static constexpr size_t value = 656; }; +template<> struct SCHEMA::index { static constexpr size_t value = 657; }; +template<> struct SCHEMA::index { static constexpr size_t value = 658; }; +template<> struct SCHEMA::index { static constexpr size_t value = 659; }; +template<> struct SCHEMA::index { static constexpr size_t value = 660; }; +template<> struct SCHEMA::index { static constexpr size_t value = 661; }; +template<> struct SCHEMA::index { static constexpr size_t value = 662; }; +template<> struct SCHEMA::index { static constexpr size_t value = 663; }; +template<> struct SCHEMA::index { static constexpr size_t value = 664; }; +template<> struct SCHEMA::index { static constexpr size_t value = 665; }; +template<> struct SCHEMA::index { static constexpr size_t value = 666; }; +template<> struct SCHEMA::index { static constexpr size_t value = 667; }; +template<> struct SCHEMA::index { static constexpr size_t value = 668; }; +template<> struct SCHEMA::index { static constexpr size_t value = 669; }; +template<> struct SCHEMA::index { static constexpr size_t value = 670; }; +template<> struct SCHEMA::index { static constexpr size_t value = 671; }; +template<> struct SCHEMA::index { static constexpr size_t value = 672; }; +template<> struct SCHEMA::index { static constexpr size_t value = 673; }; +template<> struct SCHEMA::index { static constexpr size_t value = 674; }; +template<> struct SCHEMA::index { static constexpr size_t value = 675; }; +template<> struct SCHEMA::index { static constexpr size_t value = 676; }; +template<> struct SCHEMA::index { static constexpr size_t value = 677; }; +template<> struct SCHEMA::index { static constexpr size_t value = 678; }; +template<> struct SCHEMA::index { static constexpr size_t value = 679; }; +template<> struct SCHEMA::index { static constexpr size_t value = 680; }; +template<> struct SCHEMA::index { static constexpr size_t value = 681; }; +template<> struct SCHEMA::index { static constexpr size_t value = 682; }; +template<> struct SCHEMA::index { static constexpr size_t value = 683; }; +template<> struct SCHEMA::index { static constexpr size_t value = 684; }; +template<> struct SCHEMA::index { static constexpr size_t value = 685; }; +template<> struct SCHEMA::index { static constexpr size_t value = 686; }; +template<> struct SCHEMA::index { static constexpr size_t value = 687; }; +template<> struct SCHEMA::index { static constexpr size_t value = 688; }; +template<> struct SCHEMA::index { static constexpr size_t value = 689; }; +template<> struct SCHEMA::index { static constexpr size_t value = 690; }; +template<> struct SCHEMA::index { static constexpr size_t value = 691; }; +template<> struct SCHEMA::index { static constexpr size_t value = 692; }; +template<> struct SCHEMA::index { static constexpr size_t value = 693; }; +template<> struct SCHEMA::index { static constexpr size_t value = 694; }; +template<> struct SCHEMA::index { static constexpr size_t value = 695; }; +template<> struct SCHEMA::index { static constexpr size_t value = 696; }; +template<> struct SCHEMA::index { static constexpr size_t value = 697; }; +template<> struct SCHEMA::index { static constexpr size_t value = 698; }; +template<> struct SCHEMA::index { static constexpr size_t value = 699; }; +template<> struct SCHEMA::index { static constexpr size_t value = 700; }; +template<> struct SCHEMA::index { static constexpr size_t value = 701; }; +template<> struct SCHEMA::index { static constexpr size_t value = 702; }; +template<> struct SCHEMA::index { static constexpr size_t value = 703; }; +template<> struct SCHEMA::index { static constexpr size_t value = 704; }; +template<> struct SCHEMA::index { static constexpr size_t value = 705; }; +template<> struct SCHEMA::index { static constexpr size_t value = 706; }; +template<> struct SCHEMA::index { static constexpr size_t value = 707; }; +template<> struct SCHEMA::index { static constexpr size_t value = 708; }; +template<> struct SCHEMA::index { static constexpr size_t value = 709; }; +template<> struct SCHEMA::index { static constexpr size_t value = 710; }; +template<> struct SCHEMA::index { static constexpr size_t value = 711; }; +template<> struct SCHEMA::index { static constexpr size_t value = 712; }; +template<> struct SCHEMA::index { static constexpr size_t value = 713; }; +template<> struct SCHEMA::index { static constexpr size_t value = 714; }; +template<> struct SCHEMA::index { static constexpr size_t value = 715; }; +template<> struct SCHEMA::index { static constexpr size_t value = 716; }; +template<> struct SCHEMA::index { static constexpr size_t value = 717; }; +template<> struct SCHEMA::index { static constexpr size_t value = 718; }; +template<> struct SCHEMA::index { static constexpr size_t value = 719; }; +template<> struct SCHEMA::index { static constexpr size_t value = 720; }; +template<> struct SCHEMA::index { static constexpr size_t value = 721; }; +template<> struct SCHEMA::index { static constexpr size_t value = 722; }; +template<> struct SCHEMA::index { static constexpr size_t value = 723; }; +template<> struct SCHEMA::index { static constexpr size_t value = 724; }; +template<> struct SCHEMA::index { static constexpr size_t value = 725; }; +template<> struct SCHEMA::index { static constexpr size_t value = 726; }; +template<> struct SCHEMA::index { static constexpr size_t value = 727; }; +template<> struct SCHEMA::index { static constexpr size_t value = 728; }; +template<> struct SCHEMA::index { static constexpr size_t value = 729; }; +template<> struct SCHEMA::index { static constexpr size_t value = 730; }; +template<> struct SCHEMA::index { static constexpr size_t value = 731; }; +template<> struct SCHEMA::index { static constexpr size_t value = 732; }; +template<> struct SCHEMA::index { static constexpr size_t value = 733; }; +template<> struct SCHEMA::index { static constexpr size_t value = 734; }; +template<> struct SCHEMA::index { static constexpr size_t value = 735; }; +template<> struct SCHEMA::index { static constexpr size_t value = 736; }; +template<> struct SCHEMA::index { static constexpr size_t value = 737; }; +template<> struct SCHEMA::index { static constexpr size_t value = 738; }; +template<> struct SCHEMA::index { static constexpr size_t value = 739; }; +template<> struct SCHEMA::index { static constexpr size_t value = 740; }; +template<> struct SCHEMA::index { static constexpr size_t value = 741; }; +template<> struct SCHEMA::index { static constexpr size_t value = 742; }; +template<> struct SCHEMA::index { static constexpr size_t value = 743; }; +template<> struct SCHEMA::index { static constexpr size_t value = 744; }; +template<> struct SCHEMA::index { static constexpr size_t value = 745; }; +template<> struct SCHEMA::index { static constexpr size_t value = 746; }; +template<> struct SCHEMA::index { static constexpr size_t value = 747; }; +template<> struct SCHEMA::index { static constexpr size_t value = 748; }; +template<> struct SCHEMA::index { static constexpr size_t value = 749; }; +template<> struct SCHEMA::index { static constexpr size_t value = 750; }; +template<> struct SCHEMA::index { static constexpr size_t value = 751; }; +template<> struct SCHEMA::index { static constexpr size_t value = 752; }; +template<> struct SCHEMA::index { static constexpr size_t value = 753; }; +template<> struct SCHEMA::index { static constexpr size_t value = 754; }; +template<> struct SCHEMA::index { static constexpr size_t value = 755; }; +template<> struct SCHEMA::index { static constexpr size_t value = 756; }; +template<> struct SCHEMA::index { static constexpr size_t value = 757; }; +template<> struct SCHEMA::index { static constexpr size_t value = 758; }; +template<> struct SCHEMA::index { static constexpr size_t value = 759; }; +template<> struct SCHEMA::index { static constexpr size_t value = 760; }; +template<> struct SCHEMA::index { static constexpr size_t value = 761; }; +template<> struct SCHEMA::index { static constexpr size_t value = 762; }; +template<> struct SCHEMA::index { static constexpr size_t value = 763; }; +template<> struct SCHEMA::index { static constexpr size_t value = 764; }; +template<> struct SCHEMA::index { static constexpr size_t value = 765; }; +template<> struct SCHEMA::index { static constexpr size_t value = 766; }; +template<> struct SCHEMA::index { static constexpr size_t value = 767; }; +template<> struct SCHEMA::index { static constexpr size_t value = 768; }; +template<> struct SCHEMA::index { static constexpr size_t value = 769; }; +template<> struct SCHEMA::index { static constexpr size_t value = 770; }; +template<> struct SCHEMA::index { static constexpr size_t value = 771; }; +template<> struct SCHEMA::index { static constexpr size_t value = 772; }; +template<> struct SCHEMA::index { static constexpr size_t value = 773; }; +template<> struct SCHEMA::index { static constexpr size_t value = 774; }; +template<> struct SCHEMA::index { static constexpr size_t value = 775; }; +template<> struct SCHEMA::index { static constexpr size_t value = 776; }; +template<> struct SCHEMA::index { static constexpr size_t value = 777; }; +template<> struct SCHEMA::index { static constexpr size_t value = 778; }; +template<> struct SCHEMA::index { static constexpr size_t value = 779; }; +template<> struct SCHEMA::index { static constexpr size_t value = 780; }; +template<> struct SCHEMA::index { static constexpr size_t value = 781; }; +template<> struct SCHEMA::index { static constexpr size_t value = 782; }; +template<> struct SCHEMA::index { static constexpr size_t value = 783; }; +template<> struct SCHEMA::index { static constexpr size_t value = 784; }; +template<> struct SCHEMA::index { static constexpr size_t value = 785; }; +template<> struct SCHEMA::index { static constexpr size_t value = 786; }; +template<> struct SCHEMA::index { static constexpr size_t value = 787; }; +template<> struct SCHEMA::index { static constexpr size_t value = 788; }; +template<> struct SCHEMA::index { static constexpr size_t value = 789; }; +template<> struct SCHEMA::index { static constexpr size_t value = 790; }; +template<> struct SCHEMA::index { static constexpr size_t value = 791; }; +template<> struct SCHEMA::index { static constexpr size_t value = 792; }; +template<> struct SCHEMA::index { static constexpr size_t value = 793; }; +template<> struct SCHEMA::index { static constexpr size_t value = 794; }; +template<> struct SCHEMA::index { static constexpr size_t value = 795; }; +template<> struct SCHEMA::index { static constexpr size_t value = 796; }; +template<> struct SCHEMA::index { static constexpr size_t value = 797; }; +template<> struct SCHEMA::index { static constexpr size_t value = 798; }; +template<> struct SCHEMA::index { static constexpr size_t value = 799; }; +template<> struct SCHEMA::index { static constexpr size_t value = 800; }; +template<> struct SCHEMA::index { static constexpr size_t value = 801; }; +template<> struct SCHEMA::index { static constexpr size_t value = 802; }; +template<> struct SCHEMA::index { static constexpr size_t value = 803; }; +template<> struct SCHEMA::index { static constexpr size_t value = 804; }; +template<> struct SCHEMA::index { static constexpr size_t value = 805; }; +template<> struct SCHEMA::index { static constexpr size_t value = 806; }; +template<> struct SCHEMA::index { static constexpr size_t value = 807; }; +template<> struct SCHEMA::index { static constexpr size_t value = 808; }; +template<> struct SCHEMA::index { static constexpr size_t value = 809; }; +template<> struct SCHEMA::index { static constexpr size_t value = 810; }; +template<> struct SCHEMA::index { static constexpr size_t value = 811; }; +template<> struct SCHEMA::index { static constexpr size_t value = 812; }; +template<> struct SCHEMA::index { static constexpr size_t value = 813; }; +template<> struct SCHEMA::index { static constexpr size_t value = 814; }; +template<> struct SCHEMA::index { static constexpr size_t value = 815; }; +template<> struct SCHEMA::index { static constexpr size_t value = 816; }; +template<> struct SCHEMA::index { static constexpr size_t value = 817; }; +template<> struct SCHEMA::index { static constexpr size_t value = 818; }; +template<> struct SCHEMA::index { static constexpr size_t value = 819; }; +template<> struct SCHEMA::index { static constexpr size_t value = 820; }; +template<> struct SCHEMA::index { static constexpr size_t value = 821; }; +template<> struct SCHEMA::index { static constexpr size_t value = 822; }; +template<> struct SCHEMA::index { static constexpr size_t value = 823; }; +template<> struct SCHEMA::index { static constexpr size_t value = 824; }; +template<> struct SCHEMA::index { static constexpr size_t value = 825; }; +template<> struct SCHEMA::index { static constexpr size_t value = 826; }; +template<> struct SCHEMA::index { static constexpr size_t value = 827; }; +template<> struct SCHEMA::index { static constexpr size_t value = 828; }; +template<> struct SCHEMA::index { static constexpr size_t value = 829; }; +template<> struct SCHEMA::index { static constexpr size_t value = 830; }; +template<> struct SCHEMA::index { static constexpr size_t value = 831; }; +template<> struct SCHEMA::index { static constexpr size_t value = 832; }; +template<> struct SCHEMA::index { static constexpr size_t value = 833; }; +template<> struct SCHEMA::index { static constexpr size_t value = 834; }; +template<> struct SCHEMA::index { static constexpr size_t value = 835; }; +template<> struct SCHEMA::index { static constexpr size_t value = 836; }; +template<> struct SCHEMA::index { static constexpr size_t value = 837; }; +template<> struct SCHEMA::index { static constexpr size_t value = 838; }; +template<> struct SCHEMA::index { static constexpr size_t value = 839; }; +template<> struct SCHEMA::index { static constexpr size_t value = 840; }; +template<> struct SCHEMA::index { static constexpr size_t value = 841; }; +template<> struct SCHEMA::index { static constexpr size_t value = 842; }; +template<> struct SCHEMA::index { static constexpr size_t value = 843; }; +template<> struct SCHEMA::index { static constexpr size_t value = 844; }; +template<> struct SCHEMA::index { static constexpr size_t value = 845; }; +template<> struct SCHEMA::index { static constexpr size_t value = 846; }; +template<> struct SCHEMA::index { static constexpr size_t value = 847; }; +template<> struct SCHEMA::index { static constexpr size_t value = 848; }; +template<> struct SCHEMA::index { static constexpr size_t value = 849; }; +template<> struct SCHEMA::index { static constexpr size_t value = 850; }; +template<> struct SCHEMA::index { static constexpr size_t value = 851; }; +template<> struct SCHEMA::index { static constexpr size_t value = 852; }; +template<> struct SCHEMA::index { static constexpr size_t value = 853; }; +template<> struct SCHEMA::index { static constexpr size_t value = 854; }; +template<> struct SCHEMA::index { static constexpr size_t value = 855; }; +template<> struct SCHEMA::index { static constexpr size_t value = 856; }; +template<> struct SCHEMA::index { static constexpr size_t value = 857; }; +template<> struct SCHEMA::index { static constexpr size_t value = 858; }; +template<> struct SCHEMA::index { static constexpr size_t value = 859; }; +template<> struct SCHEMA::index { static constexpr size_t value = 860; }; +template<> struct SCHEMA::index { static constexpr size_t value = 861; }; +template<> struct SCHEMA::index { static constexpr size_t value = 862; }; +template<> struct SCHEMA::index { static constexpr size_t value = 863; }; +template<> struct SCHEMA::index { static constexpr size_t value = 864; }; +template<> struct SCHEMA::index { static constexpr size_t value = 865; }; +template<> struct SCHEMA::index { static constexpr size_t value = 866; }; +template<> struct SCHEMA::index { static constexpr size_t value = 867; }; +template<> struct SCHEMA::index { static constexpr size_t value = 868; }; +template<> struct SCHEMA::index { static constexpr size_t value = 869; }; +template<> struct SCHEMA::index { static constexpr size_t value = 870; }; +template<> struct SCHEMA::index { static constexpr size_t value = 871; }; +template<> struct SCHEMA::index { static constexpr size_t value = 872; }; +template<> struct SCHEMA::index { static constexpr size_t value = 873; }; +template<> struct SCHEMA::index { static constexpr size_t value = 874; }; +template<> struct SCHEMA::index { static constexpr size_t value = 875; }; +template<> struct SCHEMA::index { static constexpr size_t value = 876; }; +template<> struct SCHEMA::index { static constexpr size_t value = 877; }; +template<> struct SCHEMA::index { static constexpr size_t value = 878; }; +template<> struct SCHEMA::index { static constexpr size_t value = 879; }; +template<> struct SCHEMA::index { static constexpr size_t value = 880; }; +template<> struct SCHEMA::index { static constexpr size_t value = 881; }; +template<> struct SCHEMA::index { static constexpr size_t value = 882; }; +template<> struct SCHEMA::index { static constexpr size_t value = 883; }; +template<> struct SCHEMA::index { static constexpr size_t value = 884; }; +template<> struct SCHEMA::index { static constexpr size_t value = 885; }; +template<> struct SCHEMA::index { static constexpr size_t value = 886; }; +template<> struct SCHEMA::index { static constexpr size_t value = 887; }; +template<> struct SCHEMA::index { static constexpr size_t value = 888; }; +template<> struct SCHEMA::index { static constexpr size_t value = 889; }; +template<> struct SCHEMA::index { static constexpr size_t value = 890; }; +template<> struct SCHEMA::index { static constexpr size_t value = 891; }; +template<> struct SCHEMA::index { static constexpr size_t value = 892; }; +template<> struct SCHEMA::index { static constexpr size_t value = 893; }; +template<> struct SCHEMA::index { static constexpr size_t value = 894; }; +template<> struct SCHEMA::index { static constexpr size_t value = 895; }; +template<> struct SCHEMA::index { static constexpr size_t value = 896; }; +template<> struct SCHEMA::index { static constexpr size_t value = 897; }; template<> struct SCHEMA::index { static constexpr size_t value = 898; }; template<> struct SCHEMA::index { static constexpr size_t value = 899; }; template<> struct SCHEMA::index { static constexpr size_t value = 900; }; @@ -30965,149 +30977,150 @@ template<> struct SCHEMA::index struct SCHEMA::index { static constexpr size_t value = 1181; }; template<> struct SCHEMA::index { static constexpr size_t value = 1182; }; template<> struct SCHEMA::index { static constexpr size_t value = 1183; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1184; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1185; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1186; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1187; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1188; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1189; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1190; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1191; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1192; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1193; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1194; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1195; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1196; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1197; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1198; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1199; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1200; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1201; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1202; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1203; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1204; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1205; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1206; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1207; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1208; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1209; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1210; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1211; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1212; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1213; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1214; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1215; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1216; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1217; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1218; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1219; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1220; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1221; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1222; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1223; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1224; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1225; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1226; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1227; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1228; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1229; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1230; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1231; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1232; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1233; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1234; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1235; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1236; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1237; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1238; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1239; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1240; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1241; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1242; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1243; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1244; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1245; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1246; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1247; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1248; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1249; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1250; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1251; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1252; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1253; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1254; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1255; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1256; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1257; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1258; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1259; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1260; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1261; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1262; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1263; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1264; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1265; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1266; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1267; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1268; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1269; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1270; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1271; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1272; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1273; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1274; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1275; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1276; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1277; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1278; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1279; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1280; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1281; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1282; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1283; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1284; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1285; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1286; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1287; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1288; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1289; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1290; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1291; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1292; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1293; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1294; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1295; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1296; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1297; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1298; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1299; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1300; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1301; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1302; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1303; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1304; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1305; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1306; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1307; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1308; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1309; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1310; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1311; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1312; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1313; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1314; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1315; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1316; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1317; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1318; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1319; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1320; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1321; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1322; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1323; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1324; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1325; }; -template<> struct SCHEMA::index { static constexpr size_t value = 1326; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1184; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1185; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1186; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1187; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1188; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1189; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1190; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1191; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1192; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1193; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1194; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1195; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1196; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1197; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1198; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1199; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1200; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1201; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1202; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1203; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1204; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1205; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1206; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1207; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1208; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1209; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1210; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1211; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1212; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1213; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1214; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1215; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1216; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1217; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1218; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1219; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1220; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1221; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1222; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1223; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1224; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1225; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1226; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1227; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1228; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1229; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1230; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1231; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1232; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1233; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1234; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1235; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1236; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1237; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1238; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1239; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1240; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1241; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1242; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1243; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1244; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1245; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1246; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1247; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1248; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1249; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1250; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1251; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1252; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1253; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1254; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1255; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1256; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1257; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1258; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1259; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1260; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1261; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1262; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1263; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1264; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1265; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1266; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1267; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1268; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1269; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1270; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1271; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1272; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1273; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1274; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1275; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1276; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1277; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1278; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1279; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1280; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1281; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1282; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1283; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1284; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1285; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1286; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1287; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1288; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1289; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1290; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1291; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1292; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1293; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1294; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1295; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1296; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1297; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1298; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1299; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1300; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1301; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1302; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1303; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1304; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1305; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1306; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1307; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1308; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1309; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1310; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1311; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1312; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1313; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1314; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1315; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1316; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1317; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1318; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1319; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1320; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1321; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1322; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1323; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1324; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1325; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1326; }; +template<> struct SCHEMA::index { static constexpr size_t value = 1327; }; template<> struct SCHEMA::predicate<0> { using type = facebook::glean::cpp::schema::Testinfra::TestId; }; template<> struct SCHEMA::predicate<1> { using type = facebook::glean::cpp::schema::Testinfra::TaggedAssembly; }; @@ -31614,399 +31627,399 @@ template<> struct SCHEMA::predicate<501> { using type = facebook::glean::cpp::sc template<> struct SCHEMA::predicate<502> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInContainerNoProperty; }; template<> struct SCHEMA::predicate<503> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInContainerOrEnum; }; template<> struct SCHEMA::predicate<504> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInContainerOrEnumNoProperty; }; -template<> struct SCHEMA::predicate<505> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInContext; }; -template<> struct SCHEMA::predicate<506> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInEnum; }; -template<> struct SCHEMA::predicate<507> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInNamespace; }; -template<> struct SCHEMA::predicate<508> { using type = facebook::glean::cpp::schema::Search::Hack::SearchModule; }; -template<> struct SCHEMA::predicate<509> { using type = facebook::glean::cpp::schema::Search::Hack::SearchNamespace; }; -template<> struct SCHEMA::predicate<510> { using type = facebook::glean::cpp::schema::Search::Hack::SearchNamespacedDecl; }; -template<> struct SCHEMA::predicate<511> { using type = facebook::glean::cpp::schema::Search::Hack::SearchPropertyInContainer; }; -template<> struct SCHEMA::predicate<512> { using type = facebook::glean::cpp::schema::Search::Hack::SearchTypeInNamespace; }; -template<> struct SCHEMA::predicate<513> { using type = facebook::glean::cpp::schema::Hack::InheritedMembers; }; -template<> struct SCHEMA::predicate<514> { using type = facebook::glean::cpp::schema::Hack::MethodDeclaration; }; -template<> struct SCHEMA::predicate<515> { using type = facebook::glean::cpp::schema::Hack::PropertyDeclaration; }; -template<> struct SCHEMA::predicate<516> { using type = facebook::glean::cpp::schema::Hack::TypeConstDeclaration; }; -template<> struct SCHEMA::predicate<517> { using type = facebook::glean::cpp::schema::Hack::ContainerChild; }; -template<> struct SCHEMA::predicate<518> { using type = facebook::glean::cpp::schema::Hack::FunctionDefinition; }; -template<> struct SCHEMA::predicate<519> { using type = facebook::glean::cpp::schema::Hack::InterfaceDefinition; }; -template<> struct SCHEMA::predicate<520> { using type = facebook::glean::cpp::schema::Hack::MethodDefinition; }; -template<> struct SCHEMA::predicate<521> { using type = facebook::glean::cpp::schema::Hack::TraitDefinition; }; -template<> struct SCHEMA::predicate<522> { using type = facebook::glean::cpp::schema::Hack::TypedefDefinition; }; -template<> struct SCHEMA::predicate<523> { using type = facebook::glean::cpp::schema::Hack::ClassDefinition; }; -template<> struct SCHEMA::predicate<524> { using type = facebook::glean::cpp::schema::Hack::ClassDeclaration; }; -template<> struct SCHEMA::predicate<525> { using type = facebook::glean::cpp::schema::Hack::ClassConstDefinition; }; -template<> struct SCHEMA::predicate<526> { using type = facebook::glean::cpp::schema::Hack::ClassConstDeclaration; }; -template<> struct SCHEMA::predicate<527> { using type = facebook::glean::cpp::schema::Hack::AttributeToDefinition; }; -template<> struct SCHEMA::predicate<528> { using type = facebook::glean::cpp::schema::Hack::AttributeToDeclaration; }; -template<> struct SCHEMA::predicate<529> { using type = facebook::glean::cpp::schema::Hack::AttributeHasParameter; }; -template<> struct SCHEMA::predicate<530> { using type = facebook::glean::cpp::schema::Hack::FileCall; }; -template<> struct SCHEMA::predicate<531> { using type = facebook::glean::cpp::schema::Graphql::VariableDef; }; -template<> struct SCHEMA::predicate<532> { using type = facebook::glean::cpp::schema::Graphql::Value; }; -template<> struct SCHEMA::predicate<533> { using type = facebook::glean::cpp::schema::Graphql::UnionTypeDef; }; -template<> struct SCHEMA::predicate<534> { using type = facebook::glean::cpp::schema::Graphql::ScalarTypeDef; }; -template<> struct SCHEMA::predicate<535> { using type = facebook::glean::cpp::schema::Graphql::Operation; }; -template<> struct SCHEMA::predicate<536> { using type = facebook::glean::cpp::schema::Graphql::ObjectTypeDef; }; -template<> struct SCHEMA::predicate<537> { using type = facebook::glean::cpp::schema::Graphql::NameLowerCase; }; -template<> struct SCHEMA::predicate<538> { using type = facebook::glean::cpp::schema::Graphql::InterfaceTypeDef; }; -template<> struct SCHEMA::predicate<539> { using type = facebook::glean::cpp::schema::Graphql::InputValueDef; }; -template<> struct SCHEMA::predicate<540> { using type = facebook::glean::cpp::schema::Graphql::InputObjectTypeDef; }; -template<> struct SCHEMA::predicate<541> { using type = facebook::glean::cpp::schema::Graphql::InlineFragment; }; -template<> struct SCHEMA::predicate<542> { using type = facebook::glean::cpp::schema::Graphql::FragmentSpread; }; -template<> struct SCHEMA::predicate<543> { using type = facebook::glean::cpp::schema::Graphql::Fragment; }; -template<> struct SCHEMA::predicate<544> { using type = facebook::glean::cpp::schema::Graphql::FieldDef; }; -template<> struct SCHEMA::predicate<545> { using type = facebook::glean::cpp::schema::Graphql::Field; }; -template<> struct SCHEMA::predicate<546> { using type = facebook::glean::cpp::schema::Graphql::EnumTypeDef; }; -template<> struct SCHEMA::predicate<547> { using type = facebook::glean::cpp::schema::Graphql::DirectiveDef; }; -template<> struct SCHEMA::predicate<548> { using type = facebook::glean::cpp::schema::Graphql::Directive; }; -template<> struct SCHEMA::predicate<549> { using type = facebook::glean::cpp::schema::Graphql::DeclarationLocation; }; -template<> struct SCHEMA::predicate<550> { using type = facebook::glean::cpp::schema::Graphql::DeclarationName; }; -template<> struct SCHEMA::predicate<551> { using type = facebook::glean::cpp::schema::Graphql::DeclarationUses; }; -template<> struct SCHEMA::predicate<552> { using type = facebook::glean::cpp::schema::Graphql::FileDeclarations; }; -template<> struct SCHEMA::predicate<553> { using type = facebook::glean::cpp::schema::Graphql::SearchByName; }; -template<> struct SCHEMA::predicate<554> { using type = facebook::glean::cpp::schema::Graphql::FileXRefs; }; -template<> struct SCHEMA::predicate<555> { using type = facebook::glean::cpp::schema::Graphql::DeclHasName; }; -template<> struct SCHEMA::predicate<556> { using type = facebook::glean::cpp::schema::Graphql::BelongToConfig; }; -template<> struct SCHEMA::predicate<557> { using type = facebook::glean::cpp::schema::Graphql::Argument; }; -template<> struct SCHEMA::predicate<558> { using type = facebook::glean::cpp::schema::Glean::Test::nothingTest; }; -template<> struct SCHEMA::predicate<559> { using type = facebook::glean::cpp::schema::Glean::Test::ViaStringPair; }; -template<> struct SCHEMA::predicate<560> { using type = facebook::glean::cpp::schema::Glean::Test::Unbound2; }; -template<> struct SCHEMA::predicate<561> { using type = facebook::glean::cpp::schema::Glean::Test::Unbound; }; -template<> struct SCHEMA::predicate<562> { using type = facebook::glean::cpp::schema::Glean::Test::TreeToTree; }; -template<> struct SCHEMA::predicate<563> { using type = facebook::glean::cpp::schema::Glean::Test::Tree; }; -template<> struct SCHEMA::predicate<564> { using type = facebook::glean::cpp::schema::Glean::Test::StringPairBox; }; -template<> struct SCHEMA::predicate<565> { using type = facebook::glean::cpp::schema::Glean::Test::StringPair; }; -template<> struct SCHEMA::predicate<566> { using type = facebook::glean::cpp::schema::Glean::Test::StoredRevStringPairWithRev; }; -template<> struct SCHEMA::predicate<567> { using type = facebook::glean::cpp::schema::Glean::Test::StoredRevStringPairWithA; }; -template<> struct SCHEMA::predicate<568> { using type = facebook::glean::cpp::schema::Glean::Test::StoredRevStringPairSum; }; -template<> struct SCHEMA::predicate<569> { using type = facebook::glean::cpp::schema::Glean::Test::StoredRevStringPair; }; -template<> struct SCHEMA::predicate<570> { using type = facebook::glean::cpp::schema::Glean::Test::StoredDualStringPair; }; -template<> struct SCHEMA::predicate<571> { using type = facebook::glean::cpp::schema::Glean::Test::SkipRevEdge; }; -template<> struct SCHEMA::predicate<572> { using type = facebook::glean::cpp::schema::Glean::Test::SameString; }; -template<> struct SCHEMA::predicate<573> { using type = facebook::glean::cpp::schema::Glean::Test::RevStringPairs; }; -template<> struct SCHEMA::predicate<574> { using type = facebook::glean::cpp::schema::Glean::Test::RevStringPairRec; }; -template<> struct SCHEMA::predicate<575> { using type = facebook::glean::cpp::schema::Glean::Test::RevStringPair; }; -template<> struct SCHEMA::predicate<576> { using type = facebook::glean::cpp::schema::Glean::Test::RevRevStringPair; }; -template<> struct SCHEMA::predicate<577> { using type = facebook::glean::cpp::schema::Glean::Test::RevEdge; }; -template<> struct SCHEMA::predicate<578> { using type = facebook::glean::cpp::schema::Glean::Test::ReflStringPair; }; -template<> struct SCHEMA::predicate<579> { using type = facebook::glean::cpp::schema::Glean::Test::RefRef; }; -template<> struct SCHEMA::predicate<580> { using type = facebook::glean::cpp::schema::Glean::Test::Ref; }; -template<> struct SCHEMA::predicate<581> { using type = facebook::glean::cpp::schema::Glean::Test::Qux; }; -template<> struct SCHEMA::predicate<582> { using type = facebook::glean::cpp::schema::Glean::Test::Predicate_0; }; -template<> struct SCHEMA::predicate<583> { using type = facebook::glean::cpp::schema::Glean::Test::NodePair; }; -template<> struct SCHEMA::predicate<584> { using type = facebook::glean::cpp::schema::Glean::Test::Node; }; -template<> struct SCHEMA::predicate<585> { using type = facebook::glean::cpp::schema::Glean::Test::Name; }; -template<> struct SCHEMA::predicate<586> { using type = facebook::glean::cpp::schema::Glean::Test::MatchOneAlt; }; -template<> struct SCHEMA::predicate<587> { using type = facebook::glean::cpp::schema::Glean::Test::LeftOr2; }; -template<> struct SCHEMA::predicate<588> { using type = facebook::glean::cpp::schema::Glean::Test::LeftOr; }; -template<> struct SCHEMA::predicate<589> { using type = facebook::glean::cpp::schema::Glean::Test::KeyValue; }; -template<> struct SCHEMA::predicate<590> { using type = facebook::glean::cpp::schema::Glean::Test::IsThree; }; -template<> struct SCHEMA::predicate<591> { using type = facebook::glean::cpp::schema::Glean::Test::IsParent; }; -template<> struct SCHEMA::predicate<592> { using type = facebook::glean::cpp::schema::Glean::Test::IsGlean; }; -template<> struct SCHEMA::predicate<593> { using type = facebook::glean::cpp::schema::Glean::Test::FooToFoo; }; -template<> struct SCHEMA::predicate<594> { using type = facebook::glean::cpp::schema::Glean::Test::Foo; }; -template<> struct SCHEMA::predicate<595> { using type = facebook::glean::cpp::schema::Glean::Test::Expr; }; -template<> struct SCHEMA::predicate<596> { using type = facebook::glean::cpp::schema::Glean::Test::EmptyStoredStringPair; }; -template<> struct SCHEMA::predicate<597> { using type = facebook::glean::cpp::schema::Glean::Test::EmptyPred; }; -template<> struct SCHEMA::predicate<598> { using type = facebook::glean::cpp::schema::Glean::Test::EdgeWrapper; }; -template<> struct SCHEMA::predicate<599> { using type = facebook::glean::cpp::schema::Glean::Test::EdgeFromNotA; }; -template<> struct SCHEMA::predicate<600> { using type = facebook::glean::cpp::schema::Glean::Test::Edge; }; -template<> struct SCHEMA::predicate<601> { using type = facebook::glean::cpp::schema::Glean::Test::DualStringPair; }; -template<> struct SCHEMA::predicate<602> { using type = facebook::glean::cpp::schema::Glean::Test::DerivedKeyValue2; }; -template<> struct SCHEMA::predicate<603> { using type = facebook::glean::cpp::schema::Glean::Test::DerivedKeyValue; }; -template<> struct SCHEMA::predicate<604> { using type = facebook::glean::cpp::schema::Glean::Test::Bar; }; -template<> struct SCHEMA::predicate<605> { using type = facebook::glean::cpp::schema::Glean::Test::Predicate_; }; -template<> struct SCHEMA::predicate<606> { using type = facebook::glean::cpp::schema::Gencode::GenCodeSignature; }; -template<> struct SCHEMA::predicate<607> { using type = facebook::glean::cpp::schema::Gencode::GenCodeCommand; }; -template<> struct SCHEMA::predicate<608> { using type = facebook::glean::cpp::schema::Gencode::GenCodeClass; }; -template<> struct SCHEMA::predicate<609> { using type = facebook::glean::cpp::schema::Gencode::GenCodeBySource; }; -template<> struct SCHEMA::predicate<610> { using type = facebook::glean::cpp::schema::Gencode::GenCode; }; -template<> struct SCHEMA::predicate<611> { using type = facebook::glean::cpp::schema::Flow::TypeImportDeclaration; }; -template<> struct SCHEMA::predicate<612> { using type = facebook::glean::cpp::schema::Flow::TypeExport; }; -template<> struct SCHEMA::predicate<613> { using type = facebook::glean::cpp::schema::Flow::TypeDeclarationReference; }; -template<> struct SCHEMA::predicate<614> { using type = facebook::glean::cpp::schema::Flow::TypeDeclarationInfo; }; -template<> struct SCHEMA::predicate<615> { using type = facebook::glean::cpp::schema::Flow::TypeDeclaration; }; -template<> struct SCHEMA::predicate<616> { using type = facebook::glean::cpp::schema::Flow::Type; }; -template<> struct SCHEMA::predicate<617> { using type = facebook::glean::cpp::schema::Flow::StringToFileModule; }; -template<> struct SCHEMA::predicate<618> { using type = facebook::glean::cpp::schema::Flow::SourceOfTypeExport; }; -template<> struct SCHEMA::predicate<619> { using type = facebook::glean::cpp::schema::Flow::SourceOfExport; }; -template<> struct SCHEMA::predicate<620> { using type = facebook::glean::cpp::schema::Search::Flow::FlowSearchByNameNonImport; }; -template<> struct SCHEMA::predicate<621> { using type = facebook::glean::cpp::schema::Flow::SearchTypeDeclarationByName; }; -template<> struct SCHEMA::predicate<622> { using type = facebook::glean::cpp::schema::Flow::SearchTypeDeclarationByLowerCaseName; }; -template<> struct SCHEMA::predicate<623> { using type = facebook::glean::cpp::schema::Flow::SearchTypeByModuleExport; }; -template<> struct SCHEMA::predicate<624> { using type = facebook::glean::cpp::schema::Flow::SearchModuleByLowerCaseName; }; -template<> struct SCHEMA::predicate<625> { using type = facebook::glean::cpp::schema::Flow::SearchMemberDeclarationByName; }; -template<> struct SCHEMA::predicate<626> { using type = facebook::glean::cpp::schema::Flow::SearchMemberDeclarationByLowerCaseName; }; -template<> struct SCHEMA::predicate<627> { using type = facebook::glean::cpp::schema::Flow::SearchDeclarationByName; }; -template<> struct SCHEMA::predicate<628> { using type = facebook::glean::cpp::schema::Flow::SearchDeclarationByLowerCaseName; }; -template<> struct SCHEMA::predicate<629> { using type = facebook::glean::cpp::schema::Flow::SearchByNameModule; }; -template<> struct SCHEMA::predicate<630> { using type = facebook::glean::cpp::schema::Flow::SearchByName; }; -template<> struct SCHEMA::predicate<631> { using type = facebook::glean::cpp::schema::Flow::SearchByModuleName; }; -template<> struct SCHEMA::predicate<632> { using type = facebook::glean::cpp::schema::Flow::SearchByModule; }; -template<> struct SCHEMA::predicate<633> { using type = facebook::glean::cpp::schema::Flow::SearchByFileModule; }; -template<> struct SCHEMA::predicate<634> { using type = facebook::glean::cpp::schema::Flow::Range; }; -template<> struct SCHEMA::predicate<635> { using type = facebook::glean::cpp::schema::Flow::Name; }; -template<> struct SCHEMA::predicate<636> { using type = facebook::glean::cpp::schema::Flow::ModuleTypeExport; }; -template<> struct SCHEMA::predicate<637> { using type = facebook::glean::cpp::schema::Flow::ModuleNameLowerCase; }; -template<> struct SCHEMA::predicate<638> { using type = facebook::glean::cpp::schema::Flow::ModuleLocationByFile; }; -template<> struct SCHEMA::predicate<639> { using type = facebook::glean::cpp::schema::Flow::ModuleLocation; }; -template<> struct SCHEMA::predicate<640> { using type = facebook::glean::cpp::schema::Flow::ModuleExport; }; -template<> struct SCHEMA::predicate<641> { using type = facebook::glean::cpp::schema::Flow::ModuleDoc; }; -template<> struct SCHEMA::predicate<642> { using type = facebook::glean::cpp::schema::Flow::ModuleContains; }; -template<> struct SCHEMA::predicate<643> { using type = facebook::glean::cpp::schema::Flow::ModuleComments; }; -template<> struct SCHEMA::predicate<644> { using type = facebook::glean::cpp::schema::Flow::Module; }; -template<> struct SCHEMA::predicate<645> { using type = facebook::glean::cpp::schema::Flow::MemberDeclarationReference; }; -template<> struct SCHEMA::predicate<646> { using type = facebook::glean::cpp::schema::Flow::MemberDeclarationInfo; }; -template<> struct SCHEMA::predicate<647> { using type = facebook::glean::cpp::schema::Flow::MemberDeclaration; }; -template<> struct SCHEMA::predicate<648> { using type = facebook::glean::cpp::schema::Flow::LocalDeclarationReference; }; -template<> struct SCHEMA::predicate<649> { using type = facebook::glean::cpp::schema::Flow::ImportDeclaration; }; -template<> struct SCHEMA::predicate<650> { using type = facebook::glean::cpp::schema::Flow::FlowXRefDeclInfo; }; -template<> struct SCHEMA::predicate<651> { using type = facebook::glean::cpp::schema::Flow::FlowTypeImportXRef; }; -template<> struct SCHEMA::predicate<652> { using type = facebook::glean::cpp::schema::Flow::FlowTypeExportLocation; }; -template<> struct SCHEMA::predicate<653> { using type = facebook::glean::cpp::schema::Flow::FlowTypeEntityImportUses; }; -template<> struct SCHEMA::predicate<654> { using type = facebook::glean::cpp::schema::Flow::FlowSameModule; }; -template<> struct SCHEMA::predicate<655> { using type = facebook::glean::cpp::schema::Flow::FlowModuleNamespaceXRef; }; -template<> struct SCHEMA::predicate<656> { using type = facebook::glean::cpp::schema::Flow::FlowImportXRef; }; -template<> struct SCHEMA::predicate<657> { using type = facebook::glean::cpp::schema::Flow::FlowExportLocation; }; -template<> struct SCHEMA::predicate<658> { using type = facebook::glean::cpp::schema::Flow::FlowEntityUsesAll; }; -template<> struct SCHEMA::predicate<659> { using type = facebook::glean::cpp::schema::Flow::FlowEntityImportUses; }; -template<> struct SCHEMA::predicate<660> { using type = facebook::glean::cpp::schema::Flow::FlowCompatibleExport; }; -template<> struct SCHEMA::predicate<661> { using type = facebook::glean::cpp::schema::Flow::FileXRef; }; -template<> struct SCHEMA::predicate<662> { using type = facebook::glean::cpp::schema::Flow::FileOfStringModule; }; -template<> struct SCHEMA::predicate<663> { using type = facebook::glean::cpp::schema::Flow::FileDeclaration; }; -template<> struct SCHEMA::predicate<664> { using type = facebook::glean::cpp::schema::Flow::Export; }; -template<> struct SCHEMA::predicate<665> { using type = facebook::glean::cpp::schema::Flow::Documentation; }; -template<> struct SCHEMA::predicate<666> { using type = facebook::glean::cpp::schema::Flow::DeclarationUses; }; -template<> struct SCHEMA::predicate<667> { using type = facebook::glean::cpp::schema::Flow::DeclarationSignature; }; -template<> struct SCHEMA::predicate<668> { using type = facebook::glean::cpp::schema::Flow::DeclarationNameSpan; }; -template<> struct SCHEMA::predicate<669> { using type = facebook::glean::cpp::schema::Flow::DeclarationLocation; }; -template<> struct SCHEMA::predicate<670> { using type = facebook::glean::cpp::schema::Flow::DeclarationInfo; }; -template<> struct SCHEMA::predicate<671> { using type = facebook::glean::cpp::schema::Flow::Declaration; }; -template<> struct SCHEMA::predicate<672> { using type = facebook::glean::cpp::schema::Fbthrift::UnionVal; }; -template<> struct SCHEMA::predicate<673> { using type = facebook::glean::cpp::schema::Fbthrift::TypeDefType; }; -template<> struct SCHEMA::predicate<674> { using type = facebook::glean::cpp::schema::Fbthrift::StructuredAnnotation; }; -template<> struct SCHEMA::predicate<675> { using type = facebook::glean::cpp::schema::Fbthrift::StructVal; }; -template<> struct SCHEMA::predicate<676> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceParent; }; -template<> struct SCHEMA::predicate<677> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceName; }; -template<> struct SCHEMA::predicate<678> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceInteractionFunctions; }; -template<> struct SCHEMA::predicate<679> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceDefinition; }; -template<> struct SCHEMA::predicate<680> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceChild; }; -template<> struct SCHEMA::predicate<681> { using type = facebook::glean::cpp::schema::Fbthrift::SearchByName; }; -template<> struct SCHEMA::predicate<682> { using type = facebook::glean::cpp::schema::Fbthrift::QualName; }; -template<> struct SCHEMA::predicate<683> { using type = facebook::glean::cpp::schema::Fbthrift::PackageName; }; -template<> struct SCHEMA::predicate<684> { using type = facebook::glean::cpp::schema::Fbthrift::Package; }; -template<> struct SCHEMA::predicate<685> { using type = facebook::glean::cpp::schema::Fbthrift::NamespaceValue; }; -template<> struct SCHEMA::predicate<686> { using type = facebook::glean::cpp::schema::Fbthrift::NamespaceName; }; -template<> struct SCHEMA::predicate<687> { using type = facebook::glean::cpp::schema::Fbthrift::Namespace; }; -template<> struct SCHEMA::predicate<688> { using type = facebook::glean::cpp::schema::Fbthrift::NamedDecl; }; -template<> struct SCHEMA::predicate<689> { using type = facebook::glean::cpp::schema::Fbthrift::NameLowerCase; }; -template<> struct SCHEMA::predicate<690> { using type = facebook::glean::cpp::schema::Fbthrift::InteractionName; }; -template<> struct SCHEMA::predicate<691> { using type = facebook::glean::cpp::schema::Fbthrift::InteractionDefinition; }; -template<> struct SCHEMA::predicate<692> { using type = facebook::glean::cpp::schema::Fbthrift::Identifier; }; -template<> struct SCHEMA::predicate<693> { using type = facebook::glean::cpp::schema::Fbthrift::FunctionName; }; -template<> struct SCHEMA::predicate<694> { using type = facebook::glean::cpp::schema::Fbthrift::Literal; }; -template<> struct SCHEMA::predicate<695> { using type = facebook::glean::cpp::schema::Fbthrift::FileXRefs; }; -template<> struct SCHEMA::predicate<696> { using type = facebook::glean::cpp::schema::Fbthrift::File; }; -template<> struct SCHEMA::predicate<697> { using type = facebook::glean::cpp::schema::Fbthrift::StructType; }; -template<> struct SCHEMA::predicate<698> { using type = facebook::glean::cpp::schema::Fbthrift::UnionType; }; -template<> struct SCHEMA::predicate<699> { using type = facebook::glean::cpp::schema::Fbthrift::FieldDecl; }; -template<> struct SCHEMA::predicate<700> { using type = facebook::glean::cpp::schema::Fbthrift::ExceptionVal; }; -template<> struct SCHEMA::predicate<701> { using type = facebook::glean::cpp::schema::Fbthrift::ExceptionType; }; -template<> struct SCHEMA::predicate<702> { using type = facebook::glean::cpp::schema::Fbthrift::TypeDefException; }; -template<> struct SCHEMA::predicate<703> { using type = facebook::glean::cpp::schema::Fbthrift::ExceptionName; }; -template<> struct SCHEMA::predicate<704> { using type = facebook::glean::cpp::schema::Fbthrift::EnumerationType; }; -template<> struct SCHEMA::predicate<705> { using type = facebook::glean::cpp::schema::Fbthrift::EnumValueDef; }; -template<> struct SCHEMA::predicate<706> { using type = facebook::glean::cpp::schema::Fbthrift::EnumValue; }; -template<> struct SCHEMA::predicate<707> { using type = facebook::glean::cpp::schema::Fbthrift::EnumVal; }; -template<> struct SCHEMA::predicate<708> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationComment; }; -template<> struct SCHEMA::predicate<709> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationFile; }; -template<> struct SCHEMA::predicate<710> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationMember; }; -template<> struct SCHEMA::predicate<711> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationName; }; -template<> struct SCHEMA::predicate<712> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationNameSpan; }; -template<> struct SCHEMA::predicate<713> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationUses; }; -template<> struct SCHEMA::predicate<714> { using type = facebook::glean::cpp::schema::Fbthrift::FileDeclaration; }; -template<> struct SCHEMA::predicate<715> { using type = facebook::glean::cpp::schema::Fbthrift::FunctionDeclarationName; }; -template<> struct SCHEMA::predicate<716> { using type = facebook::glean::cpp::schema::Hack::HackToThrift; }; -template<> struct SCHEMA::predicate<717> { using type = facebook::glean::cpp::schema::Hack::ThriftToHack; }; -template<> struct SCHEMA::predicate<718> { using type = facebook::glean::cpp::schema::Fbthrift::TypeSpecification; }; -template<> struct SCHEMA::predicate<719> { using type = facebook::glean::cpp::schema::Fbthrift::ConstantDefinition; }; -template<> struct SCHEMA::predicate<720> { using type = facebook::glean::cpp::schema::Fbthrift::Constant; }; -template<> struct SCHEMA::predicate<721> { using type = facebook::glean::cpp::schema::Erlang::NameLowerCase; }; -template<> struct SCHEMA::predicate<722> { using type = facebook::glean::cpp::schema::Erlang::FunctionDeclaration; }; -template<> struct SCHEMA::predicate<723> { using type = facebook::glean::cpp::schema::Erlang::XRefsViaFqnByFile; }; -template<> struct SCHEMA::predicate<724> { using type = facebook::glean::cpp::schema::Erlang::DeclarationComment; }; -template<> struct SCHEMA::predicate<725> { using type = facebook::glean::cpp::schema::Erlang::DeclarationLocation; }; -template<> struct SCHEMA::predicate<726> { using type = facebook::glean::cpp::schema::Erlang::DeclarationReference; }; -template<> struct SCHEMA::predicate<727> { using type = facebook::glean::cpp::schema::Erlang::DeclarationToFqn; }; -template<> struct SCHEMA::predicate<728> { using type = facebook::glean::cpp::schema::Erlang::DeclarationUses; }; -template<> struct SCHEMA::predicate<729> { using type = facebook::glean::cpp::schema::Erlang::DeclarationWithFqn; }; -template<> struct SCHEMA::predicate<730> { using type = facebook::glean::cpp::schema::Erlang::DeclarationsByFile; }; -template<> struct SCHEMA::predicate<731> { using type = facebook::glean::cpp::schema::Erlang::SearchByName; }; -template<> struct SCHEMA::predicate<732> { using type = facebook::glean::cpp::schema::Dyn::ObserverIdentifier; }; -template<> struct SCHEMA::predicate<733> { using type = facebook::glean::cpp::schema::Dyn::Environment; }; -template<> struct SCHEMA::predicate<734> { using type = facebook::glean::cpp::schema::Dyn::EntityDynamicReference; }; -template<> struct SCHEMA::predicate<735> { using type = facebook::glean::cpp::schema::Digest::FileDigest; }; -template<> struct SCHEMA::predicate<736> { using type = facebook::glean::cpp::schema::Glass::FileInfo; }; -template<> struct SCHEMA::predicate<737> { using type = facebook::glean::cpp::schema::Deadcode::GraphNodeByEntity; }; -template<> struct SCHEMA::predicate<738> { using type = facebook::glean::cpp::schema::Deadcode::GraphNode; }; -template<> struct SCHEMA::predicate<739> { using type = facebook::glean::cpp::schema::Deadcode::GraphInverseEdge; }; -template<> struct SCHEMA::predicate<740> { using type = facebook::glean::cpp::schema::Deadcode::GraphEntityByFile; }; -template<> struct SCHEMA::predicate<741> { using type = facebook::glean::cpp::schema::Deadcode::GraphEdge; }; -template<> struct SCHEMA::predicate<742> { using type = facebook::glean::cpp::schema::Dataswarm::TableDeclaration; }; -template<> struct SCHEMA::predicate<743> { using type = facebook::glean::cpp::schema::Dataswarm::SubqueryDeclaration; }; -template<> struct SCHEMA::predicate<744> { using type = facebook::glean::cpp::schema::Dataswarm::MacroDeclaration; }; -template<> struct SCHEMA::predicate<745> { using type = facebook::glean::cpp::schema::Dataswarm::DeclarationLocation; }; -template<> struct SCHEMA::predicate<746> { using type = facebook::glean::cpp::schema::Dataswarm::DeclarationName; }; -template<> struct SCHEMA::predicate<747> { using type = facebook::glean::cpp::schema::Dataswarm::XRefsByFile; }; -template<> struct SCHEMA::predicate<748> { using type = facebook::glean::cpp::schema::Cxx1::VariableLowerCase; }; -template<> struct SCHEMA::predicate<749> { using type = facebook::glean::cpp::schema::Cxx1::UsingDirective; }; -template<> struct SCHEMA::predicate<750> { using type = facebook::glean::cpp::schema::Cxx1::UsingDeclaration; }; -template<> struct SCHEMA::predicate<751> { using type = facebook::glean::cpp::schema::Cxx1::TypeAliasLowerCase; }; -template<> struct SCHEMA::predicate<752> { using type = facebook::glean::cpp::schema::Cxx1::TypeAliasDeclaration; }; -template<> struct SCHEMA::predicate<753> { using type = facebook::glean::cpp::schema::Cxx1::Type; }; -template<> struct SCHEMA::predicate<754> { using type = facebook::glean::cpp::schema::Cxx1::TranslationUnitXRefs; }; -template<> struct SCHEMA::predicate<755> { using type = facebook::glean::cpp::schema::Cxx1::TranslationUnitTrace; }; -template<> struct SCHEMA::predicate<756> { using type = facebook::glean::cpp::schema::Cxx1::TranslationUnitIncludeTree; }; -template<> struct SCHEMA::predicate<757> { using type = facebook::glean::cpp::schema::Cxx1::Trace; }; -template<> struct SCHEMA::predicate<758> { using type = facebook::glean::cpp::schema::Cxx1::RecordUnionLowerCase; }; -template<> struct SCHEMA::predicate<759> { using type = facebook::glean::cpp::schema::Cxx1::RecordStructLowerCase; }; -template<> struct SCHEMA::predicate<760> { using type = facebook::glean::cpp::schema::Cxx1::RecordDerived; }; -template<> struct SCHEMA::predicate<761> { using type = facebook::glean::cpp::schema::Cxx1::RecordClassLowerCase; }; -template<> struct SCHEMA::predicate<762> { using type = facebook::glean::cpp::schema::Cxx1::Signature; }; -template<> struct SCHEMA::predicate<763> { using type = facebook::glean::cpp::schema::Cxx1::PPDefineLocation; }; -template<> struct SCHEMA::predicate<764> { using type = facebook::glean::cpp::schema::Cxx1::ObjcSelector; }; -template<> struct SCHEMA::predicate<765> { using type = facebook::glean::cpp::schema::Cxx1::ObjcPropertyImplementation; }; -template<> struct SCHEMA::predicate<766> { using type = facebook::glean::cpp::schema::Cxx1::ObjcPropertyIVar; }; -template<> struct SCHEMA::predicate<767> { using type = facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition; }; -template<> struct SCHEMA::predicate<768> { using type = facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclarationName; }; -template<> struct SCHEMA::predicate<769> { using type = facebook::glean::cpp::schema::Cxx1::ObjcInterfaceToImplementation; }; -template<> struct SCHEMA::predicate<770> { using type = facebook::glean::cpp::schema::Cxx1::ObjcImplements; }; -template<> struct SCHEMA::predicate<771> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerInterfaceLowerCase; }; -template<> struct SCHEMA::predicate<772> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerInheritance; }; -template<> struct SCHEMA::predicate<773> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerDefinition; }; -template<> struct SCHEMA::predicate<774> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerDeclarationInterface; }; -template<> struct SCHEMA::predicate<775> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerBase; }; -template<> struct SCHEMA::predicate<776> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerDeclaration; }; -template<> struct SCHEMA::predicate<777> { using type = facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclaration; }; -template<> struct SCHEMA::predicate<778> { using type = facebook::glean::cpp::schema::Cxx1::ObjcPropertyDeclaration; }; -template<> struct SCHEMA::predicate<779> { using type = facebook::glean::cpp::schema::Cxx1::ObjContainerIdName; }; -template<> struct SCHEMA::predicate<780> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceQName; }; -template<> struct SCHEMA::predicate<781> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceLowerCase; }; -template<> struct SCHEMA::predicate<782> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceDefinition; }; -template<> struct SCHEMA::predicate<783> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceDeclarationName; }; -template<> struct SCHEMA::predicate<784> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceDeclarationByName; }; -template<> struct SCHEMA::predicate<785> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceDeclaration; }; -template<> struct SCHEMA::predicate<786> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceAliasDeclaration; }; -template<> struct SCHEMA::predicate<787> { using type = facebook::glean::cpp::schema::Cxx1::Name; }; -template<> struct SCHEMA::predicate<788> { using type = facebook::glean::cpp::schema::Cxx1::MethodOverrides; }; -template<> struct SCHEMA::predicate<789> { using type = facebook::glean::cpp::schema::Cxx1::MethodOverridden; }; -template<> struct SCHEMA::predicate<790> { using type = facebook::glean::cpp::schema::Cxx1::IncludeTreeTranslationUnit; }; -template<> struct SCHEMA::predicate<791> { using type = facebook::glean::cpp::schema::Cxx1::IncludeTreeParent; }; -template<> struct SCHEMA::predicate<792> { using type = facebook::glean::cpp::schema::Cxx1::IncludeTree; }; -template<> struct SCHEMA::predicate<793> { using type = facebook::glean::cpp::schema::Cxx1::PPTrace; }; -template<> struct SCHEMA::predicate<794> { using type = facebook::glean::cpp::schema::Cxx1::FunctionLowerCase; }; -template<> struct SCHEMA::predicate<795> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDefinition; }; -template<> struct SCHEMA::predicate<796> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclarationNameString; }; -template<> struct SCHEMA::predicate<797> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclarationName; }; -template<> struct SCHEMA::predicate<798> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclaration; }; -template<> struct SCHEMA::predicate<799> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclAttribute; }; -template<> struct SCHEMA::predicate<800> { using type = facebook::glean::cpp::schema::Cxx1::FunctionAttribute; }; -template<> struct SCHEMA::predicate<801> { using type = facebook::glean::cpp::schema::Cxx1::FileXRefs; }; -template<> struct SCHEMA::predicate<802> { using type = facebook::glean::cpp::schema::Cxx1::FilePPUseXRefs; }; -template<> struct SCHEMA::predicate<803> { using type = facebook::glean::cpp::schema::Cxx1::FilePPUseTraceXRefs; }; -template<> struct SCHEMA::predicate<804> { using type = facebook::glean::cpp::schema::Cxx1::FilePPTraceXRefs; }; -template<> struct SCHEMA::predicate<805> { using type = facebook::glean::cpp::schema::Cxx1::VariableDeclaration; }; -template<> struct SCHEMA::predicate<806> { using type = facebook::glean::cpp::schema::Cxx1::EnumeratorLowerCase; }; -template<> struct SCHEMA::predicate<807> { using type = facebook::glean::cpp::schema::Cxx1::EnumeratorInEnum; }; -template<> struct SCHEMA::predicate<808> { using type = facebook::glean::cpp::schema::Cxx1::EnumeratorByName; }; -template<> struct SCHEMA::predicate<809> { using type = facebook::glean::cpp::schema::Cxx1::Enumerator; }; -template<> struct SCHEMA::predicate<810> { using type = facebook::glean::cpp::schema::Cxx1::EnumLowerCase; }; -template<> struct SCHEMA::predicate<811> { using type = facebook::glean::cpp::schema::Cxx1::EnumDefinition; }; -template<> struct SCHEMA::predicate<812> { using type = facebook::glean::cpp::schema::Cxx1::EnumDeclaration; }; -template<> struct SCHEMA::predicate<813> { using type = facebook::glean::cpp::schema::Cxx1::DefnInRecord; }; -template<> struct SCHEMA::predicate<814> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationComment; }; -template<> struct SCHEMA::predicate<815> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationInTrace; }; -template<> struct SCHEMA::predicate<816> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationLocationName; }; -template<> struct SCHEMA::predicate<817> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationLocationNameSpan; }; -template<> struct SCHEMA::predicate<818> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationNameSpan; }; -template<> struct SCHEMA::predicate<819> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationSources; }; -template<> struct SCHEMA::predicate<820> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationSrcRange; }; -template<> struct SCHEMA::predicate<821> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationTargets; }; -template<> struct SCHEMA::predicate<822> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationToUSR; }; -template<> struct SCHEMA::predicate<823> { using type = facebook::glean::cpp::schema::Cxx1::Declarations; }; -template<> struct SCHEMA::predicate<824> { using type = facebook::glean::cpp::schema::Cxx1::DefToBaseDecl; }; -template<> struct SCHEMA::predicate<825> { using type = facebook::glean::cpp::schema::Cxx1::Same; }; -template<> struct SCHEMA::predicate<826> { using type = facebook::glean::cpp::schema::Cxx1::USRToDeclaration; }; -template<> struct SCHEMA::predicate<827> { using type = facebook::glean::cpp::schema::Cxx1::FileXRefMap; }; -template<> struct SCHEMA::predicate<828> { using type = facebook::glean::cpp::schema::Cxx1::SpellingXRef; }; -template<> struct SCHEMA::predicate<829> { using type = facebook::glean::cpp::schema::Cxx1::TargetUses; }; -template<> struct SCHEMA::predicate<830> { using type = facebook::glean::cpp::schema::Cxx1::ThriftToCxx; }; -template<> struct SCHEMA::predicate<831> { using type = facebook::glean::cpp::schema::Cxx1::XRefIndirectTarget; }; -template<> struct SCHEMA::predicate<832> { using type = facebook::glean::cpp::schema::Cxx1::XRefTargets; }; -template<> struct SCHEMA::predicate<833> { using type = facebook::glean::cpp::schema::Search::Cxx::GlobalDeclarationWithName; }; -template<> struct SCHEMA::predicate<834> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupNamespaceDeclaration; }; -template<> struct SCHEMA::predicate<835> { using type = facebook::glean::cpp::schema::Cxx1::DeclToFamily; }; -template<> struct SCHEMA::predicate<836> { using type = facebook::glean::cpp::schema::Cxx1::DeclInRecord; }; -template<> struct SCHEMA::predicate<837> { using type = facebook::glean::cpp::schema::Cxx1::DeclInObjcContainer; }; -template<> struct SCHEMA::predicate<838> { using type = facebook::glean::cpp::schema::Cxx1::DeclFamilyOf; }; -template<> struct SCHEMA::predicate<839> { using type = facebook::glean::cpp::schema::Cxx1::DeclFamily; }; -template<> struct SCHEMA::predicate<840> { using type = facebook::glean::cpp::schema::Cxx1::DeclByName; }; -template<> struct SCHEMA::predicate<841> { using type = facebook::glean::cpp::schema::Cxx1::CxxToThrift; }; -template<> struct SCHEMA::predicate<842> { using type = facebook::glean::cpp::schema::Cxx1::Attribute; }; -template<> struct SCHEMA::predicate<843> { using type = facebook::glean::cpp::schema::Cxx1::RecordDefinition; }; -template<> struct SCHEMA::predicate<844> { using type = facebook::glean::cpp::schema::Csharp::UnityPackageToProject; }; -template<> struct SCHEMA::predicate<845> { using type = facebook::glean::cpp::schema::Csharp::UnityPackage; }; -template<> struct SCHEMA::predicate<846> { using type = facebook::glean::cpp::schema::Csharp::UnityProjectSource; }; -template<> struct SCHEMA::predicate<847> { using type = facebook::glean::cpp::schema::Csharp::TypeParameter; }; -template<> struct SCHEMA::predicate<848> { using type = facebook::glean::cpp::schema::Csharp::SourceFileToProject; }; -template<> struct SCHEMA::predicate<849> { using type = facebook::glean::cpp::schema::Csharp::SolutionToProject; }; -template<> struct SCHEMA::predicate<850> { using type = facebook::glean::cpp::schema::Csharp::Solution; }; -template<> struct SCHEMA::predicate<851> { using type = facebook::glean::cpp::schema::Csharp::ProjectToSourceFile; }; -template<> struct SCHEMA::predicate<852> { using type = facebook::glean::cpp::schema::Csharp::ProjectToSolution; }; -template<> struct SCHEMA::predicate<853> { using type = facebook::glean::cpp::schema::Csharp::Project; }; -template<> struct SCHEMA::predicate<854> { using type = facebook::glean::cpp::schema::Csharp::Namespace; }; -template<> struct SCHEMA::predicate<855> { using type = facebook::glean::cpp::schema::Csharp::NameLowerCase; }; -template<> struct SCHEMA::predicate<856> { using type = facebook::glean::cpp::schema::Csharp::Name; }; -template<> struct SCHEMA::predicate<857> { using type = facebook::glean::cpp::schema::Csharp::MSBuildProjectSource; }; -template<> struct SCHEMA::predicate<858> { using type = facebook::glean::cpp::schema::Csharp::MemberAccessLocation; }; -template<> struct SCHEMA::predicate<859> { using type = facebook::glean::cpp::schema::Csharp::MethodInvocationLocation; }; -template<> struct SCHEMA::predicate<860> { using type = facebook::glean::cpp::schema::Csharp::Implements; }; -template<> struct SCHEMA::predicate<861> { using type = facebook::glean::cpp::schema::Csharp::FunctionPointerType; }; -template<> struct SCHEMA::predicate<862> { using type = facebook::glean::cpp::schema::Csharp::FullName; }; -template<> struct SCHEMA::predicate<863> { using type = facebook::glean::cpp::schema::Csharp::Class; }; -template<> struct SCHEMA::predicate<864> { using type = facebook::glean::cpp::schema::Csharp::Interface; }; -template<> struct SCHEMA::predicate<865> { using type = facebook::glean::cpp::schema::Csharp::Record; }; -template<> struct SCHEMA::predicate<866> { using type = facebook::glean::cpp::schema::Csharp::Struct; }; -template<> struct SCHEMA::predicate<867> { using type = facebook::glean::cpp::schema::Csharp::ArrayType; }; -template<> struct SCHEMA::predicate<868> { using type = facebook::glean::cpp::schema::Csharp::DefinitionLocation; }; -template<> struct SCHEMA::predicate<869> { using type = facebook::glean::cpp::schema::Csharp::DefinitionLocationName; }; -template<> struct SCHEMA::predicate<870> { using type = facebook::glean::cpp::schema::Csharp::FileDefinitions; }; -template<> struct SCHEMA::predicate<871> { using type = facebook::glean::cpp::schema::Csharp::FileEntityXRefs; }; -template<> struct SCHEMA::predicate<872> { using type = facebook::glean::cpp::schema::Csharp::SearchByName; }; -template<> struct SCHEMA::predicate<873> { using type = facebook::glean::cpp::schema::Csharp::Field; }; -template<> struct SCHEMA::predicate<874> { using type = facebook::glean::cpp::schema::Csharp::Local; }; -template<> struct SCHEMA::predicate<875> { using type = facebook::glean::cpp::schema::Csharp::Method; }; -template<> struct SCHEMA::predicate<876> { using type = facebook::glean::cpp::schema::Csharp::ObjectCreationLocation; }; -template<> struct SCHEMA::predicate<877> { using type = facebook::glean::cpp::schema::Csharp::Parameter; }; -template<> struct SCHEMA::predicate<878> { using type = facebook::glean::cpp::schema::Csharp::PointerType; }; -template<> struct SCHEMA::predicate<879> { using type = facebook::glean::cpp::schema::Csharp::Property; }; -template<> struct SCHEMA::predicate<880> { using type = facebook::glean::cpp::schema::Csharp::TypeLocation; }; -template<> struct SCHEMA::predicate<881> { using type = facebook::glean::cpp::schema::Contlint::File::Coverage::FileLintedBy; }; -template<> struct SCHEMA::predicate<882> { using type = facebook::glean::cpp::schema::Contbuild::Owner; }; -template<> struct SCHEMA::predicate<883> { using type = facebook::glean::cpp::schema::Contbuild::IndexerName; }; -template<> struct SCHEMA::predicate<884> { using type = facebook::glean::cpp::schema::Contbuild::FileToContbuild; }; -template<> struct SCHEMA::predicate<885> { using type = facebook::glean::cpp::schema::Contbuild::IndexFailure; }; -template<> struct SCHEMA::predicate<886> { using type = facebook::glean::cpp::schema::Contbuild::ContbuildName; }; -template<> struct SCHEMA::predicate<887> { using type = facebook::glean::cpp::schema::Contbuild::ContbuildLocator; }; -template<> struct SCHEMA::predicate<888> { using type = facebook::glean::cpp::schema::Contbuild::ContbuildFbpkg; }; -template<> struct SCHEMA::predicate<889> { using type = facebook::glean::cpp::schema::Configerator::ImportFilesStatement; }; -template<> struct SCHEMA::predicate<890> { using type = facebook::glean::cpp::schema::Codexref::SymbolName; }; -template<> struct SCHEMA::predicate<891> { using type = facebook::glean::cpp::schema::Codemetrics::CxxRecordReferenceTo; }; -template<> struct SCHEMA::predicate<892> { using type = facebook::glean::cpp::schema::Codemetrics::CxxRecordReference; }; -template<> struct SCHEMA::predicate<893> { using type = facebook::glean::cpp::schema::Codemarkup::Yaml::YamlDataAvailable; }; -template<> struct SCHEMA::predicate<894> { using type = facebook::glean::cpp::schema::Codexref::IncomingXRefs; }; -template<> struct SCHEMA::predicate<895> { using type = facebook::glean::cpp::schema::Codexref::OutgoingXRefs; }; -template<> struct SCHEMA::predicate<896> { using type = facebook::glean::cpp::schema::Search::Code::CxxNameLowerCase; }; -template<> struct SCHEMA::predicate<897> { using type = facebook::glean::cpp::schema::Search::Code::FlowNameLowerCase; }; +template<> struct SCHEMA::predicate<505> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInEnum; }; +template<> struct SCHEMA::predicate<506> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInNamespace; }; +template<> struct SCHEMA::predicate<507> { using type = facebook::glean::cpp::schema::Search::Hack::SearchModule; }; +template<> struct SCHEMA::predicate<508> { using type = facebook::glean::cpp::schema::Search::Hack::SearchNamespace; }; +template<> struct SCHEMA::predicate<509> { using type = facebook::glean::cpp::schema::Search::Hack::SearchNamespacedDecl; }; +template<> struct SCHEMA::predicate<510> { using type = facebook::glean::cpp::schema::Search::Hack::SearchPropertyInContainer; }; +template<> struct SCHEMA::predicate<511> { using type = facebook::glean::cpp::schema::Search::Hack::SearchTypeInNamespace; }; +template<> struct SCHEMA::predicate<512> { using type = facebook::glean::cpp::schema::Hack::InheritedMembers; }; +template<> struct SCHEMA::predicate<513> { using type = facebook::glean::cpp::schema::Hack::MethodDeclaration; }; +template<> struct SCHEMA::predicate<514> { using type = facebook::glean::cpp::schema::Hack::PropertyDeclaration; }; +template<> struct SCHEMA::predicate<515> { using type = facebook::glean::cpp::schema::Hack::TypeConstDeclaration; }; +template<> struct SCHEMA::predicate<516> { using type = facebook::glean::cpp::schema::Hack::ContainerChild; }; +template<> struct SCHEMA::predicate<517> { using type = facebook::glean::cpp::schema::Hack::FunctionDefinition; }; +template<> struct SCHEMA::predicate<518> { using type = facebook::glean::cpp::schema::Hack::InterfaceDefinition; }; +template<> struct SCHEMA::predicate<519> { using type = facebook::glean::cpp::schema::Hack::MethodDefinition; }; +template<> struct SCHEMA::predicate<520> { using type = facebook::glean::cpp::schema::Hack::TraitDefinition; }; +template<> struct SCHEMA::predicate<521> { using type = facebook::glean::cpp::schema::Hack::TypedefDefinition; }; +template<> struct SCHEMA::predicate<522> { using type = facebook::glean::cpp::schema::Hack::ClassDefinition; }; +template<> struct SCHEMA::predicate<523> { using type = facebook::glean::cpp::schema::Hack::ClassDeclaration; }; +template<> struct SCHEMA::predicate<524> { using type = facebook::glean::cpp::schema::Hack::ClassConstDefinition; }; +template<> struct SCHEMA::predicate<525> { using type = facebook::glean::cpp::schema::Hack::ClassConstDeclaration; }; +template<> struct SCHEMA::predicate<526> { using type = facebook::glean::cpp::schema::Hack::AttributeToDefinition; }; +template<> struct SCHEMA::predicate<527> { using type = facebook::glean::cpp::schema::Hack::AttributeToDeclaration; }; +template<> struct SCHEMA::predicate<528> { using type = facebook::glean::cpp::schema::Hack::AttributeHasParameter; }; +template<> struct SCHEMA::predicate<529> { using type = facebook::glean::cpp::schema::Hack::FileCall; }; +template<> struct SCHEMA::predicate<530> { using type = facebook::glean::cpp::schema::Graphql::VariableDef; }; +template<> struct SCHEMA::predicate<531> { using type = facebook::glean::cpp::schema::Graphql::Value; }; +template<> struct SCHEMA::predicate<532> { using type = facebook::glean::cpp::schema::Graphql::UnionTypeDef; }; +template<> struct SCHEMA::predicate<533> { using type = facebook::glean::cpp::schema::Graphql::ScalarTypeDef; }; +template<> struct SCHEMA::predicate<534> { using type = facebook::glean::cpp::schema::Graphql::Operation; }; +template<> struct SCHEMA::predicate<535> { using type = facebook::glean::cpp::schema::Graphql::ObjectTypeDef; }; +template<> struct SCHEMA::predicate<536> { using type = facebook::glean::cpp::schema::Graphql::NameLowerCase; }; +template<> struct SCHEMA::predicate<537> { using type = facebook::glean::cpp::schema::Graphql::InterfaceTypeDef; }; +template<> struct SCHEMA::predicate<538> { using type = facebook::glean::cpp::schema::Graphql::InputValueDef; }; +template<> struct SCHEMA::predicate<539> { using type = facebook::glean::cpp::schema::Graphql::InputObjectTypeDef; }; +template<> struct SCHEMA::predicate<540> { using type = facebook::glean::cpp::schema::Graphql::InlineFragment; }; +template<> struct SCHEMA::predicate<541> { using type = facebook::glean::cpp::schema::Graphql::FragmentSpread; }; +template<> struct SCHEMA::predicate<542> { using type = facebook::glean::cpp::schema::Graphql::Fragment; }; +template<> struct SCHEMA::predicate<543> { using type = facebook::glean::cpp::schema::Graphql::FieldDef; }; +template<> struct SCHEMA::predicate<544> { using type = facebook::glean::cpp::schema::Graphql::Field; }; +template<> struct SCHEMA::predicate<545> { using type = facebook::glean::cpp::schema::Graphql::EnumTypeDef; }; +template<> struct SCHEMA::predicate<546> { using type = facebook::glean::cpp::schema::Graphql::DirectiveDef; }; +template<> struct SCHEMA::predicate<547> { using type = facebook::glean::cpp::schema::Graphql::Directive; }; +template<> struct SCHEMA::predicate<548> { using type = facebook::glean::cpp::schema::Graphql::DeclarationLocation; }; +template<> struct SCHEMA::predicate<549> { using type = facebook::glean::cpp::schema::Graphql::DeclarationName; }; +template<> struct SCHEMA::predicate<550> { using type = facebook::glean::cpp::schema::Graphql::DeclarationUses; }; +template<> struct SCHEMA::predicate<551> { using type = facebook::glean::cpp::schema::Graphql::FileDeclarations; }; +template<> struct SCHEMA::predicate<552> { using type = facebook::glean::cpp::schema::Graphql::SearchByName; }; +template<> struct SCHEMA::predicate<553> { using type = facebook::glean::cpp::schema::Graphql::FileXRefs; }; +template<> struct SCHEMA::predicate<554> { using type = facebook::glean::cpp::schema::Graphql::DeclHasName; }; +template<> struct SCHEMA::predicate<555> { using type = facebook::glean::cpp::schema::Graphql::BelongToConfig; }; +template<> struct SCHEMA::predicate<556> { using type = facebook::glean::cpp::schema::Graphql::Argument; }; +template<> struct SCHEMA::predicate<557> { using type = facebook::glean::cpp::schema::Glean::Test::nothingTest; }; +template<> struct SCHEMA::predicate<558> { using type = facebook::glean::cpp::schema::Glean::Test::ViaStringPair; }; +template<> struct SCHEMA::predicate<559> { using type = facebook::glean::cpp::schema::Glean::Test::Unbound2; }; +template<> struct SCHEMA::predicate<560> { using type = facebook::glean::cpp::schema::Glean::Test::Unbound; }; +template<> struct SCHEMA::predicate<561> { using type = facebook::glean::cpp::schema::Glean::Test::TreeToTree; }; +template<> struct SCHEMA::predicate<562> { using type = facebook::glean::cpp::schema::Glean::Test::Tree; }; +template<> struct SCHEMA::predicate<563> { using type = facebook::glean::cpp::schema::Glean::Test::StringPairBox; }; +template<> struct SCHEMA::predicate<564> { using type = facebook::glean::cpp::schema::Glean::Test::StringPair; }; +template<> struct SCHEMA::predicate<565> { using type = facebook::glean::cpp::schema::Glean::Test::StoredRevStringPairWithRev; }; +template<> struct SCHEMA::predicate<566> { using type = facebook::glean::cpp::schema::Glean::Test::StoredRevStringPairWithA; }; +template<> struct SCHEMA::predicate<567> { using type = facebook::glean::cpp::schema::Glean::Test::StoredRevStringPairSum; }; +template<> struct SCHEMA::predicate<568> { using type = facebook::glean::cpp::schema::Glean::Test::StoredRevStringPair; }; +template<> struct SCHEMA::predicate<569> { using type = facebook::glean::cpp::schema::Glean::Test::StoredDualStringPair; }; +template<> struct SCHEMA::predicate<570> { using type = facebook::glean::cpp::schema::Glean::Test::SkipRevEdge; }; +template<> struct SCHEMA::predicate<571> { using type = facebook::glean::cpp::schema::Glean::Test::SameString; }; +template<> struct SCHEMA::predicate<572> { using type = facebook::glean::cpp::schema::Glean::Test::RevStringPairs; }; +template<> struct SCHEMA::predicate<573> { using type = facebook::glean::cpp::schema::Glean::Test::RevStringPairRec; }; +template<> struct SCHEMA::predicate<574> { using type = facebook::glean::cpp::schema::Glean::Test::RevStringPair; }; +template<> struct SCHEMA::predicate<575> { using type = facebook::glean::cpp::schema::Glean::Test::RevRevStringPair; }; +template<> struct SCHEMA::predicate<576> { using type = facebook::glean::cpp::schema::Glean::Test::RevEdge; }; +template<> struct SCHEMA::predicate<577> { using type = facebook::glean::cpp::schema::Glean::Test::ReflStringPair; }; +template<> struct SCHEMA::predicate<578> { using type = facebook::glean::cpp::schema::Glean::Test::RefRef; }; +template<> struct SCHEMA::predicate<579> { using type = facebook::glean::cpp::schema::Glean::Test::Ref; }; +template<> struct SCHEMA::predicate<580> { using type = facebook::glean::cpp::schema::Glean::Test::Qux; }; +template<> struct SCHEMA::predicate<581> { using type = facebook::glean::cpp::schema::Glean::Test::Predicate_0; }; +template<> struct SCHEMA::predicate<582> { using type = facebook::glean::cpp::schema::Glean::Test::NodePair; }; +template<> struct SCHEMA::predicate<583> { using type = facebook::glean::cpp::schema::Glean::Test::Node; }; +template<> struct SCHEMA::predicate<584> { using type = facebook::glean::cpp::schema::Glean::Test::Name; }; +template<> struct SCHEMA::predicate<585> { using type = facebook::glean::cpp::schema::Glean::Test::MatchOneAlt; }; +template<> struct SCHEMA::predicate<586> { using type = facebook::glean::cpp::schema::Glean::Test::LeftOr2; }; +template<> struct SCHEMA::predicate<587> { using type = facebook::glean::cpp::schema::Glean::Test::LeftOr; }; +template<> struct SCHEMA::predicate<588> { using type = facebook::glean::cpp::schema::Glean::Test::KeyValue; }; +template<> struct SCHEMA::predicate<589> { using type = facebook::glean::cpp::schema::Glean::Test::IsThree; }; +template<> struct SCHEMA::predicate<590> { using type = facebook::glean::cpp::schema::Glean::Test::IsParent; }; +template<> struct SCHEMA::predicate<591> { using type = facebook::glean::cpp::schema::Glean::Test::IsGlean; }; +template<> struct SCHEMA::predicate<592> { using type = facebook::glean::cpp::schema::Glean::Test::FooToFoo; }; +template<> struct SCHEMA::predicate<593> { using type = facebook::glean::cpp::schema::Glean::Test::Foo; }; +template<> struct SCHEMA::predicate<594> { using type = facebook::glean::cpp::schema::Glean::Test::Expr; }; +template<> struct SCHEMA::predicate<595> { using type = facebook::glean::cpp::schema::Glean::Test::EmptyStoredStringPair; }; +template<> struct SCHEMA::predicate<596> { using type = facebook::glean::cpp::schema::Glean::Test::EmptyPred; }; +template<> struct SCHEMA::predicate<597> { using type = facebook::glean::cpp::schema::Glean::Test::EdgeWrapper; }; +template<> struct SCHEMA::predicate<598> { using type = facebook::glean::cpp::schema::Glean::Test::EdgeFromNotA; }; +template<> struct SCHEMA::predicate<599> { using type = facebook::glean::cpp::schema::Glean::Test::Edge; }; +template<> struct SCHEMA::predicate<600> { using type = facebook::glean::cpp::schema::Glean::Test::DualStringPair; }; +template<> struct SCHEMA::predicate<601> { using type = facebook::glean::cpp::schema::Glean::Test::DerivedKeyValue2; }; +template<> struct SCHEMA::predicate<602> { using type = facebook::glean::cpp::schema::Glean::Test::DerivedKeyValue; }; +template<> struct SCHEMA::predicate<603> { using type = facebook::glean::cpp::schema::Glean::Test::Bar; }; +template<> struct SCHEMA::predicate<604> { using type = facebook::glean::cpp::schema::Glean::Test::Predicate_; }; +template<> struct SCHEMA::predicate<605> { using type = facebook::glean::cpp::schema::Gencode::GenCodeSignature; }; +template<> struct SCHEMA::predicate<606> { using type = facebook::glean::cpp::schema::Gencode::GenCodeCommand; }; +template<> struct SCHEMA::predicate<607> { using type = facebook::glean::cpp::schema::Gencode::GenCodeClass; }; +template<> struct SCHEMA::predicate<608> { using type = facebook::glean::cpp::schema::Gencode::GenCodeBySource; }; +template<> struct SCHEMA::predicate<609> { using type = facebook::glean::cpp::schema::Gencode::GenCode; }; +template<> struct SCHEMA::predicate<610> { using type = facebook::glean::cpp::schema::Flow::TypeImportDeclaration; }; +template<> struct SCHEMA::predicate<611> { using type = facebook::glean::cpp::schema::Flow::TypeExport; }; +template<> struct SCHEMA::predicate<612> { using type = facebook::glean::cpp::schema::Flow::TypeDeclarationReference; }; +template<> struct SCHEMA::predicate<613> { using type = facebook::glean::cpp::schema::Flow::TypeDeclarationInfo; }; +template<> struct SCHEMA::predicate<614> { using type = facebook::glean::cpp::schema::Flow::TypeDeclaration; }; +template<> struct SCHEMA::predicate<615> { using type = facebook::glean::cpp::schema::Flow::Type; }; +template<> struct SCHEMA::predicate<616> { using type = facebook::glean::cpp::schema::Flow::StringToFileModule; }; +template<> struct SCHEMA::predicate<617> { using type = facebook::glean::cpp::schema::Flow::SourceOfTypeExport; }; +template<> struct SCHEMA::predicate<618> { using type = facebook::glean::cpp::schema::Flow::SourceOfExport; }; +template<> struct SCHEMA::predicate<619> { using type = facebook::glean::cpp::schema::Search::Flow::FlowSearchByNameNonImport; }; +template<> struct SCHEMA::predicate<620> { using type = facebook::glean::cpp::schema::Flow::SearchTypeDeclarationByName; }; +template<> struct SCHEMA::predicate<621> { using type = facebook::glean::cpp::schema::Flow::SearchTypeDeclarationByLowerCaseName; }; +template<> struct SCHEMA::predicate<622> { using type = facebook::glean::cpp::schema::Flow::SearchTypeByModuleExport; }; +template<> struct SCHEMA::predicate<623> { using type = facebook::glean::cpp::schema::Flow::SearchModuleByLowerCaseName; }; +template<> struct SCHEMA::predicate<624> { using type = facebook::glean::cpp::schema::Flow::SearchMemberDeclarationByName; }; +template<> struct SCHEMA::predicate<625> { using type = facebook::glean::cpp::schema::Flow::SearchMemberDeclarationByLowerCaseName; }; +template<> struct SCHEMA::predicate<626> { using type = facebook::glean::cpp::schema::Flow::SearchDeclarationByName; }; +template<> struct SCHEMA::predicate<627> { using type = facebook::glean::cpp::schema::Flow::SearchDeclarationByLowerCaseName; }; +template<> struct SCHEMA::predicate<628> { using type = facebook::glean::cpp::schema::Flow::SearchByNameModule; }; +template<> struct SCHEMA::predicate<629> { using type = facebook::glean::cpp::schema::Flow::SearchByName; }; +template<> struct SCHEMA::predicate<630> { using type = facebook::glean::cpp::schema::Flow::SearchByModuleName; }; +template<> struct SCHEMA::predicate<631> { using type = facebook::glean::cpp::schema::Flow::SearchByModule; }; +template<> struct SCHEMA::predicate<632> { using type = facebook::glean::cpp::schema::Flow::SearchByFileModule; }; +template<> struct SCHEMA::predicate<633> { using type = facebook::glean::cpp::schema::Flow::Range; }; +template<> struct SCHEMA::predicate<634> { using type = facebook::glean::cpp::schema::Flow::Name; }; +template<> struct SCHEMA::predicate<635> { using type = facebook::glean::cpp::schema::Flow::ModuleTypeExport; }; +template<> struct SCHEMA::predicate<636> { using type = facebook::glean::cpp::schema::Flow::ModuleNameLowerCase; }; +template<> struct SCHEMA::predicate<637> { using type = facebook::glean::cpp::schema::Flow::ModuleLocationByFile; }; +template<> struct SCHEMA::predicate<638> { using type = facebook::glean::cpp::schema::Flow::ModuleLocation; }; +template<> struct SCHEMA::predicate<639> { using type = facebook::glean::cpp::schema::Flow::ModuleExport; }; +template<> struct SCHEMA::predicate<640> { using type = facebook::glean::cpp::schema::Flow::ModuleDoc; }; +template<> struct SCHEMA::predicate<641> { using type = facebook::glean::cpp::schema::Flow::ModuleContains; }; +template<> struct SCHEMA::predicate<642> { using type = facebook::glean::cpp::schema::Flow::ModuleComments; }; +template<> struct SCHEMA::predicate<643> { using type = facebook::glean::cpp::schema::Flow::Module; }; +template<> struct SCHEMA::predicate<644> { using type = facebook::glean::cpp::schema::Flow::MemberDeclarationReference; }; +template<> struct SCHEMA::predicate<645> { using type = facebook::glean::cpp::schema::Flow::MemberDeclarationInfo; }; +template<> struct SCHEMA::predicate<646> { using type = facebook::glean::cpp::schema::Flow::MemberDeclaration; }; +template<> struct SCHEMA::predicate<647> { using type = facebook::glean::cpp::schema::Flow::LocalDeclarationReference; }; +template<> struct SCHEMA::predicate<648> { using type = facebook::glean::cpp::schema::Flow::ImportDeclaration; }; +template<> struct SCHEMA::predicate<649> { using type = facebook::glean::cpp::schema::Flow::FlowXRefDeclInfo; }; +template<> struct SCHEMA::predicate<650> { using type = facebook::glean::cpp::schema::Flow::FlowTypeImportXRef; }; +template<> struct SCHEMA::predicate<651> { using type = facebook::glean::cpp::schema::Flow::FlowTypeExportLocation; }; +template<> struct SCHEMA::predicate<652> { using type = facebook::glean::cpp::schema::Flow::FlowTypeEntityImportUses; }; +template<> struct SCHEMA::predicate<653> { using type = facebook::glean::cpp::schema::Flow::FlowSameModule; }; +template<> struct SCHEMA::predicate<654> { using type = facebook::glean::cpp::schema::Flow::FlowModuleNamespaceXRef; }; +template<> struct SCHEMA::predicate<655> { using type = facebook::glean::cpp::schema::Flow::FlowImportXRef; }; +template<> struct SCHEMA::predicate<656> { using type = facebook::glean::cpp::schema::Flow::FlowExportLocation; }; +template<> struct SCHEMA::predicate<657> { using type = facebook::glean::cpp::schema::Flow::FlowEntityUsesAll; }; +template<> struct SCHEMA::predicate<658> { using type = facebook::glean::cpp::schema::Flow::FlowEntityImportUses; }; +template<> struct SCHEMA::predicate<659> { using type = facebook::glean::cpp::schema::Flow::FlowCompatibleExport; }; +template<> struct SCHEMA::predicate<660> { using type = facebook::glean::cpp::schema::Flow::FileXRef; }; +template<> struct SCHEMA::predicate<661> { using type = facebook::glean::cpp::schema::Flow::FileOfStringModule; }; +template<> struct SCHEMA::predicate<662> { using type = facebook::glean::cpp::schema::Flow::FileDeclaration; }; +template<> struct SCHEMA::predicate<663> { using type = facebook::glean::cpp::schema::Flow::Export; }; +template<> struct SCHEMA::predicate<664> { using type = facebook::glean::cpp::schema::Flow::Documentation; }; +template<> struct SCHEMA::predicate<665> { using type = facebook::glean::cpp::schema::Flow::DeclarationUses; }; +template<> struct SCHEMA::predicate<666> { using type = facebook::glean::cpp::schema::Flow::DeclarationSignature; }; +template<> struct SCHEMA::predicate<667> { using type = facebook::glean::cpp::schema::Flow::DeclarationNameSpan; }; +template<> struct SCHEMA::predicate<668> { using type = facebook::glean::cpp::schema::Flow::DeclarationLocation; }; +template<> struct SCHEMA::predicate<669> { using type = facebook::glean::cpp::schema::Flow::DeclarationInfo; }; +template<> struct SCHEMA::predicate<670> { using type = facebook::glean::cpp::schema::Flow::Declaration; }; +template<> struct SCHEMA::predicate<671> { using type = facebook::glean::cpp::schema::Fbthrift::UnionVal; }; +template<> struct SCHEMA::predicate<672> { using type = facebook::glean::cpp::schema::Fbthrift::TypeDefType; }; +template<> struct SCHEMA::predicate<673> { using type = facebook::glean::cpp::schema::Fbthrift::StructuredAnnotation; }; +template<> struct SCHEMA::predicate<674> { using type = facebook::glean::cpp::schema::Fbthrift::StructVal; }; +template<> struct SCHEMA::predicate<675> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceParent; }; +template<> struct SCHEMA::predicate<676> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceName; }; +template<> struct SCHEMA::predicate<677> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceInteractionFunctions; }; +template<> struct SCHEMA::predicate<678> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceDefinition; }; +template<> struct SCHEMA::predicate<679> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceChild; }; +template<> struct SCHEMA::predicate<680> { using type = facebook::glean::cpp::schema::Fbthrift::SearchByName; }; +template<> struct SCHEMA::predicate<681> { using type = facebook::glean::cpp::schema::Fbthrift::QualName; }; +template<> struct SCHEMA::predicate<682> { using type = facebook::glean::cpp::schema::Fbthrift::PackageName; }; +template<> struct SCHEMA::predicate<683> { using type = facebook::glean::cpp::schema::Fbthrift::Package; }; +template<> struct SCHEMA::predicate<684> { using type = facebook::glean::cpp::schema::Fbthrift::NamespaceValue; }; +template<> struct SCHEMA::predicate<685> { using type = facebook::glean::cpp::schema::Fbthrift::NamespaceName; }; +template<> struct SCHEMA::predicate<686> { using type = facebook::glean::cpp::schema::Fbthrift::Namespace; }; +template<> struct SCHEMA::predicate<687> { using type = facebook::glean::cpp::schema::Fbthrift::NamedDecl; }; +template<> struct SCHEMA::predicate<688> { using type = facebook::glean::cpp::schema::Fbthrift::NameLowerCase; }; +template<> struct SCHEMA::predicate<689> { using type = facebook::glean::cpp::schema::Fbthrift::InteractionName; }; +template<> struct SCHEMA::predicate<690> { using type = facebook::glean::cpp::schema::Fbthrift::InteractionDefinition; }; +template<> struct SCHEMA::predicate<691> { using type = facebook::glean::cpp::schema::Fbthrift::Identifier; }; +template<> struct SCHEMA::predicate<692> { using type = facebook::glean::cpp::schema::Fbthrift::FunctionName; }; +template<> struct SCHEMA::predicate<693> { using type = facebook::glean::cpp::schema::Fbthrift::Literal; }; +template<> struct SCHEMA::predicate<694> { using type = facebook::glean::cpp::schema::Fbthrift::FileXRefs; }; +template<> struct SCHEMA::predicate<695> { using type = facebook::glean::cpp::schema::Fbthrift::File; }; +template<> struct SCHEMA::predicate<696> { using type = facebook::glean::cpp::schema::Fbthrift::StructType; }; +template<> struct SCHEMA::predicate<697> { using type = facebook::glean::cpp::schema::Fbthrift::UnionType; }; +template<> struct SCHEMA::predicate<698> { using type = facebook::glean::cpp::schema::Fbthrift::FieldDecl; }; +template<> struct SCHEMA::predicate<699> { using type = facebook::glean::cpp::schema::Fbthrift::ExceptionVal; }; +template<> struct SCHEMA::predicate<700> { using type = facebook::glean::cpp::schema::Fbthrift::ExceptionType; }; +template<> struct SCHEMA::predicate<701> { using type = facebook::glean::cpp::schema::Fbthrift::TypeDefException; }; +template<> struct SCHEMA::predicate<702> { using type = facebook::glean::cpp::schema::Fbthrift::ExceptionName; }; +template<> struct SCHEMA::predicate<703> { using type = facebook::glean::cpp::schema::Fbthrift::EnumerationType; }; +template<> struct SCHEMA::predicate<704> { using type = facebook::glean::cpp::schema::Fbthrift::EnumValueDef; }; +template<> struct SCHEMA::predicate<705> { using type = facebook::glean::cpp::schema::Fbthrift::EnumValue; }; +template<> struct SCHEMA::predicate<706> { using type = facebook::glean::cpp::schema::Fbthrift::EnumVal; }; +template<> struct SCHEMA::predicate<707> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationComment; }; +template<> struct SCHEMA::predicate<708> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationFile; }; +template<> struct SCHEMA::predicate<709> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationMember; }; +template<> struct SCHEMA::predicate<710> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationName; }; +template<> struct SCHEMA::predicate<711> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationNameSpan; }; +template<> struct SCHEMA::predicate<712> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationUses; }; +template<> struct SCHEMA::predicate<713> { using type = facebook::glean::cpp::schema::Fbthrift::FileDeclaration; }; +template<> struct SCHEMA::predicate<714> { using type = facebook::glean::cpp::schema::Fbthrift::FunctionDeclarationName; }; +template<> struct SCHEMA::predicate<715> { using type = facebook::glean::cpp::schema::Hack::HackToThrift; }; +template<> struct SCHEMA::predicate<716> { using type = facebook::glean::cpp::schema::Hack::ThriftToHack; }; +template<> struct SCHEMA::predicate<717> { using type = facebook::glean::cpp::schema::Fbthrift::TypeSpecification; }; +template<> struct SCHEMA::predicate<718> { using type = facebook::glean::cpp::schema::Fbthrift::ConstantDefinition; }; +template<> struct SCHEMA::predicate<719> { using type = facebook::glean::cpp::schema::Fbthrift::Constant; }; +template<> struct SCHEMA::predicate<720> { using type = facebook::glean::cpp::schema::Erlang::NameLowerCase; }; +template<> struct SCHEMA::predicate<721> { using type = facebook::glean::cpp::schema::Erlang::FunctionDeclaration; }; +template<> struct SCHEMA::predicate<722> { using type = facebook::glean::cpp::schema::Erlang::XRefsViaFqnByFile; }; +template<> struct SCHEMA::predicate<723> { using type = facebook::glean::cpp::schema::Erlang::DeclarationComment; }; +template<> struct SCHEMA::predicate<724> { using type = facebook::glean::cpp::schema::Erlang::DeclarationLocation; }; +template<> struct SCHEMA::predicate<725> { using type = facebook::glean::cpp::schema::Erlang::DeclarationReference; }; +template<> struct SCHEMA::predicate<726> { using type = facebook::glean::cpp::schema::Erlang::DeclarationToFqn; }; +template<> struct SCHEMA::predicate<727> { using type = facebook::glean::cpp::schema::Erlang::DeclarationUses; }; +template<> struct SCHEMA::predicate<728> { using type = facebook::glean::cpp::schema::Erlang::DeclarationWithFqn; }; +template<> struct SCHEMA::predicate<729> { using type = facebook::glean::cpp::schema::Erlang::DeclarationsByFile; }; +template<> struct SCHEMA::predicate<730> { using type = facebook::glean::cpp::schema::Erlang::SearchByName; }; +template<> struct SCHEMA::predicate<731> { using type = facebook::glean::cpp::schema::Dyn::ObserverIdentifier; }; +template<> struct SCHEMA::predicate<732> { using type = facebook::glean::cpp::schema::Dyn::Environment; }; +template<> struct SCHEMA::predicate<733> { using type = facebook::glean::cpp::schema::Dyn::EntityDynamicReference; }; +template<> struct SCHEMA::predicate<734> { using type = facebook::glean::cpp::schema::Digest::FileDigest; }; +template<> struct SCHEMA::predicate<735> { using type = facebook::glean::cpp::schema::Glass::FileInfo; }; +template<> struct SCHEMA::predicate<736> { using type = facebook::glean::cpp::schema::Deadcode::GraphNodeByEntity; }; +template<> struct SCHEMA::predicate<737> { using type = facebook::glean::cpp::schema::Deadcode::GraphNode; }; +template<> struct SCHEMA::predicate<738> { using type = facebook::glean::cpp::schema::Deadcode::GraphInverseEdge; }; +template<> struct SCHEMA::predicate<739> { using type = facebook::glean::cpp::schema::Deadcode::GraphEntityByFile; }; +template<> struct SCHEMA::predicate<740> { using type = facebook::glean::cpp::schema::Deadcode::GraphEdge; }; +template<> struct SCHEMA::predicate<741> { using type = facebook::glean::cpp::schema::Dataswarm::TableDeclaration; }; +template<> struct SCHEMA::predicate<742> { using type = facebook::glean::cpp::schema::Dataswarm::SubqueryDeclaration; }; +template<> struct SCHEMA::predicate<743> { using type = facebook::glean::cpp::schema::Dataswarm::MacroDeclaration; }; +template<> struct SCHEMA::predicate<744> { using type = facebook::glean::cpp::schema::Dataswarm::DeclarationLocation; }; +template<> struct SCHEMA::predicate<745> { using type = facebook::glean::cpp::schema::Dataswarm::DeclarationName; }; +template<> struct SCHEMA::predicate<746> { using type = facebook::glean::cpp::schema::Dataswarm::XRefsByFile; }; +template<> struct SCHEMA::predicate<747> { using type = facebook::glean::cpp::schema::Cxx1::VariableLowerCase; }; +template<> struct SCHEMA::predicate<748> { using type = facebook::glean::cpp::schema::Cxx1::UsingDirective; }; +template<> struct SCHEMA::predicate<749> { using type = facebook::glean::cpp::schema::Cxx1::UsingDeclaration; }; +template<> struct SCHEMA::predicate<750> { using type = facebook::glean::cpp::schema::Cxx1::TypeAliasLowerCase; }; +template<> struct SCHEMA::predicate<751> { using type = facebook::glean::cpp::schema::Cxx1::TypeAliasDeclaration; }; +template<> struct SCHEMA::predicate<752> { using type = facebook::glean::cpp::schema::Cxx1::Type; }; +template<> struct SCHEMA::predicate<753> { using type = facebook::glean::cpp::schema::Cxx1::TranslationUnitXRefs; }; +template<> struct SCHEMA::predicate<754> { using type = facebook::glean::cpp::schema::Cxx1::TranslationUnitTrace; }; +template<> struct SCHEMA::predicate<755> { using type = facebook::glean::cpp::schema::Cxx1::TranslationUnitIncludeTree; }; +template<> struct SCHEMA::predicate<756> { using type = facebook::glean::cpp::schema::Cxx1::Trace; }; +template<> struct SCHEMA::predicate<757> { using type = facebook::glean::cpp::schema::Cxx1::RecordUnionLowerCase; }; +template<> struct SCHEMA::predicate<758> { using type = facebook::glean::cpp::schema::Cxx1::RecordStructLowerCase; }; +template<> struct SCHEMA::predicate<759> { using type = facebook::glean::cpp::schema::Cxx1::RecordDerived; }; +template<> struct SCHEMA::predicate<760> { using type = facebook::glean::cpp::schema::Cxx1::RecordClassLowerCase; }; +template<> struct SCHEMA::predicate<761> { using type = facebook::glean::cpp::schema::Cxx1::Signature; }; +template<> struct SCHEMA::predicate<762> { using type = facebook::glean::cpp::schema::Cxx1::PPDefineLocation; }; +template<> struct SCHEMA::predicate<763> { using type = facebook::glean::cpp::schema::Cxx1::ObjcSelector; }; +template<> struct SCHEMA::predicate<764> { using type = facebook::glean::cpp::schema::Cxx1::ObjcPropertyImplementation; }; +template<> struct SCHEMA::predicate<765> { using type = facebook::glean::cpp::schema::Cxx1::ObjcPropertyIVar; }; +template<> struct SCHEMA::predicate<766> { using type = facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition; }; +template<> struct SCHEMA::predicate<767> { using type = facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclarationName; }; +template<> struct SCHEMA::predicate<768> { using type = facebook::glean::cpp::schema::Cxx1::ObjcInterfaceToImplementation; }; +template<> struct SCHEMA::predicate<769> { using type = facebook::glean::cpp::schema::Cxx1::ObjcImplements; }; +template<> struct SCHEMA::predicate<770> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerInterfaceLowerCase; }; +template<> struct SCHEMA::predicate<771> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerInheritance; }; +template<> struct SCHEMA::predicate<772> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerDefinition; }; +template<> struct SCHEMA::predicate<773> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerDeclarationInterface; }; +template<> struct SCHEMA::predicate<774> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerBase; }; +template<> struct SCHEMA::predicate<775> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerDeclaration; }; +template<> struct SCHEMA::predicate<776> { using type = facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclaration; }; +template<> struct SCHEMA::predicate<777> { using type = facebook::glean::cpp::schema::Cxx1::ObjcPropertyDeclaration; }; +template<> struct SCHEMA::predicate<778> { using type = facebook::glean::cpp::schema::Cxx1::ObjContainerIdName; }; +template<> struct SCHEMA::predicate<779> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceQName; }; +template<> struct SCHEMA::predicate<780> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceLowerCase; }; +template<> struct SCHEMA::predicate<781> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceDefinition; }; +template<> struct SCHEMA::predicate<782> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceDeclarationName; }; +template<> struct SCHEMA::predicate<783> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceDeclarationByName; }; +template<> struct SCHEMA::predicate<784> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceDeclaration; }; +template<> struct SCHEMA::predicate<785> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceAliasDeclaration; }; +template<> struct SCHEMA::predicate<786> { using type = facebook::glean::cpp::schema::Cxx1::Name; }; +template<> struct SCHEMA::predicate<787> { using type = facebook::glean::cpp::schema::Cxx1::MethodOverrides; }; +template<> struct SCHEMA::predicate<788> { using type = facebook::glean::cpp::schema::Cxx1::MethodOverridden; }; +template<> struct SCHEMA::predicate<789> { using type = facebook::glean::cpp::schema::Cxx1::IncludeTreeTranslationUnit; }; +template<> struct SCHEMA::predicate<790> { using type = facebook::glean::cpp::schema::Cxx1::IncludeTreeParent; }; +template<> struct SCHEMA::predicate<791> { using type = facebook::glean::cpp::schema::Cxx1::IncludeTree; }; +template<> struct SCHEMA::predicate<792> { using type = facebook::glean::cpp::schema::Cxx1::PPTrace; }; +template<> struct SCHEMA::predicate<793> { using type = facebook::glean::cpp::schema::Cxx1::FunctionLowerCase; }; +template<> struct SCHEMA::predicate<794> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDefinition; }; +template<> struct SCHEMA::predicate<795> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclarationNameString; }; +template<> struct SCHEMA::predicate<796> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclarationName; }; +template<> struct SCHEMA::predicate<797> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclaration; }; +template<> struct SCHEMA::predicate<798> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclAttribute; }; +template<> struct SCHEMA::predicate<799> { using type = facebook::glean::cpp::schema::Cxx1::FunctionAttribute; }; +template<> struct SCHEMA::predicate<800> { using type = facebook::glean::cpp::schema::Cxx1::FileXRefs; }; +template<> struct SCHEMA::predicate<801> { using type = facebook::glean::cpp::schema::Cxx1::FilePPUseXRefs; }; +template<> struct SCHEMA::predicate<802> { using type = facebook::glean::cpp::schema::Cxx1::FilePPUseTraceXRefs; }; +template<> struct SCHEMA::predicate<803> { using type = facebook::glean::cpp::schema::Cxx1::FilePPTraceXRefs; }; +template<> struct SCHEMA::predicate<804> { using type = facebook::glean::cpp::schema::Cxx1::VariableDeclaration; }; +template<> struct SCHEMA::predicate<805> { using type = facebook::glean::cpp::schema::Cxx1::EnumeratorLowerCase; }; +template<> struct SCHEMA::predicate<806> { using type = facebook::glean::cpp::schema::Cxx1::EnumeratorInEnum; }; +template<> struct SCHEMA::predicate<807> { using type = facebook::glean::cpp::schema::Cxx1::EnumeratorByName; }; +template<> struct SCHEMA::predicate<808> { using type = facebook::glean::cpp::schema::Cxx1::Enumerator; }; +template<> struct SCHEMA::predicate<809> { using type = facebook::glean::cpp::schema::Cxx1::EnumLowerCase; }; +template<> struct SCHEMA::predicate<810> { using type = facebook::glean::cpp::schema::Cxx1::EnumDefinition; }; +template<> struct SCHEMA::predicate<811> { using type = facebook::glean::cpp::schema::Cxx1::EnumDeclaration; }; +template<> struct SCHEMA::predicate<812> { using type = facebook::glean::cpp::schema::Cxx1::DefnInRecord; }; +template<> struct SCHEMA::predicate<813> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationComment; }; +template<> struct SCHEMA::predicate<814> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationInTrace; }; +template<> struct SCHEMA::predicate<815> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationLocationName; }; +template<> struct SCHEMA::predicate<816> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationLocationNameSpan; }; +template<> struct SCHEMA::predicate<817> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationNameSpan; }; +template<> struct SCHEMA::predicate<818> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationSources; }; +template<> struct SCHEMA::predicate<819> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationSrcRange; }; +template<> struct SCHEMA::predicate<820> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationTargets; }; +template<> struct SCHEMA::predicate<821> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationToUSR; }; +template<> struct SCHEMA::predicate<822> { using type = facebook::glean::cpp::schema::Cxx1::Declarations; }; +template<> struct SCHEMA::predicate<823> { using type = facebook::glean::cpp::schema::Cxx1::DefToBaseDecl; }; +template<> struct SCHEMA::predicate<824> { using type = facebook::glean::cpp::schema::Cxx1::Same; }; +template<> struct SCHEMA::predicate<825> { using type = facebook::glean::cpp::schema::Cxx1::USRToDeclaration; }; +template<> struct SCHEMA::predicate<826> { using type = facebook::glean::cpp::schema::Cxx1::FileXRefMap; }; +template<> struct SCHEMA::predicate<827> { using type = facebook::glean::cpp::schema::Cxx1::SpellingXRef; }; +template<> struct SCHEMA::predicate<828> { using type = facebook::glean::cpp::schema::Cxx1::TargetUses; }; +template<> struct SCHEMA::predicate<829> { using type = facebook::glean::cpp::schema::Cxx1::ThriftToCxx; }; +template<> struct SCHEMA::predicate<830> { using type = facebook::glean::cpp::schema::Cxx1::XRefIndirectTarget; }; +template<> struct SCHEMA::predicate<831> { using type = facebook::glean::cpp::schema::Cxx1::XRefTargets; }; +template<> struct SCHEMA::predicate<832> { using type = facebook::glean::cpp::schema::Search::Cxx::GlobalDeclarationWithName; }; +template<> struct SCHEMA::predicate<833> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupNamespaceDeclaration; }; +template<> struct SCHEMA::predicate<834> { using type = facebook::glean::cpp::schema::Cxx1::DeclToFamily; }; +template<> struct SCHEMA::predicate<835> { using type = facebook::glean::cpp::schema::Cxx1::DeclInRecord; }; +template<> struct SCHEMA::predicate<836> { using type = facebook::glean::cpp::schema::Cxx1::DeclInObjcContainer; }; +template<> struct SCHEMA::predicate<837> { using type = facebook::glean::cpp::schema::Cxx1::DeclFamilyOf; }; +template<> struct SCHEMA::predicate<838> { using type = facebook::glean::cpp::schema::Cxx1::DeclFamily; }; +template<> struct SCHEMA::predicate<839> { using type = facebook::glean::cpp::schema::Cxx1::DeclByName; }; +template<> struct SCHEMA::predicate<840> { using type = facebook::glean::cpp::schema::Cxx1::CxxToThrift; }; +template<> struct SCHEMA::predicate<841> { using type = facebook::glean::cpp::schema::Cxx1::Attribute; }; +template<> struct SCHEMA::predicate<842> { using type = facebook::glean::cpp::schema::Cxx1::RecordDefinition; }; +template<> struct SCHEMA::predicate<843> { using type = facebook::glean::cpp::schema::Csharp::UnityPackageToProject; }; +template<> struct SCHEMA::predicate<844> { using type = facebook::glean::cpp::schema::Csharp::UnityPackage; }; +template<> struct SCHEMA::predicate<845> { using type = facebook::glean::cpp::schema::Csharp::UnityProjectSource; }; +template<> struct SCHEMA::predicate<846> { using type = facebook::glean::cpp::schema::Csharp::TypeParameter; }; +template<> struct SCHEMA::predicate<847> { using type = facebook::glean::cpp::schema::Csharp::SourceFileToProject; }; +template<> struct SCHEMA::predicate<848> { using type = facebook::glean::cpp::schema::Csharp::SolutionToProject; }; +template<> struct SCHEMA::predicate<849> { using type = facebook::glean::cpp::schema::Csharp::Solution; }; +template<> struct SCHEMA::predicate<850> { using type = facebook::glean::cpp::schema::Csharp::ProjectToSourceFile; }; +template<> struct SCHEMA::predicate<851> { using type = facebook::glean::cpp::schema::Csharp::ProjectToSolution; }; +template<> struct SCHEMA::predicate<852> { using type = facebook::glean::cpp::schema::Csharp::Project; }; +template<> struct SCHEMA::predicate<853> { using type = facebook::glean::cpp::schema::Csharp::Namespace; }; +template<> struct SCHEMA::predicate<854> { using type = facebook::glean::cpp::schema::Csharp::NameLowerCase; }; +template<> struct SCHEMA::predicate<855> { using type = facebook::glean::cpp::schema::Csharp::Name; }; +template<> struct SCHEMA::predicate<856> { using type = facebook::glean::cpp::schema::Csharp::MSBuildProjectSource; }; +template<> struct SCHEMA::predicate<857> { using type = facebook::glean::cpp::schema::Csharp::MemberAccessLocation; }; +template<> struct SCHEMA::predicate<858> { using type = facebook::glean::cpp::schema::Csharp::MethodInvocationLocation; }; +template<> struct SCHEMA::predicate<859> { using type = facebook::glean::cpp::schema::Csharp::Implements; }; +template<> struct SCHEMA::predicate<860> { using type = facebook::glean::cpp::schema::Csharp::FunctionPointerType; }; +template<> struct SCHEMA::predicate<861> { using type = facebook::glean::cpp::schema::Csharp::FullName; }; +template<> struct SCHEMA::predicate<862> { using type = facebook::glean::cpp::schema::Csharp::Class; }; +template<> struct SCHEMA::predicate<863> { using type = facebook::glean::cpp::schema::Csharp::Interface; }; +template<> struct SCHEMA::predicate<864> { using type = facebook::glean::cpp::schema::Csharp::Record; }; +template<> struct SCHEMA::predicate<865> { using type = facebook::glean::cpp::schema::Csharp::Struct; }; +template<> struct SCHEMA::predicate<866> { using type = facebook::glean::cpp::schema::Csharp::ArrayType; }; +template<> struct SCHEMA::predicate<867> { using type = facebook::glean::cpp::schema::Csharp::DefinitionLocation; }; +template<> struct SCHEMA::predicate<868> { using type = facebook::glean::cpp::schema::Csharp::DefinitionLocationName; }; +template<> struct SCHEMA::predicate<869> { using type = facebook::glean::cpp::schema::Csharp::FileDefinitions; }; +template<> struct SCHEMA::predicate<870> { using type = facebook::glean::cpp::schema::Csharp::FileEntityXRefs; }; +template<> struct SCHEMA::predicate<871> { using type = facebook::glean::cpp::schema::Csharp::SearchByName; }; +template<> struct SCHEMA::predicate<872> { using type = facebook::glean::cpp::schema::Csharp::Field; }; +template<> struct SCHEMA::predicate<873> { using type = facebook::glean::cpp::schema::Csharp::Local; }; +template<> struct SCHEMA::predicate<874> { using type = facebook::glean::cpp::schema::Csharp::Method; }; +template<> struct SCHEMA::predicate<875> { using type = facebook::glean::cpp::schema::Csharp::ObjectCreationLocation; }; +template<> struct SCHEMA::predicate<876> { using type = facebook::glean::cpp::schema::Csharp::Parameter; }; +template<> struct SCHEMA::predicate<877> { using type = facebook::glean::cpp::schema::Csharp::PointerType; }; +template<> struct SCHEMA::predicate<878> { using type = facebook::glean::cpp::schema::Csharp::Property; }; +template<> struct SCHEMA::predicate<879> { using type = facebook::glean::cpp::schema::Csharp::TypeLocation; }; +template<> struct SCHEMA::predicate<880> { using type = facebook::glean::cpp::schema::Contlint::File::Coverage::FileLintedBy; }; +template<> struct SCHEMA::predicate<881> { using type = facebook::glean::cpp::schema::Contbuild::Owner; }; +template<> struct SCHEMA::predicate<882> { using type = facebook::glean::cpp::schema::Contbuild::IndexerName; }; +template<> struct SCHEMA::predicate<883> { using type = facebook::glean::cpp::schema::Contbuild::FileToContbuild; }; +template<> struct SCHEMA::predicate<884> { using type = facebook::glean::cpp::schema::Contbuild::IndexFailure; }; +template<> struct SCHEMA::predicate<885> { using type = facebook::glean::cpp::schema::Contbuild::ContbuildName; }; +template<> struct SCHEMA::predicate<886> { using type = facebook::glean::cpp::schema::Contbuild::ContbuildLocator; }; +template<> struct SCHEMA::predicate<887> { using type = facebook::glean::cpp::schema::Contbuild::ContbuildFbpkg; }; +template<> struct SCHEMA::predicate<888> { using type = facebook::glean::cpp::schema::Configerator::ImportFilesStatement; }; +template<> struct SCHEMA::predicate<889> { using type = facebook::glean::cpp::schema::Codexref::SymbolName; }; +template<> struct SCHEMA::predicate<890> { using type = facebook::glean::cpp::schema::Codemetrics::CxxRecordReferenceTo; }; +template<> struct SCHEMA::predicate<891> { using type = facebook::glean::cpp::schema::Codemetrics::CxxRecordReference; }; +template<> struct SCHEMA::predicate<892> { using type = facebook::glean::cpp::schema::Codemarkup::Yaml::YamlDataAvailable; }; +template<> struct SCHEMA::predicate<893> { using type = facebook::glean::cpp::schema::Codexref::IncomingXRefs; }; +template<> struct SCHEMA::predicate<894> { using type = facebook::glean::cpp::schema::Codexref::OutgoingXRefs; }; +template<> struct SCHEMA::predicate<895> { using type = facebook::glean::cpp::schema::Search::Code::CxxNameLowerCase; }; +template<> struct SCHEMA::predicate<896> { using type = facebook::glean::cpp::schema::Search::Code::FlowNameLowerCase; }; +template<> struct SCHEMA::predicate<897> { using type = facebook::glean::cpp::schema::Search::Code::HackNameLowerCase; }; template<> struct SCHEMA::predicate<898> { using type = facebook::glean::cpp::schema::Search::Code::PythonNameLowerCase; }; template<> struct SCHEMA::predicate<899> { using type = facebook::glean::cpp::schema::Codemarkup::Types::RangeSpanContains; }; template<> struct SCHEMA::predicate<900> { using type = facebook::glean::cpp::schema::Codemarkup::Scip::LsifKindToKind; }; @@ -32293,149 +32306,150 @@ template<> struct SCHEMA::predicate<1180> { using type = facebook::glean::cpp::s template<> struct SCHEMA::predicate<1181> { using type = facebook::glean::cpp::schema::Search::Code::FlowSearchByScopeAndKind; }; template<> struct SCHEMA::predicate<1182> { using type = facebook::glean::cpp::schema::Search::Code::GraphQLSearchByLowerCaseName; }; template<> struct SCHEMA::predicate<1183> { using type = facebook::glean::cpp::schema::Search::Code::GraphQLSearchByName; }; -template<> struct SCHEMA::predicate<1184> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByLowerCaseName; }; -template<> struct SCHEMA::predicate<1185> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByLowerCaseScope; }; -template<> struct SCHEMA::predicate<1186> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByName; }; -template<> struct SCHEMA::predicate<1187> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByNameWithName; }; -template<> struct SCHEMA::predicate<1188> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByScope; }; -template<> struct SCHEMA::predicate<1189> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByScopeWithName; }; -template<> struct SCHEMA::predicate<1190> { using type = facebook::glean::cpp::schema::Search::Code::HsSearchByLowerCaseName; }; -template<> struct SCHEMA::predicate<1191> { using type = facebook::glean::cpp::schema::Search::Code::HsSearchByName; }; -template<> struct SCHEMA::predicate<1192> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByLowerCaseName; }; -template<> struct SCHEMA::predicate<1193> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByLowerCaseScope; }; -template<> struct SCHEMA::predicate<1194> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByName; }; -template<> struct SCHEMA::predicate<1195> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByNameWithFact; }; -template<> struct SCHEMA::predicate<1196> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByScope; }; -template<> struct SCHEMA::predicate<1197> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByScopeWithName; }; -template<> struct SCHEMA::predicate<1198> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByLowerCaseName; }; -template<> struct SCHEMA::predicate<1199> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByLowerCaseScope; }; -template<> struct SCHEMA::predicate<1200> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByName; }; -template<> struct SCHEMA::predicate<1201> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByNameWithFact; }; -template<> struct SCHEMA::predicate<1202> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByScope; }; -template<> struct SCHEMA::predicate<1203> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByScopeWithName; }; -template<> struct SCHEMA::predicate<1204> { using type = facebook::glean::cpp::schema::Search::Code::LsifSearchByLowerCaseName; }; -template<> struct SCHEMA::predicate<1205> { using type = facebook::glean::cpp::schema::Search::Code::LsifSearchByName; }; -template<> struct SCHEMA::predicate<1206> { using type = facebook::glean::cpp::schema::Search::Code::PpSearchByLowerCaseNameKind; }; -template<> struct SCHEMA::predicate<1207> { using type = facebook::glean::cpp::schema::Search::Code::PpSearchByNameKind; }; -template<> struct SCHEMA::predicate<1208> { using type = facebook::glean::cpp::schema::Search::Code::PythonSearchByLowerCaseNameKindAndScopeFact; }; -template<> struct SCHEMA::predicate<1209> { using type = facebook::glean::cpp::schema::Search::Code::PythonSearchByLowerCaseScopeAndKind; }; -template<> struct SCHEMA::predicate<1210> { using type = facebook::glean::cpp::schema::Search::Code::PythonSearchByNameKindAndScopeFact; }; -template<> struct SCHEMA::predicate<1211> { using type = facebook::glean::cpp::schema::Search::Code::PythonSearchByScopeAndKind; }; -template<> struct SCHEMA::predicate<1212> { using type = facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseNameAndLanguage; }; -template<> struct SCHEMA::predicate<1213> { using type = facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseNameKindAndLanguage; }; -template<> struct SCHEMA::predicate<1214> { using type = facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseScope; }; -template<> struct SCHEMA::predicate<1215> { using type = facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseScopeAndKind; }; -template<> struct SCHEMA::predicate<1216> { using type = facebook::glean::cpp::schema::Search::Code::SearchByNameAndLanguage; }; -template<> struct SCHEMA::predicate<1217> { using type = facebook::glean::cpp::schema::Search::Code::SearchByNameKindAndLanguage; }; -template<> struct SCHEMA::predicate<1218> { using type = facebook::glean::cpp::schema::Search::Code::SearchByScope; }; -template<> struct SCHEMA::predicate<1219> { using type = facebook::glean::cpp::schema::Search::Code::SearchByScopeAndKind; }; -template<> struct SCHEMA::predicate<1220> { using type = facebook::glean::cpp::schema::Search::Code::ThriftSearchByLowerCaseName; }; -template<> struct SCHEMA::predicate<1221> { using type = facebook::glean::cpp::schema::Search::Code::ThriftSearchByName; }; -template<> struct SCHEMA::predicate<1222> { using type = facebook::glean::cpp::schema::Codemarkup::FileCall; }; -template<> struct SCHEMA::predicate<1223> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::ConvertCallArguments; }; -template<> struct SCHEMA::predicate<1224> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::ConvertMaybeCallArguments; }; -template<> struct SCHEMA::predicate<1225> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackFileCall; }; -template<> struct SCHEMA::predicate<1226> { using type = facebook::glean::cpp::schema::Codemarkup::Python::ConvertCallArguments; }; -template<> struct SCHEMA::predicate<1227> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonFileCall; }; -template<> struct SCHEMA::predicate<1228> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::ConvertArgument; }; -template<> struct SCHEMA::predicate<1229> { using type = facebook::glean::cpp::schema::Codemarkup::Python::ConvertArgument; }; -template<> struct SCHEMA::predicate<1230> { using type = facebook::glean::cpp::schema::Codemarkup::EntityToAnnotations; }; -template<> struct SCHEMA::predicate<1231> { using type = facebook::glean::cpp::schema::Code::Quality::Issue; }; -template<> struct SCHEMA::predicate<1232> { using type = facebook::glean::cpp::schema::Cxx1::FunctionName; }; -template<> struct SCHEMA::predicate<1233> { using type = facebook::glean::cpp::schema::Cxx1::RecordDeclaration; }; -template<> struct SCHEMA::predicate<1234> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationScope; }; -template<> struct SCHEMA::predicate<1235> { using type = facebook::glean::cpp::schema::Cxx1::EnumDeclarationByName; }; -template<> struct SCHEMA::predicate<1236> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclarationByNameScope; }; -template<> struct SCHEMA::predicate<1237> { using type = facebook::glean::cpp::schema::Cxx1::FunctionQName; }; -template<> struct SCHEMA::predicate<1238> { using type = facebook::glean::cpp::schema::Cxx1::QName; }; -template<> struct SCHEMA::predicate<1239> { using type = facebook::glean::cpp::schema::Cxx1::RecordDeclarationClass; }; -template<> struct SCHEMA::predicate<1240> { using type = facebook::glean::cpp::schema::Cxx1::RecordDeclarationStruct; }; -template<> struct SCHEMA::predicate<1241> { using type = facebook::glean::cpp::schema::Cxx1::RecordDeclarationUnion; }; -template<> struct SCHEMA::predicate<1242> { using type = facebook::glean::cpp::schema::Cxx1::TypeAliasDeclarationByName; }; -template<> struct SCHEMA::predicate<1243> { using type = facebook::glean::cpp::schema::Cxx1::VariableDeclarationNonLocalByName; }; -template<> struct SCHEMA::predicate<1244> { using type = facebook::glean::cpp::schema::Search::Code::CxxSearchByLowerCaseNameKindAndScopeFact; }; -template<> struct SCHEMA::predicate<1245> { using type = facebook::glean::cpp::schema::Search::Code::CxxSearchByNameKindAndScopeFact; }; -template<> struct SCHEMA::predicate<1246> { using type = facebook::glean::cpp::schema::Search::Cxx::QueryToScopeCase; }; -template<> struct SCHEMA::predicate<1247> { using type = facebook::glean::cpp::schema::Search::Cxx::SearchByNameAndScope; }; -template<> struct SCHEMA::predicate<1248> { using type = facebook::glean::cpp::schema::Search::Cxx::SearchByScope; }; -template<> struct SCHEMA::predicate<1249> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchClass; }; -template<> struct SCHEMA::predicate<1250> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchEnum; }; -template<> struct SCHEMA::predicate<1251> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchEnumerator; }; -template<> struct SCHEMA::predicate<1252> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchFunction; }; -template<> struct SCHEMA::predicate<1253> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchNamespace; }; -template<> struct SCHEMA::predicate<1254> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchStruct; }; -template<> struct SCHEMA::predicate<1255> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchTypeAlias; }; -template<> struct SCHEMA::predicate<1256> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchUnion; }; -template<> struct SCHEMA::predicate<1257> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchVariable; }; -template<> struct SCHEMA::predicate<1258> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupDeclaration; }; -template<> struct SCHEMA::predicate<1259> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupDefinition; }; -template<> struct SCHEMA::predicate<1260> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupEnumerator; }; -template<> struct SCHEMA::predicate<1261> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionDeclaration; }; -template<> struct SCHEMA::predicate<1262> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionDefinition; }; -template<> struct SCHEMA::predicate<1263> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureDeclaration; }; -template<> struct SCHEMA::predicate<1264> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureDefinition; }; -template<> struct SCHEMA::predicate<1265> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureQualifierDeclaration; }; -template<> struct SCHEMA::predicate<1266> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureQualifierDefinition; }; -template<> struct SCHEMA::predicate<1267> { using type = facebook::glean::cpp::schema::Fbthrift::FunctionSpecification; }; -template<> struct SCHEMA::predicate<1268> { using type = facebook::glean::cpp::schema::Buckuses::UsesOfTargetHeader; }; -template<> struct SCHEMA::predicate<1269> { using type = facebook::glean::cpp::schema::Buckuses::UsesOfTarget; }; -template<> struct SCHEMA::predicate<1270> { using type = facebook::glean::cpp::schema::Buck::Meta::Oncall; }; -template<> struct SCHEMA::predicate<1271> { using type = facebook::glean::cpp::schema::Buck::Meta::ModeType; }; -template<> struct SCHEMA::predicate<1272> { using type = facebook::glean::cpp::schema::Buck::Meta::TargetModes; }; -template<> struct SCHEMA::predicate<1273> { using type = facebook::glean::cpp::schema::Buck::Meta::LocatorOncall; }; -template<> struct SCHEMA::predicate<1274> { using type = facebook::glean::cpp::schema::Buck::Meta::FileOncall; }; -template<> struct SCHEMA::predicate<1275> { using type = facebook::glean::cpp::schema::Buck::Type; }; -template<> struct SCHEMA::predicate<1276> { using type = facebook::glean::cpp::schema::Buck::TranslationUnit; }; -template<> struct SCHEMA::predicate<1277> { using type = facebook::glean::cpp::schema::Buck::TargetUses; }; -template<> struct SCHEMA::predicate<1278> { using type = facebook::glean::cpp::schema::Buck::TargetSourcesBaseModule; }; -template<> struct SCHEMA::predicate<1279> { using type = facebook::glean::cpp::schema::Buck::TargetSources; }; -template<> struct SCHEMA::predicate<1280> { using type = facebook::glean::cpp::schema::Buck::TargetOuts; }; -template<> struct SCHEMA::predicate<1281> { using type = facebook::glean::cpp::schema::Buck::TargetOut; }; -template<> struct SCHEMA::predicate<1282> { using type = facebook::glean::cpp::schema::Buck::TargetMode; }; -template<> struct SCHEMA::predicate<1283> { using type = facebook::glean::cpp::schema::Buck::TargetLocation; }; -template<> struct SCHEMA::predicate<1284> { using type = facebook::glean::cpp::schema::Buck::TargetLinkWhole; }; -template<> struct SCHEMA::predicate<1285> { using type = facebook::glean::cpp::schema::Buck::TargetIndexerName; }; -template<> struct SCHEMA::predicate<1286> { using type = facebook::glean::cpp::schema::Buck::TargetIndexer; }; -template<> struct SCHEMA::predicate<1287> { using type = facebook::glean::cpp::schema::Buck::TargetHash; }; -template<> struct SCHEMA::predicate<1288> { using type = facebook::glean::cpp::schema::Buck::TargetCall; }; -template<> struct SCHEMA::predicate<1289> { using type = facebook::glean::cpp::schema::Buck::TargetByType; }; -template<> struct SCHEMA::predicate<1290> { using type = facebook::glean::cpp::schema::Buck::TargetAttribute; }; -template<> struct SCHEMA::predicate<1291> { using type = facebook::glean::cpp::schema::Buck::Target; }; -template<> struct SCHEMA::predicate<1292> { using type = facebook::glean::cpp::schema::Buck::SourceFileLocation; }; -template<> struct SCHEMA::predicate<1293> { using type = facebook::glean::cpp::schema::Buck::SearchByLocalName; }; -template<> struct SCHEMA::predicate<1294> { using type = facebook::glean::cpp::schema::Buck::RuleKey; }; -template<> struct SCHEMA::predicate<1295> { using type = facebook::glean::cpp::schema::Buck::Platform; }; -template<> struct SCHEMA::predicate<1296> { using type = facebook::glean::cpp::schema::Buck::Owner; }; -template<> struct SCHEMA::predicate<1297> { using type = facebook::glean::cpp::schema::Buck::OutsTarget; }; -template<> struct SCHEMA::predicate<1298> { using type = facebook::glean::cpp::schema::Buck::OutputLabel; }; -template<> struct SCHEMA::predicate<1299> { using type = facebook::glean::cpp::schema::Buck::OutTarget; }; -template<> struct SCHEMA::predicate<1300> { using type = facebook::glean::cpp::schema::Buck::LocatorWithLabel; }; -template<> struct SCHEMA::predicate<1301> { using type = facebook::glean::cpp::schema::Buck::LocatorReverseDeps; }; -template<> struct SCHEMA::predicate<1302> { using type = facebook::glean::cpp::schema::Buck::LocatorReverseDep; }; -template<> struct SCHEMA::predicate<1303> { using type = facebook::glean::cpp::schema::Buck::Locator; }; -template<> struct SCHEMA::predicate<1304> { using type = facebook::glean::cpp::schema::Buck::LocalNameLowerCase; }; -template<> struct SCHEMA::predicate<1305> { using type = facebook::glean::cpp::schema::Buck::LocalName; }; -template<> struct SCHEMA::predicate<1306> { using type = facebook::glean::cpp::schema::Buck::Labels; }; -template<> struct SCHEMA::predicate<1307> { using type = facebook::glean::cpp::schema::Buck::Label; }; -template<> struct SCHEMA::predicate<1308> { using type = facebook::glean::cpp::schema::Buck::IndexerName; }; -template<> struct SCHEMA::predicate<1309> { using type = facebook::glean::cpp::schema::Buck::FileXRefs; }; -template<> struct SCHEMA::predicate<1310> { using type = facebook::glean::cpp::schema::Buck::FileToTarget; }; -template<> struct SCHEMA::predicate<1311> { using type = facebook::glean::cpp::schema::Buck::FileTarget; }; -template<> struct SCHEMA::predicate<1312> { using type = facebook::glean::cpp::schema::Buck::FileResolved; }; -template<> struct SCHEMA::predicate<1313> { using type = facebook::glean::cpp::schema::Buck::FileEntity; }; -template<> struct SCHEMA::predicate<1314> { using type = facebook::glean::cpp::schema::Buck::FileDefinition; }; -template<> struct SCHEMA::predicate<1315> { using type = facebook::glean::cpp::schema::Buck::File; }; -template<> struct SCHEMA::predicate<1316> { using type = facebook::glean::cpp::schema::Buck::FailureSources; }; -template<> struct SCHEMA::predicate<1317> { using type = facebook::glean::cpp::schema::Buck::IndexFailureX; }; -template<> struct SCHEMA::predicate<1318> { using type = facebook::glean::cpp::schema::Buck::DestinationUses; }; -template<> struct SCHEMA::predicate<1319> { using type = facebook::glean::cpp::schema::Buck::TargetDependencies; }; -template<> struct SCHEMA::predicate<1320> { using type = facebook::glean::cpp::schema::Buck::DefinitionLocation; }; -template<> struct SCHEMA::predicate<1321> { using type = facebook::glean::cpp::schema::Buck::Definition; }; -template<> struct SCHEMA::predicate<1322> { using type = facebook::glean::cpp::schema::Buck::Consumer; }; -template<> struct SCHEMA::predicate<1323> { using type = facebook::glean::cpp::schema::Buck::CallArgument; }; -template<> struct SCHEMA::predicate<1324> { using type = facebook::glean::cpp::schema::Buck::AttributeName; }; -template<> struct SCHEMA::predicate<1325> { using type = facebook::glean::cpp::schema::Buck::AttributeValue; }; -template<> struct SCHEMA::predicate<1326> { using type = facebook::glean::cpp::schema::Buck::ArgumentValue; }; +template<> struct SCHEMA::predicate<1184> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByLowerCaseNameAndKind; }; +template<> struct SCHEMA::predicate<1185> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByLowerCaseScopeAndKind; }; +template<> struct SCHEMA::predicate<1186> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByNameAndKind; }; +template<> struct SCHEMA::predicate<1187> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByNameKindWithNamespace; }; +template<> struct SCHEMA::predicate<1188> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByNameKindWithQName; }; +template<> struct SCHEMA::predicate<1189> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByScopeAndKind; }; +template<> struct SCHEMA::predicate<1190> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByScopeWithNameKinds; }; +template<> struct SCHEMA::predicate<1191> { using type = facebook::glean::cpp::schema::Search::Code::HsSearchByLowerCaseName; }; +template<> struct SCHEMA::predicate<1192> { using type = facebook::glean::cpp::schema::Search::Code::HsSearchByName; }; +template<> struct SCHEMA::predicate<1193> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByLowerCaseName; }; +template<> struct SCHEMA::predicate<1194> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByLowerCaseScope; }; +template<> struct SCHEMA::predicate<1195> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByName; }; +template<> struct SCHEMA::predicate<1196> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByNameWithFact; }; +template<> struct SCHEMA::predicate<1197> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByScope; }; +template<> struct SCHEMA::predicate<1198> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByScopeWithName; }; +template<> struct SCHEMA::predicate<1199> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByLowerCaseName; }; +template<> struct SCHEMA::predicate<1200> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByLowerCaseScope; }; +template<> struct SCHEMA::predicate<1201> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByName; }; +template<> struct SCHEMA::predicate<1202> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByNameWithFact; }; +template<> struct SCHEMA::predicate<1203> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByScope; }; +template<> struct SCHEMA::predicate<1204> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByScopeWithName; }; +template<> struct SCHEMA::predicate<1205> { using type = facebook::glean::cpp::schema::Search::Code::LsifSearchByLowerCaseName; }; +template<> struct SCHEMA::predicate<1206> { using type = facebook::glean::cpp::schema::Search::Code::LsifSearchByName; }; +template<> struct SCHEMA::predicate<1207> { using type = facebook::glean::cpp::schema::Search::Code::PpSearchByLowerCaseNameKind; }; +template<> struct SCHEMA::predicate<1208> { using type = facebook::glean::cpp::schema::Search::Code::PpSearchByNameKind; }; +template<> struct SCHEMA::predicate<1209> { using type = facebook::glean::cpp::schema::Search::Code::PythonSearchByLowerCaseNameKindAndScopeFact; }; +template<> struct SCHEMA::predicate<1210> { using type = facebook::glean::cpp::schema::Search::Code::PythonSearchByLowerCaseScopeAndKind; }; +template<> struct SCHEMA::predicate<1211> { using type = facebook::glean::cpp::schema::Search::Code::PythonSearchByNameKindAndScopeFact; }; +template<> struct SCHEMA::predicate<1212> { using type = facebook::glean::cpp::schema::Search::Code::PythonSearchByScopeAndKind; }; +template<> struct SCHEMA::predicate<1213> { using type = facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseNameAndLanguage; }; +template<> struct SCHEMA::predicate<1214> { using type = facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseNameKindAndLanguage; }; +template<> struct SCHEMA::predicate<1215> { using type = facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseScope; }; +template<> struct SCHEMA::predicate<1216> { using type = facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseScopeAndKind; }; +template<> struct SCHEMA::predicate<1217> { using type = facebook::glean::cpp::schema::Search::Code::SearchByNameAndLanguage; }; +template<> struct SCHEMA::predicate<1218> { using type = facebook::glean::cpp::schema::Search::Code::SearchByNameKindAndLanguage; }; +template<> struct SCHEMA::predicate<1219> { using type = facebook::glean::cpp::schema::Search::Code::SearchByScope; }; +template<> struct SCHEMA::predicate<1220> { using type = facebook::glean::cpp::schema::Search::Code::SearchByScopeAndKind; }; +template<> struct SCHEMA::predicate<1221> { using type = facebook::glean::cpp::schema::Search::Code::ThriftSearchByLowerCaseName; }; +template<> struct SCHEMA::predicate<1222> { using type = facebook::glean::cpp::schema::Search::Code::ThriftSearchByName; }; +template<> struct SCHEMA::predicate<1223> { using type = facebook::glean::cpp::schema::Codemarkup::FileCall; }; +template<> struct SCHEMA::predicate<1224> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::ConvertCallArguments; }; +template<> struct SCHEMA::predicate<1225> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::ConvertMaybeCallArguments; }; +template<> struct SCHEMA::predicate<1226> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackFileCall; }; +template<> struct SCHEMA::predicate<1227> { using type = facebook::glean::cpp::schema::Codemarkup::Python::ConvertCallArguments; }; +template<> struct SCHEMA::predicate<1228> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonFileCall; }; +template<> struct SCHEMA::predicate<1229> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::ConvertArgument; }; +template<> struct SCHEMA::predicate<1230> { using type = facebook::glean::cpp::schema::Codemarkup::Python::ConvertArgument; }; +template<> struct SCHEMA::predicate<1231> { using type = facebook::glean::cpp::schema::Codemarkup::EntityToAnnotations; }; +template<> struct SCHEMA::predicate<1232> { using type = facebook::glean::cpp::schema::Code::Quality::Issue; }; +template<> struct SCHEMA::predicate<1233> { using type = facebook::glean::cpp::schema::Cxx1::FunctionName; }; +template<> struct SCHEMA::predicate<1234> { using type = facebook::glean::cpp::schema::Cxx1::RecordDeclaration; }; +template<> struct SCHEMA::predicate<1235> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationScope; }; +template<> struct SCHEMA::predicate<1236> { using type = facebook::glean::cpp::schema::Cxx1::EnumDeclarationByName; }; +template<> struct SCHEMA::predicate<1237> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclarationByNameScope; }; +template<> struct SCHEMA::predicate<1238> { using type = facebook::glean::cpp::schema::Cxx1::FunctionQName; }; +template<> struct SCHEMA::predicate<1239> { using type = facebook::glean::cpp::schema::Cxx1::QName; }; +template<> struct SCHEMA::predicate<1240> { using type = facebook::glean::cpp::schema::Cxx1::RecordDeclarationClass; }; +template<> struct SCHEMA::predicate<1241> { using type = facebook::glean::cpp::schema::Cxx1::RecordDeclarationStruct; }; +template<> struct SCHEMA::predicate<1242> { using type = facebook::glean::cpp::schema::Cxx1::RecordDeclarationUnion; }; +template<> struct SCHEMA::predicate<1243> { using type = facebook::glean::cpp::schema::Cxx1::TypeAliasDeclarationByName; }; +template<> struct SCHEMA::predicate<1244> { using type = facebook::glean::cpp::schema::Cxx1::VariableDeclarationNonLocalByName; }; +template<> struct SCHEMA::predicate<1245> { using type = facebook::glean::cpp::schema::Search::Code::CxxSearchByLowerCaseNameKindAndScopeFact; }; +template<> struct SCHEMA::predicate<1246> { using type = facebook::glean::cpp::schema::Search::Code::CxxSearchByNameKindAndScopeFact; }; +template<> struct SCHEMA::predicate<1247> { using type = facebook::glean::cpp::schema::Search::Cxx::QueryToScopeCase; }; +template<> struct SCHEMA::predicate<1248> { using type = facebook::glean::cpp::schema::Search::Cxx::SearchByNameAndScope; }; +template<> struct SCHEMA::predicate<1249> { using type = facebook::glean::cpp::schema::Search::Cxx::SearchByScope; }; +template<> struct SCHEMA::predicate<1250> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchClass; }; +template<> struct SCHEMA::predicate<1251> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchEnum; }; +template<> struct SCHEMA::predicate<1252> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchEnumerator; }; +template<> struct SCHEMA::predicate<1253> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchFunction; }; +template<> struct SCHEMA::predicate<1254> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchNamespace; }; +template<> struct SCHEMA::predicate<1255> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchStruct; }; +template<> struct SCHEMA::predicate<1256> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchTypeAlias; }; +template<> struct SCHEMA::predicate<1257> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchUnion; }; +template<> struct SCHEMA::predicate<1258> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchVariable; }; +template<> struct SCHEMA::predicate<1259> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupDeclaration; }; +template<> struct SCHEMA::predicate<1260> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupDefinition; }; +template<> struct SCHEMA::predicate<1261> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupEnumerator; }; +template<> struct SCHEMA::predicate<1262> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionDeclaration; }; +template<> struct SCHEMA::predicate<1263> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionDefinition; }; +template<> struct SCHEMA::predicate<1264> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureDeclaration; }; +template<> struct SCHEMA::predicate<1265> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureDefinition; }; +template<> struct SCHEMA::predicate<1266> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureQualifierDeclaration; }; +template<> struct SCHEMA::predicate<1267> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureQualifierDefinition; }; +template<> struct SCHEMA::predicate<1268> { using type = facebook::glean::cpp::schema::Fbthrift::FunctionSpecification; }; +template<> struct SCHEMA::predicate<1269> { using type = facebook::glean::cpp::schema::Buckuses::UsesOfTargetHeader; }; +template<> struct SCHEMA::predicate<1270> { using type = facebook::glean::cpp::schema::Buckuses::UsesOfTarget; }; +template<> struct SCHEMA::predicate<1271> { using type = facebook::glean::cpp::schema::Buck::Meta::Oncall; }; +template<> struct SCHEMA::predicate<1272> { using type = facebook::glean::cpp::schema::Buck::Meta::ModeType; }; +template<> struct SCHEMA::predicate<1273> { using type = facebook::glean::cpp::schema::Buck::Meta::TargetModes; }; +template<> struct SCHEMA::predicate<1274> { using type = facebook::glean::cpp::schema::Buck::Meta::LocatorOncall; }; +template<> struct SCHEMA::predicate<1275> { using type = facebook::glean::cpp::schema::Buck::Meta::FileOncall; }; +template<> struct SCHEMA::predicate<1276> { using type = facebook::glean::cpp::schema::Buck::Type; }; +template<> struct SCHEMA::predicate<1277> { using type = facebook::glean::cpp::schema::Buck::TranslationUnit; }; +template<> struct SCHEMA::predicate<1278> { using type = facebook::glean::cpp::schema::Buck::TargetUses; }; +template<> struct SCHEMA::predicate<1279> { using type = facebook::glean::cpp::schema::Buck::TargetSourcesBaseModule; }; +template<> struct SCHEMA::predicate<1280> { using type = facebook::glean::cpp::schema::Buck::TargetSources; }; +template<> struct SCHEMA::predicate<1281> { using type = facebook::glean::cpp::schema::Buck::TargetOuts; }; +template<> struct SCHEMA::predicate<1282> { using type = facebook::glean::cpp::schema::Buck::TargetOut; }; +template<> struct SCHEMA::predicate<1283> { using type = facebook::glean::cpp::schema::Buck::TargetMode; }; +template<> struct SCHEMA::predicate<1284> { using type = facebook::glean::cpp::schema::Buck::TargetLocation; }; +template<> struct SCHEMA::predicate<1285> { using type = facebook::glean::cpp::schema::Buck::TargetLinkWhole; }; +template<> struct SCHEMA::predicate<1286> { using type = facebook::glean::cpp::schema::Buck::TargetIndexerName; }; +template<> struct SCHEMA::predicate<1287> { using type = facebook::glean::cpp::schema::Buck::TargetIndexer; }; +template<> struct SCHEMA::predicate<1288> { using type = facebook::glean::cpp::schema::Buck::TargetHash; }; +template<> struct SCHEMA::predicate<1289> { using type = facebook::glean::cpp::schema::Buck::TargetCall; }; +template<> struct SCHEMA::predicate<1290> { using type = facebook::glean::cpp::schema::Buck::TargetByType; }; +template<> struct SCHEMA::predicate<1291> { using type = facebook::glean::cpp::schema::Buck::TargetAttribute; }; +template<> struct SCHEMA::predicate<1292> { using type = facebook::glean::cpp::schema::Buck::Target; }; +template<> struct SCHEMA::predicate<1293> { using type = facebook::glean::cpp::schema::Buck::SourceFileLocation; }; +template<> struct SCHEMA::predicate<1294> { using type = facebook::glean::cpp::schema::Buck::SearchByLocalName; }; +template<> struct SCHEMA::predicate<1295> { using type = facebook::glean::cpp::schema::Buck::RuleKey; }; +template<> struct SCHEMA::predicate<1296> { using type = facebook::glean::cpp::schema::Buck::Platform; }; +template<> struct SCHEMA::predicate<1297> { using type = facebook::glean::cpp::schema::Buck::Owner; }; +template<> struct SCHEMA::predicate<1298> { using type = facebook::glean::cpp::schema::Buck::OutsTarget; }; +template<> struct SCHEMA::predicate<1299> { using type = facebook::glean::cpp::schema::Buck::OutputLabel; }; +template<> struct SCHEMA::predicate<1300> { using type = facebook::glean::cpp::schema::Buck::OutTarget; }; +template<> struct SCHEMA::predicate<1301> { using type = facebook::glean::cpp::schema::Buck::LocatorWithLabel; }; +template<> struct SCHEMA::predicate<1302> { using type = facebook::glean::cpp::schema::Buck::LocatorReverseDeps; }; +template<> struct SCHEMA::predicate<1303> { using type = facebook::glean::cpp::schema::Buck::LocatorReverseDep; }; +template<> struct SCHEMA::predicate<1304> { using type = facebook::glean::cpp::schema::Buck::Locator; }; +template<> struct SCHEMA::predicate<1305> { using type = facebook::glean::cpp::schema::Buck::LocalNameLowerCase; }; +template<> struct SCHEMA::predicate<1306> { using type = facebook::glean::cpp::schema::Buck::LocalName; }; +template<> struct SCHEMA::predicate<1307> { using type = facebook::glean::cpp::schema::Buck::Labels; }; +template<> struct SCHEMA::predicate<1308> { using type = facebook::glean::cpp::schema::Buck::Label; }; +template<> struct SCHEMA::predicate<1309> { using type = facebook::glean::cpp::schema::Buck::IndexerName; }; +template<> struct SCHEMA::predicate<1310> { using type = facebook::glean::cpp::schema::Buck::FileXRefs; }; +template<> struct SCHEMA::predicate<1311> { using type = facebook::glean::cpp::schema::Buck::FileToTarget; }; +template<> struct SCHEMA::predicate<1312> { using type = facebook::glean::cpp::schema::Buck::FileTarget; }; +template<> struct SCHEMA::predicate<1313> { using type = facebook::glean::cpp::schema::Buck::FileResolved; }; +template<> struct SCHEMA::predicate<1314> { using type = facebook::glean::cpp::schema::Buck::FileEntity; }; +template<> struct SCHEMA::predicate<1315> { using type = facebook::glean::cpp::schema::Buck::FileDefinition; }; +template<> struct SCHEMA::predicate<1316> { using type = facebook::glean::cpp::schema::Buck::File; }; +template<> struct SCHEMA::predicate<1317> { using type = facebook::glean::cpp::schema::Buck::FailureSources; }; +template<> struct SCHEMA::predicate<1318> { using type = facebook::glean::cpp::schema::Buck::IndexFailureX; }; +template<> struct SCHEMA::predicate<1319> { using type = facebook::glean::cpp::schema::Buck::DestinationUses; }; +template<> struct SCHEMA::predicate<1320> { using type = facebook::glean::cpp::schema::Buck::TargetDependencies; }; +template<> struct SCHEMA::predicate<1321> { using type = facebook::glean::cpp::schema::Buck::DefinitionLocation; }; +template<> struct SCHEMA::predicate<1322> { using type = facebook::glean::cpp::schema::Buck::Definition; }; +template<> struct SCHEMA::predicate<1323> { using type = facebook::glean::cpp::schema::Buck::Consumer; }; +template<> struct SCHEMA::predicate<1324> { using type = facebook::glean::cpp::schema::Buck::CallArgument; }; +template<> struct SCHEMA::predicate<1325> { using type = facebook::glean::cpp::schema::Buck::AttributeName; }; +template<> struct SCHEMA::predicate<1326> { using type = facebook::glean::cpp::schema::Buck::AttributeValue; }; +template<> struct SCHEMA::predicate<1327> { using type = facebook::glean::cpp::schema::Buck::ArgumentValue; }; } // namespace schema diff --git a/glean/schema/source/search.code.angle b/glean/schema/source/search.code.angle index b73dea2a9..5f8dc9126 100644 --- a/glean/schema/source/search.code.angle +++ b/glean/schema/source/search.code.angle @@ -45,8 +45,7 @@ predicate SearchByNameAndLanguage: entity: code.Entity, } { Name, Language, Entity } where - # see SearchByNameKindAndLanguage for C++, PreProcessor, Python - ( Hack = Language; HackSearchByName { Name, Entity } ) | + # see SearchByNameKindAndLanguage for C++, PreProcessor, Python, Hack ( Java = Language; JavaSearchByName { Name, Entity } ) | ( Kotlin = Language; KotlinSearchByName { Name, Entity } ) | ( Haskell = Language; HsSearchByName { Name, Entity } ) | @@ -66,7 +65,6 @@ predicate SearchByLowerCaseNameAndLanguage: } { Name, Language, Entity } where # See SearchByLowerCaseNameKindAndLanguage - ( Hack = Language; HackSearchByLowerCaseName { Name, Entity } ) | ( Java = Language; JavaSearchByLowerCaseName { Name, Entity } ) | ( Kotlin = Language; KotlinSearchByLowerCaseName { Name, Entity } ) | ( Haskell = Language; HsSearchByLowerCaseName { Name, Entity } ) | @@ -97,6 +95,9 @@ predicate SearchByNameKindAndLanguage: ) | ( JavaScript = Language; FlowSearchByNameKindAndScopeFact { NameStr, _, Kinds, Entity } + ) | ( + Hack = Language; + HackSearchByNameAndKind { NameStr, Kinds, Entity } ) # Kind-optimized search, case insensitive. @@ -119,6 +120,9 @@ predicate SearchByLowerCaseNameKindAndLanguage: ) | ( JavaScript = Language; FlowSearchByLowerCaseNameKindAndScopeFact { NameStr, _, Kinds, Entity } + ) | ( + Hack = Language; + HackSearchByLowerCaseNameAndKind { NameStr, Kinds, Entity } ) # scoped search @@ -132,7 +136,6 @@ predicate SearchByScope: } { Name, Scope, Language, Entity } where # See SearchByScopeAndKind for C++ - ( Hack = Language; HackSearchByScope { Name, Scope, Entity } ) | ( Java = Language; JavaSearchByScope { Name, Scope, Entity } ) | ( Kotlin = Language; KotlinSearchByScope { Name, Scope, Entity } ); code.EntityLanguage { Entity, Language }; @@ -147,7 +150,6 @@ predicate SearchByLowerCaseScope: } { Name, Scope, Language, Entity } where # See SearchByLowerCaseScopeAndKind for C++ - ( Hack = Language; HackSearchByLowerCaseScope { Name, Scope, Entity } ) | ( Java = Language; JavaSearchByLowerCaseScope { Name, Scope, Entity}) | ( Kotlin = Language; KotlinSearchByLowerCaseScope { Name, Scope, Entity}); code.EntityLanguage { Entity, Language }; @@ -170,6 +172,9 @@ predicate SearchByScopeAndKind: ) | ( JavaScript = Language; FlowSearchByScopeAndKind { Name, Scope, Kinds, Entity }; + ) | ( + Hack = Language; + HackSearchByScopeAndKind { Name, Scope, Kinds, Entity } ) # lower case by scope @@ -191,96 +196,230 @@ predicate SearchByLowerCaseScopeAndKind: ) | ( JavaScript = Language; FlowSearchByLowerCaseScopeAndKind { Name, Scope, Kinds, Entity } + ) | ( + Hack = Language; + HackSearchByLowerCaseScopeAndKind { Name, Scope, Kinds, Entity } ) # # Language-specific identifier search # -predicate HackSearchByName: - { - name: string, - entity: code.Entity, - } - { NameStr, Entity } where - Name = hack.Name NameStr; - HackSearchByNameWithName { Name, Entity }; - -predicate HackSearchByLowerCaseName: - { - name: string, - entity: code.Entity, - } - { Name, Entity } where - hack.NameLowerCase { Name, NameCase }; - HackSearchByNameWithName { NameCase, Entity }; - -# Helper to reuse the Name fact found previously -predicate HackSearchByNameWithName: - { - name : hack.Name, - entity : code.Entity - } - { Name, { hack = { decl = Decl }}} where - search.hack.SearchByName { name = Name, decl = Decl }; - -predicate HackSearchByScope: +predicate HackSearchByScopeAndKind: { name: string, scope: [string], + kinds: maybe codemarkup.types.SymbolKind, entity: code.Entity, } - { NameStr, Query, Entity } where - Name = hack.Name NameStr; + { NameStr, Query, Kinds, Entity } where Insensitive = false; - HackSearchByScopeWithName { Name, Insensitive, Query, Entity } + HackSearchByScopeWithNameKinds { NameStr, Insensitive, Query, Kinds, Entity } -predicate HackSearchByLowerCaseScope: +predicate HackSearchByLowerCaseScopeAndKind: { name: string, scope: [string], + kinds: maybe codemarkup.types.SymbolKind, entity: code.Entity, } - { NameStr, Query, Entity} where - hack.NameLowerCase { NameStr, Name }; + { NameStr, Query, Kinds, Entity} where + HackNameLowerCase { NameStr, Kinds, Name }; Insensitive = true; - HackSearchByScopeWithName { Name, Insensitive, Query, Entity } + HackSearchByScopeWithNameKinds { Name, Insensitive, Query, Kinds, Entity } -# private helper to share name facts between the calsl # # by always using the matched namespace we make prevent scope wildcards # e.g. C\count won't match Test\C\count # we could try to interpret prefix mode this way though # -predicate HackSearchByScopeWithName: +predicate HackSearchByScopeWithNameKinds: { - name: hack.Name, - insenstive : bool, + name: string, + insensitive : bool, scope: [string], + kinds: maybe codemarkup.types.SymbolKind, entity: code.Entity, } - { Name, Insensitive, Scope, { hack = { decl = Decl }}} where + { NameStr, Insensitive, Scope, Kinds, Entity } where if ( [] = Scope; true | false = Insensitive ) then ( - ( # exactly global declarations - search.hack.SearchInNamespace { Name, nothing, Decl } + ( # exactly and specifically global declarations + # these will get ranked higher by glass + HackSearchByNameKindWithNamespace { NameStr, nothing, Kinds, Entity } ) | ( # or global namespace alias children ("FlibSL\Vec" or "C" work) - hack.GlobalNamespaceAlias { Name, NSQName }; - NSDecl = hack.NamespaceDeclaration { name = NSQName }; - { namespace_ = NSDecl } = Decl + { just = Namespace } = Kinds; + hack.GlobalNamespaceAlias { hack.Name NameStr, NSQName }; + hack.NamespaceDeclaration { name = NSQName } = NSDecl; + { hack = { decl = { namespace_ = NSDecl } } } = Entity ) | ( - # or children of auto-imported namespaces (just HH for now) - search.hack.HackInAutoImportedNamespace { Name, HHNSQName }; - search.hack.SearchInNamespace { Name, HHNSQName, Decl } + { just = Module } = Kinds; + hack.SearchModuleByName { NameStr, Decl }; + { hack = { decl = Decl } } = Entity + ) | ( + # and check if NameStr is something in HH (i.e. auto-imported). Equiv + # to having the HH namespace as parent. And specifically not another + # namespace under HH. Has to be direct child of HH + HH = hack.NamespaceQName { name = hack.Name "HH", parent = nothing }; + HackSearchByNameKindWithNamespace { NameStr, { just = HH }, Kinds, Entity } ) ) else ( # search within specific context - search.hack.QueryToScopeCase { Scope, Insensitive, ScopeName, ScopeNamespace }; - search.hack.SearchInContext { Name, ScopeName, ScopeNamespace, Decl } + search.hack.QueryToScopeCase { Scope, Insensitive, ScopeName, ScopeNS }; + HackSearchByNameKindWithQName { NameStr, ScopeName, ScopeNS, Kinds, Entity } | + HackSearchByNameKindWithNamespace { NameStr, { just = { ScopeName, ScopeNS } }, Kinds, Entity }; ); +# +# string-based search +# + +predicate HackSearchByNameAndKind: + { + name: string, + kinds: maybe codemarkup.types.SymbolKind, + entity: code.Entity, + } + { NameStr, Kinds, Entity } where + HackSearchByNameKindWithQName { NameStr, _, _, Kinds, Entity } | + HackSearchByNameKindWithNamespace { NameStr, _, Kinds, Entity } | + # module is special as it has no scope term ever + ( { just = Module } = Kinds; + hack.SearchModuleByName { NameStr, Decl }; + { hack = { decl = Decl } } = Entity ) + +predicate HackSearchByLowerCaseNameAndKind: + { + name: string, + kinds: maybe codemarkup.types.SymbolKind, + entity: code.Entity, + } + { NameStr, Kinds, Entity } where + HackNameLowerCase { NameStr, Kinds, Name }; + HackSearchByNameAndKind { Name, Kinds, Entity } + +# arity-2 scope. Those that require a parent and an optional namespace. i.e. at +# least one non-empty scope term or all empty +predicate HackSearchByNameKindWithQName: + { + name: string, + scope : hack.Name, + scopeNamespace : maybe hack.NamespaceQName, + kinds: maybe codemarkup.types.SymbolKind, + entity: code.Entity, + } + { NameStr, Scope, ScopeNS, Kinds, Entity } where + { just = Kind } = Kinds; + ( + Method = Kind; + hack.SearchMethodByName { NameStr, { Scope, ScopeNS }, Decl } + ) | ( + Property = Kind; + hack.SearchPropertyByName { NameStr, { Scope, ScopeNS }, Decl } + ) | ( + Field = Kind; + hack.SearchEnumeratorByName { NameStr, { Scope, ScopeNS }, Decl } + ) | ( + Constant = Kind; + hack.SearchClassConstByName { NameStr, { Scope, ScopeNS }, Decl } + ) | ( + Type = Kind; + hack.SearchTypeConstByName { NameStr, { Scope, ScopeNS }, Decl } + ); + { hack = { decl = Decl } } = Entity + +# arity-1 scope: those that require a maybe namespace scope term +# +# With namespace_ of nothing, this searches for top-level declarations (global +# items without a context) +# +predicate HackSearchByNameKindWithNamespace: + { + name: string, + scope: maybe hack.NamespaceQName, + kinds: maybe codemarkup.types.SymbolKind, + entity: code.Entity + } + { NameStr, Scope, Kinds, Entity } where + { just = Kind } = Kinds; + ( + Class_ = Kind; + hack.SearchClassByName { NameStr, Scope, Decl } + ) | ( + Interface = Kind; + hack.SearchInterfaceByName { NameStr, Scope, Decl } + ) | ( + Trait = Kind; + hack.SearchTraitByName { NameStr, Scope, Decl } + ) | ( + Enum_ = Kind; + hack.SearchEnumByName { NameStr, Scope, Decl } + ) | ( + Namespace = Kind; + hack.SearchNamespaceByName { NameStr, Scope, Decl } + ) | ( + Function = Kind; + hack.SearchFunctionByName { NameStr, Scope, Decl } + ) | ( + Constant = Kind; + hack.SearchGlobalConstByName { NameStr, Scope, Decl } + ) | ( + Type = Kind; + hack.SearchTypedefByName { NameStr, Scope, Decl } + ); + { hack = { decl = Decl } } = Entity + +predicate HackNameLowerCase : + { + nameLowercase : string, + kinds: maybe codemarkup.types.SymbolKind, + name : string, + } + { NameStr, Kinds, Name } where + { just = Kind } = Kinds; + ( + Class_ = Kind; + hack.SearchClassByLowerCaseName { NameStr, Name } + ) | ( + Interface = Kind; + hack.SearchInterfaceByLowerCaseName { NameStr, Name } + ) | ( + Trait = Kind; + hack.SearchTraitByLowerCaseName { NameStr, Name } + ) | ( + Enum_ = Kind; + hack.SearchEnumByLowerCaseName { NameStr, Name } + ) | ( + Namespace = Kind; + hack.SearchNamespaceByLowerCaseName { NameStr, Name } + ) | ( + Function = Kind; + hack.SearchFunctionByLowerCaseName { NameStr, Name } + ) | ( + Method = Kind; + hack.SearchMethodByLowerCaseName { NameStr, Name } + ) | ( + Constant = Kind; + hack.SearchClassConstByLowerCaseName { NameStr, Name } | + hack.SearchGlobalConstByLowerCaseName { NameStr, Name } + ) | ( + Property = Kind; + hack.SearchPropertyByLowerCaseName { NameStr, Name } + ) | ( + Field = Kind; + hack.SearchEnumeratorByLowerCaseName { NameStr, Name } + ) | ( + Type = Kind; + hack.SearchTypeConstByLowerCaseName { NameStr, Name } | + hack.SearchTypedefByLowerCaseName { NameStr, Name } + ) | ( + Module = Kind; + hack.SearchModuleByLowerCaseName { NameStr, Name } + ); + + predicate PythonSearchByScopeAndKind: { name: string, diff --git a/glean/schema/source/search.hack.angle b/glean/schema/source/search.hack.angle index 593ec5be5..fe3362ff7 100644 --- a/glean/schema/source/search.hack.angle +++ b/glean/schema/source/search.hack.angle @@ -267,36 +267,6 @@ predicate SearchInContainerOrEnum : ( SearchInEnum { N, ParentName, ParentNamespace, D}; D) ) -# SearchInContext can be used to search for symbols with a non-empty context. -# -# - in container Vec\sort or GleanGlass::genGleanGlassClient -# - in enum (e.g. SRLocality::REGION) -# - in namespace (e.g. Vec\sort , or Dict\fb\append) -# -# SearchInContext can find classConst, method, property_, and typeConst in -# ContainerDeclaration, find enumerator in EnumDeclaration, -# and find the other declaration kinds in a non-empty -# NamespaceQName. -# -# Thus the contextName may be a class, interface, trait, -# enum, or namespace. -# -# This is complementary to SearchForGlobal and SearchByName. -predicate SearchInContext : - { - name : hack.Name, - contextName : hack.Name, - contextNamespace : maybe hack.NamespaceQName, - decl : hack.Declaration - } - { N, ParentName, ParentNamespace, Decl } where - Decl = - # container or enum via parent QName - (SearchInContainerOrEnum { N, ParentName, ParentNamespace, D }; D) - | # member of namespace - (NS = hack.NamespaceQName { ParentName, ParentNamespace }; - SearchNamespacedDecl { N, { just = NS }, D}; D ) - # # Generating qnames and namespace qnames. We don't have recursion but we'd # like to compile the namespace tokens into a recursive QName type so we unroll