@@ -2610,17 +2610,30 @@ class InScopeCompletionPass extends SimpleAstVisitor<void> {
2610
2610
var noRequired = node.requiredKeyword == null ;
2611
2611
bool suggestCovariant = true ;
2612
2612
bool suggestThis = true ;
2613
+ bool suggestVoid = true ;
2614
+ bool suggestDynamic = true ;
2615
+ bool suggestFinal = true ;
2616
+ bool suggestRequired = true ;
2613
2617
if (name != null && node.isSingleIdentifier) {
2614
2618
collector.completionLocation = 'FormalParameterList_parameter' ;
2615
2619
keywordHelper.addFormalParameterKeywords (
2616
2620
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 ,
2619
2623
suggestVariableName: true ,
2620
2624
);
2621
2625
suggestCovariant = false ;
2622
2626
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
+
2624
2637
if (name.isKeyword) {
2625
2638
return ;
2626
2639
}
@@ -2643,7 +2656,7 @@ class InScopeCompletionPass extends SimpleAstVisitor<void> {
2643
2656
if (type.beginToken.coversOffset (offset)) {
2644
2657
keywordHelper.addFormalParameterKeywords (
2645
2658
node.parentFormalParameterList,
2646
- suggestRequired: noRequired,
2659
+ suggestRequired: noRequired && suggestRequired ,
2647
2660
suggestVariableName:
2648
2661
node.name == null || type.beginToken.offset == offset,
2649
2662
);
@@ -2663,13 +2676,18 @@ class InScopeCompletionPass extends SimpleAstVisitor<void> {
2663
2676
DefaultFormalParameter (parent: FormalParameterList list)) {
2664
2677
keywordHelper.addFormalParameterKeywords (
2665
2678
list,
2666
- suggestRequired: noRequired,
2679
+ suggestRequired: noRequired && suggestRequired ,
2667
2680
suggestVariableName: name.coversOffset (offset),
2668
2681
suggestCovariant: suggestCovariant,
2669
2682
suggestThis: suggestThis,
2683
+ suggestFinal: suggestFinal,
2670
2684
);
2671
2685
}
2672
- _forTypeAnnotation (node);
2686
+ _forTypeAnnotation (
2687
+ node,
2688
+ suggestVoid: suggestVoid,
2689
+ suggestDynamic: suggestDynamic,
2690
+ );
2673
2691
}
2674
2692
}
2675
2693
}
@@ -3820,13 +3838,16 @@ class InScopeCompletionPass extends SimpleAstVisitor<void> {
3820
3838
bool excludeTypeNames = false ,
3821
3839
Set <AstNode > excludedNodes = const {},
3822
3840
bool isInDeclaration = false ,
3841
+ bool suggestVoid = true ,
3842
+ bool suggestDynamic = true ,
3823
3843
}) {
3824
- if (! (mustBeExtensible ||
3825
- mustBeImplementable ||
3826
- mustBeMixable ||
3827
- isInDeclaration)) {
3844
+ if (suggestDynamic &&
3845
+ ! (mustBeExtensible ||
3846
+ mustBeImplementable ||
3847
+ mustBeMixable ||
3848
+ isInDeclaration)) {
3828
3849
keywordHelper.addKeyword (Keyword .DYNAMIC );
3829
- if (! mustBeNonVoid) {
3850
+ if (suggestVoid && ! mustBeNonVoid) {
3830
3851
keywordHelper.addKeyword (Keyword .VOID );
3831
3852
}
3832
3853
}
0 commit comments