Skip to content
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

record type inference failing #56

Closed
graydon opened this issue Jun 22, 2010 · 1 comment
Closed

record type inference failing #56

graydon opened this issue Jun 22, 2010 · 1 comment
Labels
A-typesystem Area: The type system

Comments

@graydon
Copy link
Contributor

graydon commented Jun 22, 2010

See test rec-auto.rs.

@graydon
Copy link
Contributor Author

graydon commented Jul 15, 2010

Dupe of #50, closing.

oli-obk pushed a commit to oli-obk/rust that referenced this issue Jul 19, 2017
various things that allow miri to crash less and execute more code
kazcw pushed a commit to kazcw/rust that referenced this issue Oct 23, 2018
Add assert_instr to the rest of avx.rs
dlrobertson pushed a commit to dlrobertson/rust that referenced this issue Nov 29, 2018
I went with "associated break" here to match the terminology
given by PR rust-lang#56.
dlrobertson pushed a commit to dlrobertson/rust that referenced this issue Nov 29, 2018
Aaron1011 pushed a commit to Aaron1011/rust that referenced this issue Oct 26, 2020
jacob-hughes referenced this issue in jacob-hughes/alloy Apr 29, 2021
56: Don't disable incremental GC. r=jacob-hughes a=ltratt

If the user wishes to do this they can set the GC_DISABLE_INCREMENTAL=1 environment variable.

Co-authored-by: Laurence Tratt <laurie@tratt.net>
djtech-dev pushed a commit to djtech-dev/rust that referenced this issue Dec 9, 2021
This tries to address concerns raised in rust-lang#56 in different ways with different tradeoffs:
1. Implicit `Deref` to the underlying function pointer is replace with an explicit unsafe method `into_inner`, but in most cases it shouldn't be necessary to use.
2. Provides function `Symbol::call` which guarantees that (a) backing storage will be alive as long as it's required for calling and (b) preserves `unsafe`ty for the public interface. This is done at the cost of less convenient invocation syntax (`symbol.call(a,b,c,...)` instead of `symbol(a,b,c,...)`).
3. Provides `Symbol::into_closure` which allows to cast a `Symbol` into an opaque Rust closure. This also guarantees that the backing storage will be kept alive as long as it's required for calling, and provides a more convenient syntax (you can use normal function calls like `closure(a,b,c,...)`) at the cost of losing `unsafe` marker in the interface of the resulting function (although conversion itself still has `unsafe`). You might argue that this is unacceptable tradeoff for a public API, but, unfortunately, we don't have `UnsafeFn` family of traits yet, and also there is lots of existing precedents in stdlib that do similar "pretend that it's safe" conversions like `Box::from_raw`, `Rc::from_raw`, `slice::from_raw_parts`, `str::from_utf8_unchecked`, etc.
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-typesystem Area: The type system
Projects
None yet
Development

No branches or pull requests

1 participant