@@ -5336,19 +5336,14 @@ CanTypeWrapper<OpenedArchetypeType> OpenedArchetypeType::getNew(
53365336 properties));
53375337}
53385338
5339- CanTypeWrapper<OpenedArchetypeType>
5340- OpenedArchetypeType::get (CanType existential, std::optional<UUID> knownID) {
5341- assert (existential->isExistentialType ());
5342- auto interfaceType = OpenedArchetypeType::getSelfInterfaceTypeFromContext (
5343- GenericSignature (), existential->getASTContext ());
5344- return get (existential, interfaceType, knownID);
5345- }
5346-
53475339CanOpenedArchetypeType OpenedArchetypeType::get (CanType existential,
5348- Type interfaceType,
53495340 std::optional<UUID> knownID) {
5341+ assert (existential->isExistentialType ());
53505342 assert (!existential->hasTypeParameter ());
53515343
5344+ auto interfaceType = OpenedArchetypeType::getSelfInterfaceTypeFromContext (
5345+ GenericSignature (), existential->getASTContext ());
5346+
53525347 if (!knownID)
53535348 knownID = UUID::fromTime ();
53545349
@@ -5362,28 +5357,20 @@ CanOpenedArchetypeType OpenedArchetypeType::get(CanType existential,
53625357 return CanOpenedArchetypeType (result);
53635358}
53645359
5365- Type OpenedArchetypeType::getAny (Type existential, Type interfaceTy ) {
5360+ Type OpenedArchetypeType::getAny (Type existential) {
53665361 assert (existential->isAnyExistentialType ());
5362+
53675363 if (auto metatypeTy = existential->getAs <ExistentialMetatypeType>()) {
5368- auto instanceTy =
5369- metatypeTy->getExistentialInstanceType ()->getCanonicalType ();
5370- auto openedInstanceTy = OpenedArchetypeType::getAny (
5371- instanceTy, interfaceTy);
5364+ auto instanceTy = metatypeTy->getExistentialInstanceType ();
5365+ auto openedInstanceTy = OpenedArchetypeType::getAny (instanceTy);
53725366 if (metatypeTy->hasRepresentation ()) {
53735367 return MetatypeType::get (openedInstanceTy,
53745368 metatypeTy->getRepresentation ());
53755369 }
53765370 return MetatypeType::get (openedInstanceTy);
53775371 }
5378- assert (existential->isExistentialType ());
5379- return OpenedArchetypeType::get (existential->getCanonicalType (),
5380- interfaceTy);
5381- }
53825372
5383- Type OpenedArchetypeType::getAny (Type existential) {
5384- auto interfaceTy = OpenedArchetypeType::getSelfInterfaceTypeFromContext (
5385- GenericSignature (), existential->getASTContext ());
5386- return getAny (existential, interfaceTy);
5373+ return OpenedArchetypeType::get (existential->getCanonicalType ());
53875374}
53885375
53895376void SubstitutionMap::Storage::Profile (
0 commit comments