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

typeof() in the type language #3228

Closed
bblum opened this issue Aug 20, 2012 · 5 comments
Closed

typeof() in the type language #3228

bblum opened this issue Aug 20, 2012 · 5 comments
Labels
A-grammar Area: The grammar of Rust

Comments

@bblum
Copy link
Contributor

bblum commented Aug 20, 2012

I'm not sure if this would be useful in every-day code, but I just wrote some code where it would've been nice to say:

let foo: typeof(earlier_thing) = unsafe::transmute(...);

instead of

let foo: complicated::typename::that_might_change_later = unsafe::transmute(...);
@sanxiyn
Copy link
Member

sanxiyn commented May 3, 2013

Nominating for backwards compatible milestone.

@graydon
Copy link
Contributor

graydon commented Jun 20, 2013

reserving the keyword at least is required for this to be backwards-compatible; actual feature is later

@graydon
Copy link
Contributor

graydon commented Jun 20, 2013

accepted for backwards-compatible milestone

@emberian
Copy link
Member

emberian commented Aug 5, 2013

This would be very nice.

@thestinger
Copy link
Contributor

This is the kind of thing we really need to go through the new formal RFC process. There's never going to be enough discussion here. It's no longer a backwards compatibility issue because typeof is reserved.

jaisnan pushed a commit to jaisnan/rust-dev that referenced this issue Jul 29, 2024
…-lang#3305)

When verifying contracts, CBMC initializes all static variables to
non-deterministic values, except for those with constant types or with
types / values annotated with `ID_C_no_nondet_initialization`.

Kani compiler never set these flags, which caused spurious failures when
verification depended on promoted constants or constant static
variables. This fix changes that.

First, I did a bit of refactoring since we may need to set this `Symbol`
property at a later time for static variables.
I also got rid of the initialization function, since the allocation
initialization can be done directly from an expression.

Then, I added the new property to the `Symbol` type. In CBMC, this is a
property of the type or expression. However, I decided to add it to
`Symbol` to avoid having to add this attribute to all variants of `Type`
and `Expr`.

Resolves rust-lang#3228
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-grammar Area: The grammar of Rust
Projects
None yet
Development

No branches or pull requests

5 participants