@@ -349,13 +349,7 @@ parseRewriteFunctionDescriptor(yaml::Stream &YS, yaml::ScalarNode *K,
349
349
350
350
KeyValue = Key->getValue (KeyStorage);
351
351
if (KeyValue == " source" ) {
352
- std::string Error;
353
-
354
352
Source = std::string (Value->getValue (ValueStorage));
355
- if (!Regex (Source).isValid (Error)) {
356
- YS.printError (Field.getKey (), " invalid regex: " + Error);
357
- return false ;
358
- }
359
353
} else if (KeyValue == " target" ) {
360
354
Target = std::string (Value->getValue (ValueStorage));
361
355
} else if (KeyValue == " transform" ) {
@@ -379,12 +373,22 @@ parseRewriteFunctionDescriptor(yaml::Stream &YS, yaml::ScalarNode *K,
379
373
380
374
// TODO see if there is a more elegant solution to selecting the rewrite
381
375
// descriptor type
382
- if (!Target.empty ())
376
+ if (!Target.empty ()) {
383
377
DL->push_back (std::make_unique<ExplicitRewriteFunctionDescriptor>(
384
378
Source, Target, Naked));
385
- else
386
- DL->push_back (
387
- std::make_unique<PatternRewriteFunctionDescriptor>(Source, Transform));
379
+ return true ;
380
+ }
381
+
382
+ {
383
+ std::string Error;
384
+ if (!Regex (Source).isValid (Error)) {
385
+ YS.printError (Descriptor, " invalid Source regex: " + Error);
386
+ return false ;
387
+ }
388
+ }
389
+
390
+ DL->push_back (
391
+ std::make_unique<PatternRewriteFunctionDescriptor>(Source, Transform));
388
392
389
393
return true ;
390
394
}
@@ -418,13 +422,7 @@ parseRewriteGlobalVariableDescriptor(yaml::Stream &YS, yaml::ScalarNode *K,
418
422
419
423
KeyValue = Key->getValue (KeyStorage);
420
424
if (KeyValue == " source" ) {
421
- std::string Error;
422
-
423
425
Source = std::string (Value->getValue (ValueStorage));
424
- if (!Regex (Source).isValid (Error)) {
425
- YS.printError (Field.getKey (), " invalid regex: " + Error);
426
- return false ;
427
- }
428
426
} else if (KeyValue == " target" ) {
429
427
Target = std::string (Value->getValue (ValueStorage));
430
428
} else if (KeyValue == " transform" ) {
@@ -441,13 +439,23 @@ parseRewriteGlobalVariableDescriptor(yaml::Stream &YS, yaml::ScalarNode *K,
441
439
return false ;
442
440
}
443
441
444
- if (!Target.empty ())
442
+ if (!Target.empty ()) {
445
443
DL->push_back (std::make_unique<ExplicitRewriteGlobalVariableDescriptor>(
446
444
Source, Target,
447
445
/* Naked*/ false ));
448
- else
449
- DL->push_back (std::make_unique<PatternRewriteGlobalVariableDescriptor>(
450
- Source, Transform));
446
+ return true ;
447
+ }
448
+
449
+ {
450
+ std::string Error;
451
+ if (!Regex (Source).isValid (Error)) {
452
+ YS.printError (Descriptor, " invalid Source regex: " + Error);
453
+ return false ;
454
+ }
455
+ }
456
+
457
+ DL->push_back (std::make_unique<PatternRewriteGlobalVariableDescriptor>(
458
+ Source, Transform));
451
459
452
460
return true ;
453
461
}
@@ -481,13 +489,7 @@ parseRewriteGlobalAliasDescriptor(yaml::Stream &YS, yaml::ScalarNode *K,
481
489
482
490
KeyValue = Key->getValue (KeyStorage);
483
491
if (KeyValue == " source" ) {
484
- std::string Error;
485
-
486
492
Source = std::string (Value->getValue (ValueStorage));
487
- if (!Regex (Source).isValid (Error)) {
488
- YS.printError (Field.getKey (), " invalid regex: " + Error);
489
- return false ;
490
- }
491
493
} else if (KeyValue == " target" ) {
492
494
Target = std::string (Value->getValue (ValueStorage));
493
495
} else if (KeyValue == " transform" ) {
@@ -504,13 +506,23 @@ parseRewriteGlobalAliasDescriptor(yaml::Stream &YS, yaml::ScalarNode *K,
504
506
return false ;
505
507
}
506
508
507
- if (!Target.empty ())
509
+ if (!Target.empty ()) {
508
510
DL->push_back (std::make_unique<ExplicitRewriteNamedAliasDescriptor>(
509
511
Source, Target,
510
512
/* Naked*/ false ));
511
- else
512
- DL->push_back (std::make_unique<PatternRewriteNamedAliasDescriptor>(
513
- Source, Transform));
513
+ return true ;
514
+ }
515
+
516
+ {
517
+ std::string Error;
518
+ if (!Regex (Source).isValid (Error)) {
519
+ YS.printError (Descriptor, " invalid Source regex: " + Error);
520
+ return false ;
521
+ }
522
+ }
523
+
524
+ DL->push_back (
525
+ std::make_unique<PatternRewriteNamedAliasDescriptor>(Source, Transform));
514
526
515
527
return true ;
516
528
}
0 commit comments