@@ -59,32 +59,6 @@ static Expr *isImplicitPromotionToOptional(Expr *E) {
59
59
return nullptr ;
60
60
}
61
61
62
- ASTWalker::PreWalkAction BaseDiagnosticWalker::walkToDeclPre (Decl *D) {
63
- return Action::VisitNodeIf (isa<ClosureExpr>(D->getDeclContext ()) &&
64
- shouldWalkIntoDeclInClosureContext (D));
65
- }
66
-
67
- bool BaseDiagnosticWalker::shouldWalkIntoDeclInClosureContext (Decl *D) {
68
- auto *closure = dyn_cast<ClosureExpr>(D->getDeclContext ());
69
- assert (closure);
70
-
71
- if (closure->isSeparatelyTypeChecked ())
72
- return false ;
73
-
74
- // Let's not walk into declarations contained in a multi-statement
75
- // closure because they'd be handled via `typeCheckDecl` that runs
76
- // syntactic diagnostics.
77
- if (!closure->hasSingleExpressionBody ()) {
78
- // Since pattern bindings get their types through solution application,
79
- // `typeCheckDecl` doesn't touch initializers (because they are already
80
- // fully type-checked), so pattern bindings have to be allowed to be
81
- // walked to diagnose syntactic issues.
82
- return isa<PatternBindingDecl>(D);
83
- }
84
-
85
- return true ;
86
- }
87
-
88
62
// / Diagnose syntactic restrictions of expressions.
89
63
// /
90
64
// / - Module values may only occur as part of qualification.
@@ -1605,10 +1579,6 @@ static void diagRecursivePropertyAccess(const Expr *E, const DeclContext *DC) {
1605
1579
cast<VarDecl>(DRE->getDecl ())->isSelfParameter ();
1606
1580
}
1607
1581
1608
- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
1609
- return false ;
1610
- }
1611
-
1612
1582
bool shouldWalkCaptureInitializerExpressions () override { return true ; }
1613
1583
1614
1584
MacroWalking getMacroWalkingBehavior () const override {
@@ -4590,10 +4560,6 @@ static void checkStmtConditionTrailingClosure(ASTContext &ctx, const Expr *E) {
4590
4560
public:
4591
4561
DiagnoseWalker (ASTContext &ctx) : Ctx(ctx) { }
4592
4562
4593
- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
4594
- return false ;
4595
- }
4596
-
4597
4563
bool shouldWalkCaptureInitializerExpressions () override { return true ; }
4598
4564
4599
4565
MacroWalking getMacroWalkingBehavior () const override {
@@ -4719,10 +4685,6 @@ class ObjCSelectorWalker : public ASTWalker {
4719
4685
ObjCSelectorWalker (const DeclContext *dc, Type selectorTy)
4720
4686
: Ctx(dc->getASTContext ()), DC(dc), SelectorTy(selectorTy) { }
4721
4687
4722
- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
4723
- return false ;
4724
- }
4725
-
4726
4688
bool shouldWalkCaptureInitializerExpressions () override { return true ; }
4727
4689
4728
4690
MacroWalking getMacroWalkingBehavior () const override {
@@ -5585,10 +5547,6 @@ static void diagnoseUnintendedOptionalBehavior(const Expr *E,
5585
5547
}
5586
5548
}
5587
5549
5588
- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
5589
- return false ;
5590
- }
5591
-
5592
5550
bool shouldWalkCaptureInitializerExpressions () override { return true ; }
5593
5551
5594
5552
MacroWalking getMacroWalkingBehavior () const override {
@@ -5664,10 +5622,6 @@ static void diagnoseDeprecatedWritableKeyPath(const Expr *E,
5664
5622
}
5665
5623
}
5666
5624
5667
- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
5668
- return false ;
5669
- }
5670
-
5671
5625
bool shouldWalkCaptureInitializerExpressions () override { return true ; }
5672
5626
5673
5627
MacroWalking getMacroWalkingBehavior () const override {
@@ -5970,10 +5924,6 @@ static void diagUnqualifiedAccessToMethodNamedSelf(const Expr *E,
5970
5924
public:
5971
5925
DiagnoseWalker (const DeclContext *DC) : Ctx(DC->getASTContext ()), DC(DC) {}
5972
5926
5973
- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
5974
- return false ;
5975
- }
5976
-
5977
5927
MacroWalking getMacroWalkingBehavior () const override {
5978
5928
return MacroWalking::Expansion;
5979
5929
}
@@ -6129,10 +6079,6 @@ diagnoseDictionaryLiteralDuplicateKeyEntries(const Expr *E,
6129
6079
public:
6130
6080
DiagnoseWalker (const DeclContext *DC) : Ctx(DC->getASTContext ()) {}
6131
6081
6132
- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
6133
- return false ;
6134
- }
6135
-
6136
6082
MacroWalking getMacroWalkingBehavior () const override {
6137
6083
return MacroWalking::Expansion;
6138
6084
}
0 commit comments