r[expr.path]
# Path expressions

r[expr.path.syntax]
```grammar,expressions
PathExpression ->
      PathInExpression
    | QualifiedPathInExpression
```

r[expr.path.intro]
A [path] used as an expression context denotes either a local variable or an item.

r[expr.path.place]
Path expressions that resolve to local or static variables are [place expressions]; other paths are [value expressions].

r[expr.path.safety]
Using a [`static mut`] variable requires an [`unsafe` block].

```rust
# mod globals {
#     pub static STATIC_VAR: i32 = 5;
#     pub static mut STATIC_MUT_VAR: i32 = 7;
# }
# let local_var = 3;
local_var;
globals::STATIC_VAR;
unsafe { globals::STATIC_MUT_VAR };
let some_constructor = Some::<i32>;
let push_integer = Vec::<i32>::push;
let slice_reverse = <[i32]>::reverse;
```

r[expr.path.const]
Evaluation of associated constants is handled the same way as [`const` blocks].

[place expressions]: ../expressions.md#place-expressions-and-value-expressions
[value expressions]: ../expressions.md#place-expressions-and-value-expressions
[path]: ../paths.md
[`static mut`]: ../items/static-items.md#mutable-statics
[`unsafe` block]: block-expr.md#unsafe-blocks
[`const` blocks]: block-expr.md#const-blocks
