File tree Expand file tree Collapse file tree 2 files changed +10
-2
lines changed Expand file tree Collapse file tree 2 files changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -76,6 +76,11 @@ class PatternBindingInitializer : public Initializer {
7676 // created lazily for 'self' lookup from lazy property initializer
7777 ParamDecl *SelfParam;
7878
79+ // Sets itself as the parent.
80+ friend class PatternBindingDecl ;
81+
82+ void setBinding (PatternBindingDecl *binding, unsigned bindingIndex);
83+
7984 explicit PatternBindingInitializer (DeclContext *parent)
8085 : Initializer(InitializerKind::PatternBinding, parent),
8186 Binding(nullptr ), SelfParam(nullptr ) {
@@ -90,8 +95,6 @@ class PatternBindingInitializer : public Initializer {
9095 static PatternBindingInitializer *createDeserialized (PatternBindingDecl *PBD,
9196 unsigned index);
9297
93- void setBinding (PatternBindingDecl *binding, unsigned bindingIndex);
94-
9598 PatternBindingDecl *getBinding () const { return Binding; }
9699
97100 unsigned getBindingIndex () const { return SpareBits; }
Original file line number Diff line number Diff line change @@ -2004,6 +2004,11 @@ ParamDecl *PatternBindingInitializer::getImplicitSelfDecl() const {
20042004
20052005void PatternBindingInitializer::setBinding (PatternBindingDecl *binding,
20062006 unsigned bindingIndex) {
2007+ assert (binding);
2008+ assert (!Binding || Binding == binding &&
2009+ " Cannot change the binding after the fact" );
2010+ assert (!Binding || SpareBits == bindingIndex &&
2011+ " Cannot change the binding index after the fact" );
20072012 setParent (binding->getDeclContext ());
20082013 Binding = binding;
20092014 SpareBits = bindingIndex;
You can’t perform that action at this time.
0 commit comments