File tree Expand file tree Collapse file tree 3 files changed +29
-33
lines changed
Expand file tree Collapse file tree 3 files changed +29
-33
lines changed Original file line number Diff line number Diff line change @@ -1414,22 +1414,3 @@ void swift::addFixedLayoutAttr(NominalTypeDecl *nominal) {
14141414 // Add `@_fixed_layout` to the nominal.
14151415 nominal->getAttrs ().add (new (C) FixedLayoutAttr (/* Implicit*/ true ));
14161416}
1417-
1418- Expr *DiscriminatorFinder::walkToExprPost (Expr *E) {
1419- auto *ACE = dyn_cast<AbstractClosureExpr>(E);
1420- if (!ACE)
1421- return E;
1422-
1423- unsigned Discriminator = ACE->getDiscriminator ();
1424- assert (Discriminator != AbstractClosureExpr::InvalidDiscriminator &&
1425- " Existing closures should have valid discriminators" );
1426- if (Discriminator >= NextDiscriminator)
1427- NextDiscriminator = Discriminator + 1 ;
1428- return E;
1429- }
1430-
1431- unsigned DiscriminatorFinder::getNextDiscriminator () {
1432- if (NextDiscriminator == AbstractClosureExpr::InvalidDiscriminator)
1433- llvm::report_fatal_error (" Out of valid closure discriminators" );
1434- return NextDiscriminator++;
1435- }
Original file line number Diff line number Diff line change @@ -76,20 +76,6 @@ bool hasLetStoredPropertyWithInitialValue(NominalTypeDecl *nominal);
7676// / Add `@_fixed_layout` attribute to the nominal type, if possible.
7777void addFixedLayoutAttr (NominalTypeDecl *nominal);
7878
79- // / Find available closure discriminators.
80- // /
81- // / The parser typically takes care of assigning unique discriminators to
82- // / closures, but the parser is unavailable during semantic analysis.
83- class DiscriminatorFinder : public ASTWalker {
84- unsigned NextDiscriminator = 0 ;
85-
86- public:
87- Expr *walkToExprPost (Expr *E) override ;
88-
89- // Get the next available closure discriminator.
90- unsigned getNextDiscriminator ();
91- };
92-
9379} // end namespace swift
9480
9581#endif
Original file line number Diff line number Diff line change @@ -34,6 +34,35 @@ using namespace swift;
3434
3535namespace {
3636
37+ // / Find available closure discriminators.
38+ // /
39+ // / The parser typically takes care of assigning unique discriminators to
40+ // / closures, but the parser is unavailable during semantic analysis.
41+ class DiscriminatorFinder : public ASTWalker {
42+ unsigned NextDiscriminator = 0 ;
43+
44+ public:
45+ Expr *walkToExprPost (Expr *E) override {
46+ auto *ACE = dyn_cast<AbstractClosureExpr>(E);
47+ if (!ACE)
48+ return E;
49+
50+ unsigned Discriminator = ACE->getDiscriminator ();
51+ assert (Discriminator != AbstractClosureExpr::InvalidDiscriminator &&
52+ " Existing closures should have valid discriminators" );
53+ if (Discriminator >= NextDiscriminator)
54+ NextDiscriminator = Discriminator + 1 ;
55+ return E;
56+ }
57+
58+ // Get the next available closure discriminator.
59+ unsigned getNextDiscriminator () {
60+ if (NextDiscriminator == AbstractClosureExpr::InvalidDiscriminator)
61+ llvm::report_fatal_error (" Out of valid closure discriminators" );
62+ return NextDiscriminator++;
63+ }
64+ };
65+
3766// / Instrument decls with sanity-checks which the debugger can evaluate.
3867class DebuggerTestingTransform : public ASTWalker {
3968 ASTContext &Ctx;
You can’t perform that action at this time.
0 commit comments