-
Notifications
You must be signed in to change notification settings - Fork 12.5k
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
Design Meeting Notes, 5/26/2017 #16114
Comments
Weak type detection
|
5/26/2017, probably? |
yup. fixed. |
TL;DRI've laid out my thoughts on how #9366 might be solved and some of the experience I've acquired while trying to make it work. #9366I made several attempts to tackle this, however unfortunately all of them had considerable drawbacks. Recently I came up with a new scheme, that I haven't tried implementing yet, but has some potential to actually work. The only languages that I know that support proper polymorphic unification are all ML based. They use unification solvers, that's why I tried to use one as well. The big hurdles that hit me were:
Sketches of the new idea:
How are the outlined problems solved?
Is this the only approach?Arbitrary polymorphic unification seems to preclude a unification solver. Another solution would be truly novel. On unificationUnification can be done in an ad-hoc fashion, however the separation of the process into constraint generation and subsequent solving adds a lot of freedom and simplicity from a logical perspective. Ideas that I've tried but have lead to a dead end:
PS: I'll try to play around with the above idea during the weekend. If something happens I'll put up a PR. |
EDIT: Comment moved to the appropriate issue: #16093 (comment) |
I have a basic implementation of the proposed logic from #16114 (comment). I've shared my current progress and comments in #9949 (comment). |
@gcnew get yourself hired at TS@MS, stop wasting everyone's time! :) |
Propagated Inference for Uninstantiated (Free) Type Parameters (#9366)
Given #16072, we can now make more powerful inferences given contextual types on the return type of a call.
However, given the following:
A = {}
,B = {}
,C = {}
.@mhegazy may have notes on weak types (#16047) and synthesized namespace records (#16093)
The text was updated successfully, but these errors were encountered: