+ // Special case: you can assign a immutable local variable
+ // (e.g., `x = ...`) so long as it has never been initialized
+ // before (at this point in the flow).
+ if let &Place::Local(local) = place_span.0 {
+ if let Mutability::Not = self.mir.local_decls[local].mutability {
+ // check for reassignments to immutable local variables
+ self.check_if_reassignment_to_immutable_state(context, place_span, flow_state);
+ return;
+ }
+ }
+
+ // Otherwise, use the normal access permission rules.
+ self.access_place(