@@ -1428,13 +1428,13 @@ Call on top-level command instead`);
14281428
14291429 _checkForMissingMandatoryOptions ( ) {
14301430 // 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 ) => {
14321432 cmd . options . forEach ( ( anOption ) => {
14331433 if ( anOption . mandatory && ( cmd . getOptionValue ( anOption . attributeName ( ) ) === undefined ) ) {
14341434 cmd . missingMandatoryOptionValue ( anOption ) ;
14351435 }
14361436 } ) ;
1437- }
1437+ } ) ;
14381438 }
14391439
14401440 /**
@@ -1475,9 +1475,9 @@ Call on top-level command instead`);
14751475 */
14761476 _checkForConflictingOptions ( ) {
14771477 // 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 ) => {
14791479 cmd . _checkForConflictingLocalOptions ( ) ;
1480- }
1480+ } ) ;
14811481 }
14821482
14831483 /**
@@ -1806,14 +1806,13 @@ Call on top-level command instead`);
18061806 if ( flag . startsWith ( '--' ) && this . _showSuggestionAfterError ) {
18071807 // Looping to pick up the global options too
18081808 let candidateFlags = [ ] ;
1809- let command = this ;
1810- do {
1809+ for ( const command of this . _getCommandAndAncestors ( ) ) {
18111810 const moreFlags = command . createHelp ( ) . visibleOptions ( command )
18121811 . filter ( option => option . long )
18131812 . map ( option => option . long ) ;
18141813 candidateFlags = candidateFlags . concat ( moreFlags ) ;
1815- command = command . parent ;
1816- } while ( command && ! command . _enablePositionalOptions ) ;
1814+ if ( command . _enablePositionalOptions ) break ;
1815+ }
18171816 suggestion = suggestSimilar ( flag , candidateFlags ) ;
18181817 }
18191818
0 commit comments