@@ -2610,17 +2610,30 @@ class InScopeCompletionPass extends SimpleAstVisitor<void> {
26102610 var noRequired = node.requiredKeyword == null ;
26112611 bool suggestCovariant = true ;
26122612 bool suggestThis = true ;
2613+ bool suggestVoid = true ;
2614+ bool suggestDynamic = true ;
2615+ bool suggestFinal = true ;
2616+ bool suggestRequired = true ;
26132617 if (name != null && node.isSingleIdentifier) {
26142618 collector.completionLocation = 'FormalParameterList_parameter' ;
26152619 keywordHelper.addFormalParameterKeywords (
26162620 node.parentFormalParameterList,
2617- suggestRequired: name.keyword != Keyword .REQUIRED ,
2618- suggestCovariant: name.keyword != Keyword .COVARIANT ,
2621+ suggestRequired: suggestRequired && name.keyword != Keyword .REQUIRED ,
2622+ suggestCovariant: suggestCovariant && name.keyword != Keyword .COVARIANT ,
26192623 suggestVariableName: true ,
26202624 );
26212625 suggestCovariant = false ;
26222626 suggestThis = false ;
2623- _forTypeAnnotation (node);
2627+ suggestFinal = false ;
2628+ suggestRequired = false ;
2629+ _forTypeAnnotation (
2630+ node,
2631+ suggestDynamic: suggestDynamic,
2632+ suggestVoid: suggestVoid,
2633+ );
2634+ suggestDynamic = false ;
2635+ suggestVoid = false ;
2636+
26242637 if (name.isKeyword) {
26252638 return ;
26262639 }
@@ -2643,7 +2656,7 @@ class InScopeCompletionPass extends SimpleAstVisitor<void> {
26432656 if (type.beginToken.coversOffset (offset)) {
26442657 keywordHelper.addFormalParameterKeywords (
26452658 node.parentFormalParameterList,
2646- suggestRequired: noRequired,
2659+ suggestRequired: noRequired && suggestRequired ,
26472660 suggestVariableName:
26482661 node.name == null || type.beginToken.offset == offset,
26492662 );
@@ -2663,13 +2676,18 @@ class InScopeCompletionPass extends SimpleAstVisitor<void> {
26632676 DefaultFormalParameter (parent: FormalParameterList list)) {
26642677 keywordHelper.addFormalParameterKeywords (
26652678 list,
2666- suggestRequired: noRequired,
2679+ suggestRequired: noRequired && suggestRequired ,
26672680 suggestVariableName: name.coversOffset (offset),
26682681 suggestCovariant: suggestCovariant,
26692682 suggestThis: suggestThis,
2683+ suggestFinal: suggestFinal,
26702684 );
26712685 }
2672- _forTypeAnnotation (node);
2686+ _forTypeAnnotation (
2687+ node,
2688+ suggestVoid: suggestVoid,
2689+ suggestDynamic: suggestDynamic,
2690+ );
26732691 }
26742692 }
26752693 }
@@ -3820,13 +3838,16 @@ class InScopeCompletionPass extends SimpleAstVisitor<void> {
38203838 bool excludeTypeNames = false ,
38213839 Set <AstNode > excludedNodes = const {},
38223840 bool isInDeclaration = false ,
3841+ bool suggestVoid = true ,
3842+ bool suggestDynamic = true ,
38233843 }) {
3824- if (! (mustBeExtensible ||
3825- mustBeImplementable ||
3826- mustBeMixable ||
3827- isInDeclaration)) {
3844+ if (suggestDynamic &&
3845+ ! (mustBeExtensible ||
3846+ mustBeImplementable ||
3847+ mustBeMixable ||
3848+ isInDeclaration)) {
38283849 keywordHelper.addKeyword (Keyword .DYNAMIC );
3829- if (! mustBeNonVoid) {
3850+ if (suggestVoid && ! mustBeNonVoid) {
38303851 keywordHelper.addKeyword (Keyword .VOID );
38313852 }
38323853 }
0 commit comments