@@ -1428,13 +1428,13 @@ Call on top-level command instead`);
1428
1428
1429
1429
_checkForMissingMandatoryOptions ( ) {
1430
1430
// Walk up hierarchy so can call in subcommand after checking for displaying help.
1431
- for ( let cmd = this ; cmd ; cmd = cmd . parent ) {
1431
+ this . _getCommandAndAncestors ( ) . forEach ( ( cmd ) => {
1432
1432
cmd . options . forEach ( ( anOption ) => {
1433
1433
if ( anOption . mandatory && ( cmd . getOptionValue ( anOption . attributeName ( ) ) === undefined ) ) {
1434
1434
cmd . missingMandatoryOptionValue ( anOption ) ;
1435
1435
}
1436
1436
} ) ;
1437
- }
1437
+ } ) ;
1438
1438
}
1439
1439
1440
1440
/**
@@ -1475,9 +1475,9 @@ Call on top-level command instead`);
1475
1475
*/
1476
1476
_checkForConflictingOptions ( ) {
1477
1477
// Walk up hierarchy so can call in subcommand after checking for displaying help.
1478
- for ( let cmd = this ; cmd ; cmd = cmd . parent ) {
1478
+ this . _getCommandAndAncestors ( ) . forEach ( ( cmd ) => {
1479
1479
cmd . _checkForConflictingLocalOptions ( ) ;
1480
- }
1480
+ } ) ;
1481
1481
}
1482
1482
1483
1483
/**
@@ -1806,14 +1806,13 @@ Call on top-level command instead`);
1806
1806
if ( flag . startsWith ( '--' ) && this . _showSuggestionAfterError ) {
1807
1807
// Looping to pick up the global options too
1808
1808
let candidateFlags = [ ] ;
1809
- let command = this ;
1810
- do {
1809
+ for ( const command of this . _getCommandAndAncestors ( ) ) {
1811
1810
const moreFlags = command . createHelp ( ) . visibleOptions ( command )
1812
1811
. filter ( option => option . long )
1813
1812
. map ( option => option . long ) ;
1814
1813
candidateFlags = candidateFlags . concat ( moreFlags ) ;
1815
- command = command . parent ;
1816
- } while ( command && ! command . _enablePositionalOptions ) ;
1814
+ if ( command . _enablePositionalOptions ) break ;
1815
+ }
1817
1816
suggestion = suggestSimilar ( flag , candidateFlags ) ;
1818
1817
}
1819
1818
0 commit comments