Skip to content

Commit db36dac

Browse files
committed
[cxx indexer facebookincubator#1] clang-derive: deriving everything by default
This fixes `glean index cpp-cmake` which is currently missing a bunch of derivations because `clang-derive` defaults to just deriving the "manual" passes. To avoid copy/pasting all the passes into `Glean.Indexer.Cpp` I've moved them from `Glean.Regression.Driver.DeriveForCodemarkup` into `Derive.Lib` so we still specify them in just one place.
1 parent f689e13 commit db36dac

2 files changed

Lines changed: 41 additions & 41 deletions

File tree

glean/lang/clang/Derive/Lib.hs

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ module Derive.Lib
1010
( dispatchDerive
1111
, allPredicates
1212
, allManualPasses
13+
, allCxxPasses
1314
, DerivePass(..)
1415
, optionsPasses
1516
) where
@@ -69,6 +70,44 @@ allManualPasses =
6970
, DeriveFunctionCalls_Pass_2
7071
]
7172

73+
--
74+
-- Standard things we need to derive (also Glass) for full code search/nav
75+
--
76+
allCxxPasses :: [DerivePass]
77+
allCxxPasses =
78+
allManualPasses <>
79+
[DeriveGeneric "cxx1.FunctionDeclAttribute"
80+
,DeriveGeneric "cxx1.DeclarationToUSR"
81+
,DeriveGeneric "cxx1.RecordDerived"
82+
,DeriveGeneric "cxx1.ThriftToCxx"
83+
-- name search
84+
,DeriveGeneric "cxx1.EnumDeclarationByName"
85+
,DeriveGeneric "cxx1.EnumeratorByName"
86+
,DeriveGeneric "cxx1.FunctionDeclarationByNameScope"
87+
,DeriveGeneric "cxx1.NamespaceDeclarationByName"
88+
,DeriveGeneric "cxx1.ObjcContainerDeclarationInterface"
89+
,DeriveGeneric "cxx1.RecordDeclarationClass"
90+
,DeriveGeneric "cxx1.RecordDeclarationStruct"
91+
,DeriveGeneric "cxx1.RecordDeclarationUnion"
92+
,DeriveGeneric "cxx1.TypeAliasDeclarationByName"
93+
,DeriveGeneric "cxx1.VariableDeclarationNonLocalByName"
94+
-- lowercase name search
95+
,DeriveGeneric "pp1.DefineLowerCase"
96+
,DeriveGeneric "cxx1.EnumLowerCase"
97+
,DeriveGeneric "cxx1.EnumeratorLowerCase"
98+
,DeriveGeneric "cxx1.FunctionLowerCase"
99+
,DeriveGeneric "cxx1.NamespaceLowerCase"
100+
,DeriveGeneric "cxx1.ObjcContainerInterfaceLowerCase"
101+
,DeriveGeneric "cxx1.RecordClassLowerCase"
102+
,DeriveGeneric "cxx1.RecordStructLowerCase"
103+
,DeriveGeneric "cxx1.RecordUnionLowerCase"
104+
,DeriveGeneric "cxx1.TypeAliasLowerCase"
105+
,DeriveGeneric "cxx1.VariableLowerCase"
106+
-- objc
107+
,DeriveGeneric "cxx1.ObjcContainerInheritance"
108+
,DeriveGeneric "cxx1.ObjcInterfaceToImplementation"
109+
]
110+
72111
optionsPasses :: O.Parser (Set DerivePass)
73112
optionsPasses =
74113
-- With no flags, we run all the derive passes. If you specify
@@ -85,4 +124,4 @@ optionsPasses =
85124
)
86125
])
87126
<|>
88-
pure allManualPasses
127+
pure allCxxPasses

glean/lang/clang/tests/Glean/Regression/Driver/DeriveForCodemarkup.hs

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
module Glean.Regression.Driver.DeriveForCodemarkup (
1010
main,
11-
codemarkupDerivePasses
1211
) where
1312

1413
import Derive.Lib as Lib
@@ -18,42 +17,4 @@ import Glean.Clang.Test.DerivePass
1817
-- Derive things we will need for codemarkup.* calls
1918
--
2019
main :: IO ()
21-
main = testDeriver codemarkupDerivePasses
22-
23-
--
24-
-- Standard things we need to derive (also Glass) for full code search/nav
25-
--
26-
codemarkupDerivePasses :: [DerivePass]
27-
codemarkupDerivePasses =
28-
Lib.allManualPasses ++
29-
[DeriveGeneric "cxx1.FunctionDeclAttribute"
30-
,DeriveGeneric "cxx1.DeclarationToUSR"
31-
,DeriveGeneric "cxx1.RecordDerived"
32-
,DeriveGeneric "cxx1.ThriftToCxx"
33-
-- name search
34-
,DeriveGeneric "cxx1.EnumDeclarationByName"
35-
,DeriveGeneric "cxx1.EnumeratorByName"
36-
,DeriveGeneric "cxx1.FunctionDeclarationByNameScope"
37-
,DeriveGeneric "cxx1.NamespaceDeclarationByName"
38-
,DeriveGeneric "cxx1.ObjcContainerDeclarationInterface"
39-
,DeriveGeneric "cxx1.RecordDeclarationClass"
40-
,DeriveGeneric "cxx1.RecordDeclarationStruct"
41-
,DeriveGeneric "cxx1.RecordDeclarationUnion"
42-
,DeriveGeneric "cxx1.TypeAliasDeclarationByName"
43-
,DeriveGeneric "cxx1.VariableDeclarationNonLocalByName"
44-
-- lowercase name search
45-
,DeriveGeneric "pp1.DefineLowerCase"
46-
,DeriveGeneric "cxx1.EnumLowerCase"
47-
,DeriveGeneric "cxx1.EnumeratorLowerCase"
48-
,DeriveGeneric "cxx1.FunctionLowerCase"
49-
,DeriveGeneric "cxx1.NamespaceLowerCase"
50-
,DeriveGeneric "cxx1.ObjcContainerInterfaceLowerCase"
51-
,DeriveGeneric "cxx1.RecordClassLowerCase"
52-
,DeriveGeneric "cxx1.RecordStructLowerCase"
53-
,DeriveGeneric "cxx1.RecordUnionLowerCase"
54-
,DeriveGeneric "cxx1.TypeAliasLowerCase"
55-
,DeriveGeneric "cxx1.VariableLowerCase"
56-
-- objc
57-
,DeriveGeneric "cxx1.ObjcContainerInheritance"
58-
,DeriveGeneric "cxx1.ObjcInterfaceToImplementation"
59-
]
20+
main = testDeriver allCxxPasses

0 commit comments

Comments
 (0)