@@ -611,8 +611,8 @@ class PrintAST : public ASTVisitor<PrintAST> {
611
611
bool openBracket = true , bool closeBracket = true );
612
612
void printMembers (ArrayRef<Decl *> members, bool needComma = false ,
613
613
bool openBracket = true , bool closeBracket = true );
614
- void printNominalDeclGenericParams (NominalTypeDecl *decl);
615
- void printNominalDeclGenericRequirements (NominalTypeDecl *decl);
614
+ void printGenericDeclGenericParams (GenericContext *decl);
615
+ void printGenericDeclGenericRequirements (GenericContext *decl);
616
616
void printInherited (const Decl *decl);
617
617
618
618
void printEnumElement (EnumElementDecl *elt);
@@ -1655,13 +1655,13 @@ void PrintAST::printMembers(ArrayRef<Decl *> members, bool needComma,
1655
1655
Printer << " }" ;
1656
1656
}
1657
1657
1658
- void PrintAST::printNominalDeclGenericParams (NominalTypeDecl *decl) {
1658
+ void PrintAST::printGenericDeclGenericParams (GenericContext *decl) {
1659
1659
if (decl->getGenericParams ())
1660
1660
if (auto GenericSig = decl->getGenericSignature ())
1661
1661
printGenericSignature (GenericSig, PrintParams | InnermostOnly);
1662
1662
}
1663
1663
1664
- void PrintAST::printNominalDeclGenericRequirements (NominalTypeDecl *decl) {
1664
+ void PrintAST::printGenericDeclGenericRequirements (GenericContext *decl) {
1665
1665
if (decl->getGenericParams ())
1666
1666
if (auto GenericSig = decl->getGenericSignature ())
1667
1667
printGenericSignature (GenericSig, PrintRequirements | InnermostOnly);
@@ -1776,10 +1776,7 @@ void PrintAST::printSynthesizedExtension(Type ExtendedType,
1776
1776
1777
1777
printExtendedTypeName (ExtendedType, Printer, Options);
1778
1778
printInherited (ExtDecl);
1779
-
1780
- if (ExtDecl->getGenericParams ())
1781
- if (auto *GenericSig = ExtDecl->getGenericSignature ())
1782
- printGenericSignature (GenericSig, PrintRequirements | InnermostOnly);
1779
+ printGenericDeclGenericRequirements (ExtDecl);
1783
1780
}
1784
1781
if (Options.TypeDefinitions ) {
1785
1782
printMembersOfDecl (ExtDecl, false ,
@@ -1933,9 +1930,7 @@ void PrintAST::visitTypeAliasDecl(TypeAliasDecl *decl) {
1933
1930
[&]{
1934
1931
Printer.printName (decl->getName ());
1935
1932
}, [&]{ // Signature
1936
- if (decl->getGenericParams ())
1937
- if (auto *genericSig = decl->getGenericSignature ())
1938
- printGenericSignature (genericSig, PrintParams | InnermostOnly);
1933
+ printGenericDeclGenericParams (decl);
1939
1934
});
1940
1935
bool ShouldPrint = true ;
1941
1936
Type Ty = decl->getUnderlyingTypeLoc ().getType ();
@@ -1947,6 +1942,7 @@ void PrintAST::visitTypeAliasDecl(TypeAliasDecl *decl) {
1947
1942
if (ShouldPrint) {
1948
1943
Printer << " = " ;
1949
1944
printTypeLoc (decl->getUnderlyingTypeLoc ());
1945
+ printGenericDeclGenericRequirements (decl);
1950
1946
}
1951
1947
}
1952
1948
@@ -2008,10 +2004,10 @@ void PrintAST::visitEnumDecl(EnumDecl *decl) {
2008
2004
[&]{
2009
2005
Printer.printName (decl->getName ());
2010
2006
}, [&]{ // Signature
2011
- printNominalDeclGenericParams (decl);
2007
+ printGenericDeclGenericParams (decl);
2012
2008
});
2013
2009
printInherited (decl);
2014
- printNominalDeclGenericRequirements (decl);
2010
+ printGenericDeclGenericRequirements (decl);
2015
2011
}
2016
2012
if (Options.TypeDefinitions ) {
2017
2013
printMembersOfDecl (decl, false , true ,
@@ -2036,10 +2032,10 @@ void PrintAST::visitStructDecl(StructDecl *decl) {
2036
2032
[&]{
2037
2033
Printer.printName (decl->getName ());
2038
2034
}, [&]{ // Signature
2039
- printNominalDeclGenericParams (decl);
2035
+ printGenericDeclGenericParams (decl);
2040
2036
});
2041
2037
printInherited (decl);
2042
- printNominalDeclGenericRequirements (decl);
2038
+ printGenericDeclGenericRequirements (decl);
2043
2039
}
2044
2040
if (Options.TypeDefinitions ) {
2045
2041
printMembersOfDecl (decl, false , true ,
@@ -2064,11 +2060,11 @@ void PrintAST::visitClassDecl(ClassDecl *decl) {
2064
2060
[&]{
2065
2061
Printer.printName (decl->getName ());
2066
2062
}, [&]{ // Signature
2067
- printNominalDeclGenericParams (decl);
2063
+ printGenericDeclGenericParams (decl);
2068
2064
});
2069
2065
2070
2066
printInherited (decl);
2071
- printNominalDeclGenericRequirements (decl);
2067
+ printGenericDeclGenericRequirements (decl);
2072
2068
}
2073
2069
2074
2070
if (Options.TypeDefinitions ) {
@@ -2511,10 +2507,7 @@ void PrintAST::visitFuncDecl(FuncDecl *decl) {
2511
2507
Printer << " " ;
2512
2508
}
2513
2509
}, [&] { // Parameters
2514
- if (decl->isGeneric ())
2515
- if (auto *genericSig = decl->getGenericSignature ())
2516
- printGenericSignature (genericSig, PrintParams | InnermostOnly);
2517
-
2510
+ printGenericDeclGenericParams (decl);
2518
2511
printFunctionParameters (decl);
2519
2512
});
2520
2513
@@ -2538,9 +2531,7 @@ void PrintAST::visitFuncDecl(FuncDecl *decl) {
2538
2531
printTypeLoc (ResultTyLoc);
2539
2532
Printer.printStructurePost (PrintStructureKind::FunctionReturnType);
2540
2533
}
2541
- if (decl->isGeneric ())
2542
- if (auto *genericSig = decl->getGenericSignature ())
2543
- printGenericSignature (genericSig, PrintRequirements | InnermostOnly);
2534
+ printGenericDeclGenericRequirements (decl);
2544
2535
}
2545
2536
2546
2537
if (auto BodyFunc = Options.FunctionBody ) {
@@ -2639,10 +2630,7 @@ void PrintAST::visitSubscriptDecl(SubscriptDecl *decl) {
2639
2630
recordDeclLoc (decl, [&]{
2640
2631
Printer << " subscript" ;
2641
2632
}, [&] { // Parameters
2642
- if (decl->isGeneric ())
2643
- if (auto *genericSig = decl->getGenericSignature ())
2644
- printGenericSignature (genericSig, PrintParams | InnermostOnly);
2645
-
2633
+ printGenericDeclGenericParams (decl);
2646
2634
printParameterList (decl->getIndices (),
2647
2635
decl->hasInterfaceType ()
2648
2636
? decl->getIndicesInterfaceType ()
@@ -2661,9 +2649,7 @@ void PrintAST::visitSubscriptDecl(SubscriptDecl *decl) {
2661
2649
else
2662
2650
printTypeLoc (elementTy);
2663
2651
Printer.printStructurePost (PrintStructureKind::FunctionReturnType);
2664
- if (decl->isGeneric ())
2665
- if (auto *genericSig = decl->getGenericSignature ())
2666
- printGenericSignature (genericSig, PrintRequirements | InnermostOnly);
2652
+ printGenericDeclGenericRequirements (decl);
2667
2653
printAccessors (decl);
2668
2654
}
2669
2655
@@ -2699,16 +2685,11 @@ void PrintAST::visitConstructorDecl(ConstructorDecl *decl) {
2699
2685
break ;
2700
2686
}
2701
2687
2702
- if (decl->isGeneric ())
2703
- if (auto *genericSig = decl->getGenericSignature ())
2704
- printGenericSignature (genericSig, PrintParams | InnermostOnly);
2705
-
2688
+ printGenericDeclGenericParams (decl);
2706
2689
printFunctionParameters (decl);
2707
2690
});
2708
2691
2709
- if (decl->isGeneric ())
2710
- if (auto *genericSig = decl->getGenericSignature ())
2711
- printGenericSignature (genericSig, PrintRequirements | InnermostOnly);
2692
+ printGenericDeclGenericRequirements (decl);
2712
2693
2713
2694
if (auto BodyFunc = Options.FunctionBody ) {
2714
2695
Printer << " {" ;
0 commit comments