File tree Expand file tree Collapse file tree 3 files changed +15
-3
lines changed Expand file tree Collapse file tree 3 files changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -2767,6 +2767,9 @@ class ValueDecl : public Decl {
2767
2767
// / some Q), or we might have a `NamedOpaqueReturnTypeRepr`.
2768
2768
TypeRepr *getOpaqueResultTypeRepr () const ;
2769
2769
2770
+ // / Get the representative for this value's result type, if it has one.
2771
+ TypeRepr *getResultTypeRepr () const ;
2772
+
2770
2773
// / Retrieve the attribute associating this declaration with a
2771
2774
// / result builder, if there is one.
2772
2775
CustomAttr *getAttachedResultBuilder () const ;
Original file line number Diff line number Diff line change @@ -893,7 +893,7 @@ namespace {
893
893
// / Retrieve the opaque generic parameter list if present, otherwise the normal generic parameter list.
894
894
template <typename T>
895
895
GenericParamList *getPotentiallyOpaqueGenericParams (T *decl) {
896
- if (auto opaqueRepr = decl->getOpaqueResultTypeRepr ()) {
896
+ if (auto opaqueRepr = decl->getResultTypeRepr ()) {
897
897
if (auto namedOpaque = dyn_cast<NamedOpaqueReturnTypeRepr>(opaqueRepr)) {
898
898
return namedOpaque->getGenericParams ();
899
899
}
Original file line number Diff line number Diff line change @@ -3058,7 +3058,8 @@ void ValueDecl::setOverriddenDecls(ArrayRef<ValueDecl *> overridden) {
3058
3058
request.cacheResult (overriddenVec);
3059
3059
}
3060
3060
3061
- TypeRepr *ValueDecl::getOpaqueResultTypeRepr () const {
3061
+ // To-Do: Replce calls to getOpaqueResultTypeRepr with getResultTypeRepr()
3062
+ TypeRepr *ValueDecl::getResultTypeRepr () const {
3062
3063
TypeRepr *returnRepr = nullptr ;
3063
3064
if (auto *VD = dyn_cast<VarDecl>(this )) {
3064
3065
if (auto *P = VD->getParentPattern ()) {
@@ -3069,7 +3070,7 @@ TypeRepr *ValueDecl::getOpaqueResultTypeRepr() const {
3069
3070
P = P->getSemanticsProvidingPattern ();
3070
3071
if (auto *NP = dyn_cast<NamedPattern>(P)) {
3071
3072
assert (NP->getDecl () == VD);
3072
- (void ) NP;
3073
+ (void )NP;
3073
3074
3074
3075
returnRepr = TP->getTypeRepr ();
3075
3076
}
@@ -3083,6 +3084,14 @@ TypeRepr *ValueDecl::getOpaqueResultTypeRepr() const {
3083
3084
returnRepr = SD->getElementTypeRepr ();
3084
3085
}
3085
3086
3087
+ return returnRepr;
3088
+ }
3089
+
3090
+ TypeRepr *ValueDecl::getOpaqueResultTypeRepr () const {
3091
+ TypeRepr *returnRepr = nullptr ;
3092
+
3093
+ returnRepr = this ->getResultTypeRepr ();
3094
+
3086
3095
auto *dc = getDeclContext ();
3087
3096
auto &ctx = dc->getASTContext ();
3088
3097
You can’t perform that action at this time.
0 commit comments