@@ -59,32 +59,6 @@ static Expr *isImplicitPromotionToOptional(Expr *E) {
5959 return nullptr ;
6060}
6161
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-
8862// / Diagnose syntactic restrictions of expressions.
8963// /
9064// / - Module values may only occur as part of qualification.
@@ -1605,10 +1579,6 @@ static void diagRecursivePropertyAccess(const Expr *E, const DeclContext *DC) {
16051579 cast<VarDecl>(DRE->getDecl ())->isSelfParameter ();
16061580 }
16071581
1608- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
1609- return false ;
1610- }
1611-
16121582 bool shouldWalkCaptureInitializerExpressions () override { return true ; }
16131583
16141584 MacroWalking getMacroWalkingBehavior () const override {
@@ -4590,10 +4560,6 @@ static void checkStmtConditionTrailingClosure(ASTContext &ctx, const Expr *E) {
45904560 public:
45914561 DiagnoseWalker (ASTContext &ctx) : Ctx(ctx) { }
45924562
4593- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
4594- return false ;
4595- }
4596-
45974563 bool shouldWalkCaptureInitializerExpressions () override { return true ; }
45984564
45994565 MacroWalking getMacroWalkingBehavior () const override {
@@ -4719,10 +4685,6 @@ class ObjCSelectorWalker : public ASTWalker {
47194685 ObjCSelectorWalker (const DeclContext *dc, Type selectorTy)
47204686 : Ctx(dc->getASTContext ()), DC(dc), SelectorTy(selectorTy) { }
47214687
4722- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
4723- return false ;
4724- }
4725-
47264688 bool shouldWalkCaptureInitializerExpressions () override { return true ; }
47274689
47284690 MacroWalking getMacroWalkingBehavior () const override {
@@ -5585,10 +5547,6 @@ static void diagnoseUnintendedOptionalBehavior(const Expr *E,
55855547 }
55865548 }
55875549
5588- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
5589- return false ;
5590- }
5591-
55925550 bool shouldWalkCaptureInitializerExpressions () override { return true ; }
55935551
55945552 MacroWalking getMacroWalkingBehavior () const override {
@@ -5664,10 +5622,6 @@ static void diagnoseDeprecatedWritableKeyPath(const Expr *E,
56645622 }
56655623 }
56665624
5667- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
5668- return false ;
5669- }
5670-
56715625 bool shouldWalkCaptureInitializerExpressions () override { return true ; }
56725626
56735627 MacroWalking getMacroWalkingBehavior () const override {
@@ -5970,10 +5924,6 @@ static void diagUnqualifiedAccessToMethodNamedSelf(const Expr *E,
59705924 public:
59715925 DiagnoseWalker (const DeclContext *DC) : Ctx(DC->getASTContext ()), DC(DC) {}
59725926
5973- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
5974- return false ;
5975- }
5976-
59775927 MacroWalking getMacroWalkingBehavior () const override {
59785928 return MacroWalking::Expansion;
59795929 }
@@ -6129,10 +6079,6 @@ diagnoseDictionaryLiteralDuplicateKeyEntries(const Expr *E,
61296079 public:
61306080 DiagnoseWalker (const DeclContext *DC) : Ctx(DC->getASTContext ()) {}
61316081
6132- bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
6133- return false ;
6134- }
6135-
61366082 MacroWalking getMacroWalkingBehavior () const override {
61376083 return MacroWalking::Expansion;
61386084 }
0 commit comments