-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
Intrinsic overhaul #7254
Intrinsic overhaul #7254
Conversation
Awesome. I've been wanting this forever. Instead of moving the visitor lang items to |
Hm, I guess there's a close relationship between these lang items and the intrinsics since they show up in the intrinsic signatures. Maybe someone else has an opinion. |
Update: this now also removes |
Rebased on top of the trans refactoring. |
Update: added a commit that removes the unused |
Great. I don't especially care where they get relocated to. Intrinsic wasn't an especially accurate name for this sort of thing. Maybe just lang items in reflect. |
This fixes part of #3730, but not all. Also changes the TyDesc struct to be equivalent with the generated code, with the hope that the above issue may one day be closed for good, i.e. that the TyDesc type can completely be specified in the Rust sources and not be generated.
To achieve this, the following changes were made: * Move TyDesc, TyVisitor and Opaque to std::unstable::intrinsics * Convert TyDesc, TyVisitor and Opaque to lang items instead of specially handling the intrinsics module * Removed TypeDesc, FreeGlue and get_type_desc() from sys Fixes #3475.
Towards #4812. Also includes some minor cleanups.
TyDesc, TyVisitor and intrinsic are not used anymore.
To remove the environment pointer, support for function pointers without an environment argument is needed (i.e. a fixed version of #6661).
I tried to debug the failure on windows, but didn't get very far. gdb backtraces told me that it appears to fail an assert in |
I bisected the failure, the offending commit is 469f394, the second commit. |
The failure on windows should be fixed now. |
This patch ensures that the multiple extern definitions of `free` in the run-pass tests have the same declaration, working around #7352.
The latest merge attempt seems to have been interrupted manually while building LLVM. Could I get a retry? |
Move `needless_borrow` to style fixes: rust-lang#3742 rust-lang#7105 should be merged first to fix the false positive. changelog: move `needless_borrow` from `nursery` to `style`
This sets the
get_tydesc()
return type correctly and removes the intrinsic module. See #3730, #3475.Update: this now also removes the unused shape fields in tydescs.