@@ -2719,8 +2719,8 @@ class OpaqueTypeDecl final :
27192719 // / abstracted underlying types.
27202720 GenericSignature OpaqueInterfaceGenericSignature;
27212721
2722- // / The generic parameter that represents the underlying type .
2723- GenericTypeParamType * UnderlyingInterfaceType;
2722+ // / The underlying type, which will involve the opaque generic parameters .
2723+ Type UnderlyingInterfaceType;
27242724
27252725 // / If known, the underlying type and conformances of the opaque type,
27262726 // / expressed as a SubstitutionMap for the opaque interface generic signature.
@@ -2734,7 +2734,7 @@ class OpaqueTypeDecl final :
27342734 DeclContext *DC,
27352735 GenericSignature OpaqueInterfaceGenericSignature,
27362736 ArrayRef<OpaqueReturnTypeRepr *> OpaqueReturnTypeReprs,
2737- GenericTypeParamType * UnderlyingInterfaceType);
2737+ Type UnderlyingInterfaceType);
27382738
27392739 unsigned getNumOpaqueReturnTypeReprs () const {
27402740 return NamingDeclAndHasOpaqueReturnTypeRepr.getInt ()
@@ -2752,7 +2752,7 @@ class OpaqueTypeDecl final :
27522752 DeclContext *DC,
27532753 GenericSignature OpaqueInterfaceGenericSignature,
27542754 ArrayRef<OpaqueReturnTypeRepr *> OpaqueReturnTypeReprs,
2755- GenericTypeParamType * UnderlyingInterfaceType);
2755+ Type UnderlyingInterfaceType);
27562756
27572757 ValueDecl *getNamingDecl () const {
27582758 return NamingDeclAndHasOpaqueReturnTypeRepr.getPointer ();
@@ -2794,10 +2794,7 @@ class OpaqueTypeDecl final :
27942794 }
27952795
27962796 // / The underlying interface type describing the whole opaque type.
2797- // /
2798- // / FIXME: Structured opaque types will generalize this to an
2799- // / arbitrary type.
2800- GenericTypeParamType *getUnderlyingInterfaceType () const {
2797+ Type getUnderlyingInterfaceType () const {
28012798 return UnderlyingInterfaceType;
28022799 }
28032800
0 commit comments