File tree Expand file tree Collapse file tree 2 files changed +17
-0
lines changed Expand file tree Collapse file tree 2 files changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -40,6 +40,21 @@ static bool isGlobalOrStaticVar(VarDecl *VD) {
40
40
return VD->isStatic () || VD->getDeclContext ()->isModuleScopeContext ();
41
41
}
42
42
43
+ void TBDGenVisitor::visitPatternBindingDecl (PatternBindingDecl *PBD) {
44
+ for (auto &entry : PBD->getPatternList ()) {
45
+ auto *var = entry.getAnchoringVarDecl ();
46
+
47
+ // Non-global variables might have an explicit initializer symbol.
48
+ if (entry.getInit () && !isGlobalOrStaticVar (var)) {
49
+ auto declRef =
50
+ SILDeclRef (var, SILDeclRef::Kind::StoredPropertyInitializer);
51
+ // Stored property initializers for public properties are currently
52
+ // public.
53
+ addSymbol (declRef);
54
+ }
55
+ }
56
+ }
57
+
43
58
void TBDGenVisitor::addSymbol (SILDeclRef declRef) {
44
59
auto linkage = effectiveLinkageForClassMember (
45
60
declRef.getLinkage (ForDefinition),
Original file line number Diff line number Diff line change @@ -84,6 +84,8 @@ class TBDGenVisitor : public ASTVisitor<TBDGenVisitor> {
84
84
addSymbol (" main" );
85
85
}
86
86
87
+ void visitPatternBindingDecl (PatternBindingDecl *PBD);
88
+
87
89
void visitAbstractFunctionDecl (AbstractFunctionDecl *AFD);
88
90
89
91
void visitNominalTypeDecl (NominalTypeDecl *NTD);
You can’t perform that action at this time.
0 commit comments