In a method body, a path expression consisting only of the keyword self should resolve to the (binding of the) method's 'self parameter'.
I believe at the moment the FLS says this resolves to the containing module.
Example:
struct MyType {
x: (),
}
impl MyType {
fn simple_method(self) {
self.x;
}
}
Looking at the self.x FieldAccessExpression:
The part before the . is an UnqualifiedPathExpression whose single SimplePathSegment is the keyword self.
§14.9.4.2 "Path Expression Resolution" says (in fls_dc0yv4306p82) that we resolve the leftmost (and only) segment using general path resolution.
§14.9.4:12 (fls_ri50nc2dg7c4) says that a path segment which is the keyword self resolves to "the entity of the current module".
I've also filed rust-lang/reference#1427
In a method body, a path expression consisting only of the keyword
selfshould resolve to the (binding of the) method's 'self parameter'.I believe at the moment the FLS says this resolves to the containing module.
Example:
Looking at the
self.xFieldAccessExpression:The part before the
.is anUnqualifiedPathExpressionwhose singleSimplePathSegmentis the keywordself.§14.9.4.2 "Path Expression Resolution" says (in
fls_dc0yv4306p82) that we resolve the leftmost (and only) segment using general path resolution.§14.9.4:12 (
fls_ri50nc2dg7c4) says that a path segment which is the keywordselfresolves to "the entity of the current module".I've also filed rust-lang/reference#1427