Conversation
|
Thanks for your pull request, @UplinkCoder! Bugzilla referencesYour PR doesn't reference any Bugzilla issue. If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog. Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub run digger -- build "master + dmd#12101" |
b82b7fc to
1a983d7
Compare
WalterBright
left a comment
There was a problem hiding this comment.
Fair warning: I'm very predisposed in favor of the far simpler approach in #12029
That said, what this is missing is:
- document or DIP describing what type functions are, how to use them, grammar, etc.
- a description of how the implementation is designed. There's a thousand lines of code with very little in the way of any description. Like what's a Ttype?
RazvanN7
left a comment
There was a problem hiding this comment.
Besides Walter's comments, this needs a changelog entry, a spec PR and all lines of code that were added need to be covered by tests (currently there are a lot of lines that are not covered).
|
@WalterBright the performance characteristics and ease of use of #12029 This PR is also additive as it provides a syntax and semantic extension that was not available previously and is behind a preview flag.
And that is incidentally the only change which might affect working code. |
|
Who put needs tests there? |
|
I did because there are a lot of uncovered lines in this PR. Just from the top of my head you still need tests for:
|
Ah yes. I shall add them. |
|
Would be interesting to find relevant benchmarks, using common patterns such as |
34cd6a5 to
90fc39b
Compare
@nordlow There should be a blog post soon-ish on what typefunctions are and aren't, some background on why they could be useful, and what their ethos implies for the rest of D |
this is a temporary meassure to pass phobos tests which are not expecting a type of types to exist
…ther ... we should fix that type mergeing
An is evaluated quite early in the process. Therefore when resolving the type or what is within an is expression, to determinte whether it has to deferred to CTFE for type function purposes the information is not enough to know that you are working on a type varible therefore we need to special case the type resolving process to treat type variables (a TypeExpression with a VarExp in it) specially.
… yay. well done guys!
673a96e to
2f87630
Compare
2f87630 to
bab70b1
Compare
|
On Hold while more fundamental issues are being addressed. |
Preview switch for typefunction functionality.