@@ -87,18 +87,18 @@ namespace clang {
87
87
namespace tblgen {
88
88
89
89
class WrappedRecord {
90
- llvm::Record *Record;
90
+ const llvm::Record *Record;
91
91
92
92
protected:
93
- WrappedRecord (llvm::Record *record = nullptr ) : Record(record) {}
93
+ WrappedRecord (const llvm::Record *record = nullptr ) : Record(record) {}
94
94
95
- llvm::Record *get () const {
95
+ const llvm::Record *get () const {
96
96
assert (Record && " accessing null record" );
97
97
return Record;
98
98
}
99
99
100
100
public:
101
- llvm::Record *getRecord () const { return Record; }
101
+ const llvm::Record *getRecord () const { return Record; }
102
102
103
103
explicit operator bool () const { return Record != nullptr ; }
104
104
@@ -144,7 +144,7 @@ class HasProperties : public WrappedRecord {
144
144
public:
145
145
static constexpr llvm::StringRef ClassName = HasPropertiesClassName;
146
146
147
- HasProperties (llvm::Record *record = nullptr ) : WrappedRecord(record) {}
147
+ HasProperties (const llvm::Record *record = nullptr ) : WrappedRecord(record) {}
148
148
149
149
llvm::StringRef getName () const ;
150
150
@@ -157,7 +157,7 @@ class HasProperties : public WrappedRecord {
157
157
// / in one of Clang's AST hierarchies.
158
158
class ASTNode : public HasProperties {
159
159
public:
160
- ASTNode (llvm::Record *record = nullptr ) : HasProperties(record) {}
160
+ ASTNode (const llvm::Record *record = nullptr ) : HasProperties(record) {}
161
161
162
162
llvm::StringRef getName () const {
163
163
return get ()->getName ();
@@ -180,7 +180,7 @@ class ASTNode : public HasProperties {
180
180
181
181
class DeclNode : public ASTNode {
182
182
public:
183
- DeclNode (llvm::Record *record = nullptr ) : ASTNode(record) {}
183
+ DeclNode (const llvm::Record *record = nullptr ) : ASTNode(record) {}
184
184
185
185
llvm::StringRef getId () const ;
186
186
std::string getClassName () const ;
@@ -202,7 +202,7 @@ class DeclNode : public ASTNode {
202
202
203
203
class TypeNode : public ASTNode {
204
204
public:
205
- TypeNode (llvm::Record *record = nullptr ) : ASTNode(record) {}
205
+ TypeNode (const llvm::Record *record = nullptr ) : ASTNode(record) {}
206
206
207
207
llvm::StringRef getId () const ;
208
208
llvm::StringRef getClassName () const ;
@@ -224,7 +224,7 @@ class TypeNode : public ASTNode {
224
224
225
225
class StmtNode : public ASTNode {
226
226
public:
227
- StmtNode (llvm::Record *record = nullptr ) : ASTNode(record) {}
227
+ StmtNode (const llvm::Record *record = nullptr ) : ASTNode(record) {}
228
228
229
229
std::string getId () const ;
230
230
llvm::StringRef getClassName () const ;
@@ -247,7 +247,7 @@ class StmtNode : public ASTNode {
247
247
// / The type of a property.
248
248
class PropertyType : public WrappedRecord {
249
249
public:
250
- PropertyType (llvm::Record *record = nullptr ) : WrappedRecord(record) {}
250
+ PropertyType (const llvm::Record *record = nullptr ) : WrappedRecord(record) {}
251
251
252
252
// / Is this a generic specialization (i.e. `Array<T>` or `Optional<T>`)?
253
253
bool isGenericSpecialization () const {
@@ -331,7 +331,7 @@ class PropertyType : public WrappedRecord {
331
331
// / A rule for returning the kind of a type.
332
332
class TypeKindRule : public WrappedRecord {
333
333
public:
334
- TypeKindRule (llvm::Record *record = nullptr ) : WrappedRecord(record) {}
334
+ TypeKindRule (const llvm::Record *record = nullptr ) : WrappedRecord(record) {}
335
335
336
336
// / Return the type to which this applies.
337
337
PropertyType getParentType () const {
@@ -361,7 +361,7 @@ class TypeKindRule : public WrappedRecord {
361
361
// / An implementation case of a property type.
362
362
class TypeCase : public HasProperties {
363
363
public:
364
- TypeCase (llvm::Record *record = nullptr ) : HasProperties(record) {}
364
+ TypeCase (const llvm::Record *record = nullptr ) : HasProperties(record) {}
365
365
366
366
// / Return the name of this case.
367
367
llvm::StringRef getCaseName () const {
@@ -381,7 +381,7 @@ class TypeCase : public HasProperties {
381
381
// / A property of an AST node.
382
382
class Property : public WrappedRecord {
383
383
public:
384
- Property (llvm::Record *record = nullptr ) : WrappedRecord(record) {}
384
+ Property (const llvm::Record *record = nullptr ) : WrappedRecord(record) {}
385
385
386
386
// / Return the name of this property.
387
387
llvm::StringRef getName () const {
@@ -417,7 +417,8 @@ class Property : public WrappedRecord {
417
417
// / a value (which is actually done when writing the value out).
418
418
class ReadHelperRule : public WrappedRecord {
419
419
public:
420
- ReadHelperRule (llvm::Record *record = nullptr ) : WrappedRecord(record) {}
420
+ ReadHelperRule (const llvm::Record *record = nullptr )
421
+ : WrappedRecord(record) {}
421
422
422
423
// / Return the class for which this is a creation rule.
423
424
// / Should never be abstract.
@@ -437,7 +438,7 @@ class ReadHelperRule : public WrappedRecord {
437
438
// / A rule for how to create an AST node from its properties.
438
439
class CreationRule : public WrappedRecord {
439
440
public:
440
- CreationRule (llvm::Record *record = nullptr ) : WrappedRecord(record) {}
441
+ CreationRule (const llvm::Record *record = nullptr ) : WrappedRecord(record) {}
441
442
442
443
// / Return the class for which this is a creation rule.
443
444
// / Should never be abstract.
@@ -457,7 +458,7 @@ class CreationRule : public WrappedRecord {
457
458
// / A rule which overrides the standard rules for serializing an AST node.
458
459
class OverrideRule : public WrappedRecord {
459
460
public:
460
- OverrideRule (llvm::Record *record = nullptr ) : WrappedRecord(record) {}
461
+ OverrideRule (const llvm::Record *record = nullptr ) : WrappedRecord(record) {}
461
462
462
463
// / Return the class for which this is an override rule.
463
464
// / Should never be abstract.
@@ -483,12 +484,12 @@ template <class NodeClass>
483
484
using ASTNodeHierarchyVisitor =
484
485
llvm::function_ref<void (NodeClass node, NodeClass base)>;
485
486
486
- void visitASTNodeHierarchyImpl (llvm::RecordKeeper &records,
487
+ void visitASTNodeHierarchyImpl (const llvm::RecordKeeper &records,
487
488
llvm::StringRef nodeClassName,
488
489
ASTNodeHierarchyVisitor<ASTNode> visit);
489
490
490
491
template <class NodeClass >
491
- void visitASTNodeHierarchy (llvm::RecordKeeper &records,
492
+ void visitASTNodeHierarchy (const llvm::RecordKeeper &records,
492
493
ASTNodeHierarchyVisitor<NodeClass> visit) {
493
494
visitASTNodeHierarchyImpl (records, NodeClass::getTableGenNodeClassName (),
494
495
[visit](ASTNode node, ASTNode base) {
0 commit comments