New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[REG2.066] Issue 13294 - [IFTI] IFTI fails or works incorrectly for function with const and mutable ref
parameters of most types
#3896
Conversation
To @WalterBright @andralex @AndrewEdwards and all other comitters: Issue 13294 is a terrible regression in 2.066 release so it breaks many existing template function code. I think we should release minor update 2.066.1 in order to fix 13294. |
@@ -1074,6 +1074,31 @@ MATCH TemplateDeclaration::leastAsSpecialized(Scope *sc, TemplateDeclaration *td | |||
return MATCHnomatch; | |||
} | |||
|
|||
struct TypeDeduced : Type |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs to be a class, not a struct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
d05f866
to
ee7c262
Compare
… with const and mutable `ref` parameters of most types This is more better implementation of enhancement 12290. The first implementation dlang#3353 was incomplete, so sadly it had introduced many IFTI regressions - 12403, 13026, 13180, 13223, and 13294. Eventually I noticed that using typeMerge was wrong. It was the biggest root the regressions. And, the enhancement 13127 was pointless change. Now it is mostly reverted.
The number of changes for a patch to merge with 2.066 makes me nervous, but will give it a try. |
Auto-merge toggled on |
[REG2.066] Issue 13294 - [IFTI] IFTI fails or works incorrectly for function with const and mutable `ref` parameters of most types
[REG2.066] Issue 13294 - [IFTI] IFTI fails or works incorrectly for function with const and mutable `ref` parameters of most types
Adding a new type of |
This pull request introduced a regression: |
This PR introduced a regression: |
https://issues.dlang.org/show_bug.cgi?id=13294
This is more better implementation of enhancement 12290.
The first implementation #3353 was incomplete, so sadly it had introduced many IFTI regressions - 12403, 13026, 13180, 13223, and 13294.
Eventually I noticed that using typeMerge was wrong. It was the biggest root the regressions.
And, the enhancement 13127 was pointless change. Now it is mostly reverted.