@@ -2241,20 +2241,20 @@ class ParameterTypeFlags {
22412241
22422242 ParameterTypeFlags (bool variadic, bool autoclosure, bool nonEphemeral,
22432243 ParamSpecifier specifier, bool isolated, bool noDerivative,
2244- bool compileTimeConst)
2244+ bool compileTimeConst, bool hasResultDependsOn )
22452245 : value((variadic ? Variadic : 0 ) | (autoclosure ? AutoClosure : 0 ) |
22462246 (nonEphemeral ? NonEphemeral : 0 ) |
2247- uint8_t (specifier) << SpecifierShift |
2248- (isolated ? Isolated : 0 ) |
2247+ uint8_t (specifier) << SpecifierShift | (isolated ? Isolated : 0 ) |
22492248 (noDerivative ? NoDerivative : 0 ) |
2250- (compileTimeConst ? CompileTimeConst : 0 )){}
2249+ (compileTimeConst ? CompileTimeConst : 0 ) |
2250+ (hasResultDependsOn ? ResultDependsOn : 0 )) {}
22512251
22522252 // / Create one from what's present in the parameter type
22532253 inline static ParameterTypeFlags
22542254 fromParameterType (Type paramTy, bool isVariadic, bool isAutoClosure,
22552255 bool isNonEphemeral, ParamSpecifier ownership,
2256- bool isolated, bool isNoDerivative,
2257- bool compileTimeConst );
2256+ bool isolated, bool isNoDerivative, bool compileTimeConst,
2257+ bool hasResultDependsOn );
22582258
22592259 bool isNone () const { return !value; }
22602260 bool isVariadic () const { return value.contains (Variadic); }
@@ -2421,7 +2421,8 @@ class YieldTypeFlags {
24212421 /* autoclosure*/ false ,
24222422 /* nonEphemeral*/ false , getOwnershipSpecifier (),
24232423 /* isolated*/ false , /* noDerivative*/ false ,
2424- /* compileTimeConst*/ false );
2424+ /* compileTimeConst*/ false ,
2425+ /* hasResultDependsOn*/ false );
24252426 }
24262427
24272428 bool operator ==(const YieldTypeFlags &other) const {
@@ -7517,7 +7518,7 @@ inline TupleTypeElt TupleTypeElt::getWithType(Type T) const {
75177518inline ParameterTypeFlags ParameterTypeFlags::fromParameterType (
75187519 Type paramTy, bool isVariadic, bool isAutoClosure, bool isNonEphemeral,
75197520 ParamSpecifier ownership, bool isolated, bool isNoDerivative,
7520- bool compileTimeConst) {
7521+ bool compileTimeConst, bool hasResultDependsOn ) {
75217522 // FIXME(Remove InOut): The last caller that needs this is argument
75227523 // decomposition. Start by enabling the assertion there and fixing up those
75237524 // callers, then remove this, then remove
@@ -7527,8 +7528,8 @@ inline ParameterTypeFlags ParameterTypeFlags::fromParameterType(
75277528 ownership == ParamSpecifier::InOut);
75287529 ownership = ParamSpecifier::InOut;
75297530 }
7530- return {isVariadic, isAutoClosure, isNonEphemeral, ownership, isolated ,
7531- isNoDerivative, compileTimeConst};
7531+ return {isVariadic, isAutoClosure, isNonEphemeral, ownership ,
7532+ isolated, isNoDerivative, compileTimeConst, hasResultDependsOn };
75327533}
75337534
75347535inline const Type *BoundGenericType::getTrailingObjectsPointer () const {
0 commit comments