1919
2020#include " swift/AST/Attr.h"
2121#include " swift/AST/DeclContext.h"
22+ #include " swift/AST/GenericSignature.h"
2223#include " swift/AST/Identifier.h"
2324#include " swift/AST/Type.h"
2425#include " swift/AST/TypeAlignments.h"
3435namespace swift {
3536 class ASTWalker ;
3637 class DeclContext ;
37- class GenericEnvironment ;
3838 class IdentTypeRepr ;
3939 class TupleTypeRepr ;
4040 class TypeDecl ;
@@ -492,14 +492,14 @@ inline IdentTypeRepr::ComponentRange IdentTypeRepr::getComponentRange() {
492492// / (x: Foo, y: Bar) -> Baz
493493// / \endcode
494494class FunctionTypeRepr : public TypeRepr {
495- // The generic params / environment / substitutions fields are only used
495+ // The generic params / signature / substitutions fields are only used
496496 // in SIL mode, which is the only time we can have polymorphic and
497497 // substituted function values.
498498 GenericParamList *GenericParams;
499- GenericEnvironment *GenericEnv ;
499+ GenericSignature GenericSig ;
500500 ArrayRef<TypeRepr *> InvocationSubs;
501501 GenericParamList *PatternGenericParams;
502- GenericEnvironment *PatternGenericEnv ;
502+ GenericSignature PatternGenericSig ;
503503 ArrayRef<TypeRepr *> PatternSubs;
504504
505505 TupleTypeRepr *ArgsTy;
@@ -516,37 +516,37 @@ class FunctionTypeRepr : public TypeRepr {
516516 ArrayRef<TypeRepr *> patternSubs = {},
517517 ArrayRef<TypeRepr *> invocationSubs = {})
518518 : TypeRepr(TypeReprKind::Function),
519- GenericParams (genericParams), GenericEnv( nullptr ),
519+ GenericParams (genericParams),
520520 InvocationSubs(invocationSubs),
521- PatternGenericParams(patternGenericParams), PatternGenericEnv( nullptr ),
521+ PatternGenericParams(patternGenericParams),
522522 PatternSubs(patternSubs),
523523 ArgsTy(argsTy), RetTy(retTy),
524524 AsyncLoc(asyncLoc), ThrowsLoc(throwsLoc), ArrowLoc(arrowLoc) {
525525 }
526526
527527 GenericParamList *getGenericParams () const { return GenericParams; }
528- GenericEnvironment * getGenericEnvironment () const { return GenericEnv ; }
528+ GenericSignature getGenericSignature () const { return GenericSig ; }
529529
530530 GenericParamList *getPatternGenericParams () const {
531531 return PatternGenericParams;
532532 }
533- GenericEnvironment * getPatternGenericEnvironment () const {
534- return PatternGenericEnv ;
533+ GenericSignature getPatternGenericSignature () const {
534+ return PatternGenericSig ;
535535 }
536536
537537 ArrayRef<TypeRepr*> getPatternSubstitutions () const { return PatternSubs; }
538538 ArrayRef<TypeRepr*> getInvocationSubstitutions () const {
539539 return InvocationSubs;
540540 }
541541
542- void setPatternGenericEnvironment (GenericEnvironment *genericEnv ) {
543- assert (PatternGenericEnv == nullptr );
544- PatternGenericEnv = genericEnv ;
542+ void setPatternGenericSignature (GenericSignature genericSig ) {
543+ assert (!PatternGenericSig );
544+ PatternGenericSig = genericSig ;
545545 }
546546
547- void setGenericEnvironment (GenericEnvironment *genericEnv ) {
548- assert (GenericEnv == nullptr );
549- GenericEnv = genericEnv ;
547+ void setGenericSignature (GenericSignature genericSig ) {
548+ assert (!GenericSig );
549+ GenericSig = genericSig ;
550550 }
551551
552552 TupleTypeRepr *getArgsTypeRepr () const { return ArgsTy; }
@@ -1239,7 +1239,7 @@ class SILBoxTypeRepr final : public TypeRepr,
12391239 SILBoxTypeReprField, TypeRepr *> {
12401240 friend TrailingObjects;
12411241 GenericParamList *GenericParams;
1242- GenericEnvironment *GenericEnv = nullptr ;
1242+ GenericSignature GenericSig ;
12431243
12441244 SourceLoc LBraceLoc, RBraceLoc;
12451245 SourceLoc ArgLAngleLoc, ArgRAngleLoc;
@@ -1280,9 +1280,9 @@ class SILBoxTypeRepr final : public TypeRepr,
12801280 SourceLoc ArgLAngleLoc, ArrayRef<TypeRepr *> GenericArgs,
12811281 SourceLoc ArgRAngleLoc);
12821282
1283- void setGenericEnvironment (GenericEnvironment *Env ) {
1284- assert (!GenericEnv );
1285- GenericEnv = Env ;
1283+ void setGenericSignature (GenericSignature Sig ) {
1284+ assert (!GenericSig );
1285+ GenericSig = Sig ;
12861286 }
12871287
12881288 ArrayRef<Field> getFields () const {
@@ -1297,8 +1297,8 @@ class SILBoxTypeRepr final : public TypeRepr,
12971297 GenericParamList *getGenericParams () const {
12981298 return GenericParams;
12991299 }
1300- GenericEnvironment * getGenericEnvironment () const {
1301- return GenericEnv ;
1300+ GenericSignature getGenericSignature () const {
1301+ return GenericSig ;
13021302 }
13031303
13041304 SourceLoc getLBraceLoc () const { return LBraceLoc; }
0 commit comments