@@ -42,10 +42,10 @@ static raw_ostream &emitCPPType(StringRef type, raw_ostream &os) {
42
42
// / Emit the method name and argument list for the given method. If 'addThisArg'
43
43
// / is true, then an argument is added to the beginning of the argument list for
44
44
// / the concrete value.
45
- static void emitMethodNameAndArgs (const InterfaceMethod &method,
45
+ static void emitMethodNameAndArgs (const InterfaceMethod &method, StringRef name,
46
46
raw_ostream &os, StringRef valueType,
47
47
bool addThisArg, bool addConst) {
48
- os << method. getName () << ' (' ;
48
+ os << name << ' (' ;
49
49
if (addThisArg) {
50
50
if (addConst)
51
51
os << " const " ;
@@ -183,11 +183,13 @@ static void emitInterfaceDefMethods(StringRef interfaceQualName,
183
183
emitInterfaceMethodDoc (method, os);
184
184
emitCPPType (method.getReturnType (), os);
185
185
os << interfaceQualName << " ::" ;
186
- emitMethodNameAndArgs (method, os, valueType, /* addThisArg=*/ false ,
186
+ emitMethodNameAndArgs (method, method.getName (), os, valueType,
187
+ /* addThisArg=*/ false ,
187
188
/* addConst=*/ !isOpInterface);
188
189
189
190
// Forward to the method on the concrete operation type.
190
- os << " {\n return " << implValue << " ->" << method.getName () << ' (' ;
191
+ os << " {\n return " << implValue << " ->" << method.getUniqueName ()
192
+ << ' (' ;
191
193
if (!method.isStatic ()) {
192
194
os << implValue << " , " ;
193
195
os << (isOpInterface ? " getOperation()" : " *this" );
@@ -239,7 +241,7 @@ void InterfaceGenerator::emitConceptDecl(const Interface &interface) {
239
241
for (auto &method : interface.getMethods ()) {
240
242
os << " " ;
241
243
emitCPPType (method.getReturnType (), os);
242
- os << " (*" << method.getName () << " )(" ;
244
+ os << " (*" << method.getUniqueName () << " )(" ;
243
245
if (!method.isStatic ()) {
244
246
os << " const Concept *impl, " ;
245
247
emitCPPType (valueType, os) << (method.arg_empty () ? " " : " , " );
@@ -289,13 +291,13 @@ void InterfaceGenerator::emitModelDecl(const Interface &interface) {
289
291
os << " " << modelClass << " () : Concept{" ;
290
292
llvm::interleaveComma (
291
293
interface.getMethods (), os,
292
- [&](const InterfaceMethod &method) { os << method.getName (); });
294
+ [&](const InterfaceMethod &method) { os << method.getUniqueName (); });
293
295
os << " } {}\n\n " ;
294
296
295
297
// Insert each of the virtual method overrides.
296
298
for (auto &method : interface.getMethods ()) {
297
299
emitCPPType (method.getReturnType (), os << " static inline " );
298
- emitMethodNameAndArgs (method, os, valueType,
300
+ emitMethodNameAndArgs (method, method. getUniqueName (), os, valueType,
299
301
/* addThisArg=*/ !method.isStatic (),
300
302
/* addConst=*/ false );
301
303
os << " ;\n " ;
@@ -319,7 +321,7 @@ void InterfaceGenerator::emitModelDecl(const Interface &interface) {
319
321
if (method.isStatic ())
320
322
os << " static " ;
321
323
emitCPPType (method.getReturnType (), os);
322
- os << method.getName () << " (" ;
324
+ os << method.getUniqueName () << " (" ;
323
325
if (!method.isStatic ()) {
324
326
emitCPPType (valueType, os);
325
327
os << " tablegen_opaque_val" ;
@@ -350,7 +352,7 @@ void InterfaceGenerator::emitModelMethodsDef(const Interface &interface) {
350
352
emitCPPType (method.getReturnType (), os);
351
353
os << " detail::" << interface.getName () << " InterfaceTraits::Model<"
352
354
<< valueTemplate << " >::" ;
353
- emitMethodNameAndArgs (method, os, valueType,
355
+ emitMethodNameAndArgs (method, method. getUniqueName (), os, valueType,
354
356
/* addThisArg=*/ !method.isStatic (),
355
357
/* addConst=*/ false );
356
358
os << " {\n " ;
@@ -384,7 +386,7 @@ void InterfaceGenerator::emitModelMethodsDef(const Interface &interface) {
384
386
emitCPPType (method.getReturnType (), os);
385
387
os << " detail::" << interface.getName () << " InterfaceTraits::FallbackModel<"
386
388
<< valueTemplate << " >::" ;
387
- emitMethodNameAndArgs (method, os, valueType,
389
+ emitMethodNameAndArgs (method, method. getUniqueName (), os, valueType,
388
390
/* addThisArg=*/ !method.isStatic (),
389
391
/* addConst=*/ false );
390
392
os << " {\n " ;
@@ -396,7 +398,7 @@ void InterfaceGenerator::emitModelMethodsDef(const Interface &interface) {
396
398
os << " return static_cast<const " << valueTemplate << " *>(impl)->" ;
397
399
398
400
// Add the arguments to the call.
399
- os << method.getName () << ' (' ;
401
+ os << method.getUniqueName () << ' (' ;
400
402
if (!method.isStatic ())
401
403
os << " tablegen_opaque_val" << (method.arg_empty () ? " " : " , " );
402
404
llvm::interleaveComma (
@@ -416,7 +418,7 @@ void InterfaceGenerator::emitModelMethodsDef(const Interface &interface) {
416
418
<< " InterfaceTraits::ExternalModel<ConcreteModel, " << valueTemplate
417
419
<< " >::" ;
418
420
419
- os << method.getName () << " (" ;
421
+ os << method.getUniqueName () << " (" ;
420
422
if (!method.isStatic ()) {
421
423
emitCPPType (valueType, os);
422
424
os << " tablegen_opaque_val" ;
@@ -477,7 +479,8 @@ void InterfaceGenerator::emitInterfaceTraitDecl(const Interface &interface) {
477
479
emitInterfaceMethodDoc (method, os, " " );
478
480
os << " " << (method.isStatic () ? " static " : " " );
479
481
emitCPPType (method.getReturnType (), os);
480
- emitMethodNameAndArgs (method, os, valueType, /* addThisArg=*/ false ,
482
+ emitMethodNameAndArgs (method, method.getName (), os, valueType,
483
+ /* addThisArg=*/ false ,
481
484
/* addConst=*/ !isOpInterface && !method.isStatic ());
482
485
os << " {\n " << tblgen::tgfmt (defaultImpl->trim (), &traitMethodFmt)
483
486
<< " \n }\n " ;
@@ -514,7 +517,8 @@ static void emitInterfaceDeclMethods(const Interface &interface,
514
517
for (auto &method : interface.getMethods ()) {
515
518
emitInterfaceMethodDoc (method, os, " " );
516
519
emitCPPType (method.getReturnType (), os << " " );
517
- emitMethodNameAndArgs (method, os, valueType, /* addThisArg=*/ false ,
520
+ emitMethodNameAndArgs (method, method.getName (), os, valueType,
521
+ /* addThisArg=*/ false ,
518
522
/* addConst=*/ !isOpInterface);
519
523
os << " ;\n " ;
520
524
}
0 commit comments