@@ -50,58 +50,6 @@ size_t GenericEnvironment::numTrailingObjects(OverloadToken<Type>) const {
5050 return getGenericParams ().size ();
5151}
5252
53- GenericSignature GenericEnvironment::getRawGenericSignature () const {
54- switch (getKind ()) {
55- case Kind::Normal:
56- case Kind::OpenedExistential:
57- return SignatureAndKind.getPointer ();
58-
59- case Kind::Opaque:
60- return getOpaqueTypeDecl ()->getOpaqueInterfaceGenericSignature ();
61- }
62- }
63-
64- GenericSignature GenericEnvironment::getGenericSignature () const {
65- switch (getKind ()) {
66- case Kind::Normal:
67- case Kind::OpenedExistential:
68- return SignatureAndKind.getPointer ();
69-
70- case Kind::Opaque:
71- if (auto sig = SignatureAndKind.getPointer ())
72- return sig;
73-
74- // Build signature below.
75- break ;
76- }
77-
78- // Create a new opaque archetype.
79- // It lives in an environment in which the interface generic arguments of the
80- // decl have all been same-type-bound to the arguments from our substitution
81- // map.
82- SmallVector<Requirement, 2 > newRequirements;
83-
84- // Same-type-constrain the arguments in the outer signature to their
85- // replacements in the substitution map.
86- auto opaqueDecl = getOpaqueTypeDecl ();
87- auto subs = getOpaqueSubstitutions ();
88- if (auto outerSig = opaqueDecl->getGenericSignature ()) {
89- for (auto outerParam : outerSig.getGenericParams ()) {
90- auto boundType = Type (outerParam).subst (subs);
91- newRequirements.push_back (
92- Requirement (RequirementKind::SameType, Type (outerParam), boundType));
93- }
94- }
95-
96- auto signature = buildGenericSignature (
97- opaqueDecl->getASTContext (),
98- opaqueDecl->getOpaqueInterfaceGenericSignature (),
99- /* genericParams=*/ { },
100- std::move (newRequirements));
101- SignatureAndKind.setPointer (signature);
102- return signature;
103- }
104-
10553// / Retrieve the array containing the context types associated with the
10654// / generic parameters, stored in parallel with the generic parameters of the
10755// / generic signature.
@@ -120,7 +68,7 @@ ArrayRef<Type> GenericEnvironment::getContextTypes() const {
12068
12169TypeArrayView<GenericTypeParamType>
12270GenericEnvironment::getGenericParams () const {
123- return getRawGenericSignature ().getGenericParams ();
71+ return getGenericSignature ().getGenericParams ();
12472}
12573
12674OpaqueTypeDecl *GenericEnvironment::getOpaqueTypeDecl () const {
@@ -272,7 +220,7 @@ Type TypeBase::mapTypeOutOfContext() {
272220
273221Type
274222GenericEnvironment::getOrCreateArchetypeFromInterfaceType (Type depType) {
275- auto genericSig = getRawGenericSignature ();
223+ auto genericSig = getGenericSignature ();
276224 LookUpConformanceInSignature conformanceLookupFn (genericSig.getPointer ());
277225
278226 auto requirements = genericSig->getLocalRequirements (depType);
@@ -425,7 +373,7 @@ Type GenericEnvironment::mapTypeIntoContext(
425373}
426374
427375Type GenericEnvironment::mapTypeIntoContext (Type type) const {
428- auto sig = getRawGenericSignature ();
376+ auto sig = getGenericSignature ();
429377 return mapTypeIntoContext (type, LookUpConformanceInSignature (sig.getPointer ()));
430378}
431379
0 commit comments