From 136bd7da8b9c509c17c9619813b57dd1a47a8e25 Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Fri, 14 Feb 2020 13:48:48 +0100 Subject: [PATCH] semantic type -> resolved type --- src/items/associated-items.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/items/associated-items.md b/src/items/associated-items.md index eba9507c7..5434c0495 100644 --- a/src/items/associated-items.md +++ b/src/items/associated-items.md @@ -98,8 +98,8 @@ Associated functions whose first parameter is named `self` are called *methods* and may be invoked using the [method call operator], for example, `x.foo()`, as well as the usual function call notation. -If the type of the `self` parameter is specified, it is limited to semantic -types generated by the following grammar (where `'lt` denotes some arbitrary +If the type of the `self` parameter is specified, it is limited to types resolving +to one generated by the following grammar (where `'lt` denotes some arbitrary lifetime): ```text @@ -107,9 +107,9 @@ P = &'lt S | &'lt mut S | Box | Rc | Arc | Pin

S = Self | P ``` -The `Self` terminal in this grammar is the semantic `Self` type and can be -replaced with the type being implemented, including type aliases or associated -type projections for the type. +The `Self` terminal in this grammar denotes a type resolving to the implementing type. +This can also include the contextual type alias `Self`, other type aliases, +or associated type projections resolving to the implementing type. ```rust # use std::rc::Rc;