-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
A-type-systemArea: Type systemArea: Type systemE-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.E-mentorCall for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.
Description
This was discussed at the recent work week, but it appears that our notes to not reflect a decision one way or another. I would expect this code to compile:
use std::sync::atomics;
fn main() {
let a = atomics::INIT_ATOMIC_UINT;
}
Specifically, you can "move" out of any non-mut
static, it just turns in to a memcpy. The contents of the static have already been validated to not own anything and have no destructors, so this should be safe.
Metadata
Metadata
Assignees
Labels
A-type-systemArea: Type systemArea: Type systemE-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.E-mentorCall for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
flaper87 commentedon Mar 31, 2014
Moves out of static items were disallowed as part of 8784d2f
Relaxing this to just mutable static items should be pretty straightforward. I'm tagging the issue as
e-easy
, I can mentor.malu commentedon Mar 31, 2014
I'd be interested to try this. Is it correct that I would either have to add a new option to
categorization
inmiddle/mem_categorization.rs
or add a boolean field to thecat_static_item
option to represent mutability?Edit: Ok, I guess that is unnecessary given that I can get the mutability through the
cmt_
struct. Am I understanding all this correctly?I should probably add I'm talking about changing the
check_is_legal_to_move_from
function inmiddle/borrowck/gather_loans/gather_moves.rs
.flaper87 commentedon Apr 1, 2014
@malu correct, you don't need to add anything to
cat_static_item
becausecmt
already has the information you need.The change consists in adding an arm for
cat_static_item
and returningtrue
orfalse
based on the mutability.malu commentedon Apr 1, 2014
Please see https://github.com/malu/rust/tree/issue-13233 and tell me if I did something wrong or if something is missing.
flaper87 commentedon Apr 1, 2014
@malu it's easier (and better) to comment on pull-requests. Would you mind submitting a PR ? I can provide feedback there. Thanks a lot for working on this.
nikomatsakis commentedon Apr 1, 2014
cc me
Allow move out of immutable static
huonw commentedon Nov 10, 2014
This role is now filled by
const
. Closing.Auto merge of rust-lang#13290 - Jarcho:interior_mut_quick, r=Alexendoo
Auto merge of rust-lang#13290 - Jarcho:interior_mut_quick, r=Alexendoo
Auto merge of rust-lang#13290 - Jarcho:interior_mut_quick, r=Alexendoo
Auto merge of rust-lang#13290 - Jarcho:interior_mut_quick, r=Alexendoo
Rewrite `non_copy_const` (rust-lang#13207)