@@ -61,6 +61,11 @@ through a mechanism called ‘trait objects’.
6161
6262A dynamically sized type (DST) is a type without a statically known size or alignment.
6363
64+ ### Entity
65+
66+ An [ * entity* ] is a [ type] , [ item] , [ generic parameter] , [ variable binding] ,
67+ [ loop label] , [ lifetime] , [ field] , or [ attribute] .
68+
6469### Expression
6570
6671An expression is a combination of values, constants, variables, operators
@@ -123,6 +128,24 @@ This is not affected by applied type arguments. `struct Foo` is considered local
123128` Vec<Foo> ` is not. ` LocalType<ForeignType> ` is local. Type aliases do not
124129affect locality.
125130
131+ ### Name
132+
133+ A [ * name* ] is an [ identifier] or [ lifetime or loop label] that refers to an
134+ [ entity] ( #entity ) . A * name binding* is when an entity declaration introduces
135+ an identifier or label associated with that entity. [ Paths] ,
136+ identifiers, and labels are used to refer to an entity.
137+
138+ ### Name resolution
139+
140+ [ * Name resolution* ] is the compile-time process of tying [ paths] ,
141+ [ identifiers] , and [ labels] to [ entity] ( #entity ) declarations.
142+
143+ ### Namespace
144+
145+ A [ * namespace* ] is a collection of uniquely named [ entities] ( #entity ) .
146+ Namespaces can be organized in a hierarchy, where each level of the hierarchy
147+ has its own collection of named entities.
148+
126149### Nominal types
127150
128151Types that can be referred to by a path directly. Specifically [ enums] ,
@@ -133,11 +156,22 @@ Types that can be referred to by a path directly. Specifically [enums],
133156[ Traits] that can be used as [ trait objects] . Only traits that follow specific
134157[ rules] [ object safety ] are object safe.
135158
159+ ### Path
160+
161+ A [ * path* ] is a sequence of one or more path segments used to refer to an
162+ [ entity] ( #entity ) in the current scope or other levels of a
163+ [ namespace] ( #namespace ) hierarchy.
164+
136165### Prelude
137166
138167Prelude, or The Rust Prelude, is a small collection of items - mostly traits - that are
139168imported into every module of every crate. The traits in the prelude are pervasive.
140169
170+ ### Scope
171+
172+ A [ * scope* ] is the region of source text where a named [ entity] ( #entity ) may
173+ be referenced with that name.
174+
141175### Scrutinee
142176
143177A scrutinee is the expression that is matched on in ` match ` expressions and
@@ -216,17 +250,36 @@ example of an uninhabited type is the [never type] `!`, or an enum with no varia
216250
217251[ alignment ] : type-layout.md#size-and-alignment
218252[ associated item ] : #associated-item
253+ [ attribute ] : attributes.md
254+ [ *entity* ] : names.md
219255[ enums ] : items/enumerations.md
256+ [ field ] : expressions/field-expr.md
220257[ free item ] : #free-item
258+ [ generic parameter ] : items/generics.md
259+ [ identifier ] : identifiers.md
260+ [ identifiers ] : identifiers.md
221261[ implementation ] : items/implementations.md
222262[ implementations ] : items/implementations.md
223263[ inherent implementation ] : items/implementations.md#inherent-implementations
224264[ item ] : items.md
265+ [ item ] : items.md
266+ [ labels ] : tokens.md#lifetimes-and-loop-labels
267+ [ lifetime or loop label ] : tokens.md#lifetimes-and-loop-labels
268+ [ lifetime ] : tokens.md#lifetimes-and-loop-labels
269+ [ loop label ] : tokens.md#lifetimes-and-loop-labels
225270[ method ] : items/associated-items.md#methods
271+ [ *Name resolution* ] : names/name-resolution.md
272+ [ *name* ] : names.md
273+ [ *namespace* ] : names/namespaces.md
226274[ never type ] : types/never.md
227275[ object safety ] : items/traits.md#object-safety
276+ [ *path* ] : paths.md
277+ [ Paths ] : paths.md
278+ [ *scope* ] : names/scopes.md
228279[ structs ] : items/structs.md
229280[ trait objects ] : types/trait-object.md
230281[ traits ] : items/traits.md
282+ [ type ] : types.md
231283[ undefined-behavior ] : behavior-considered-undefined.md
232284[ unions ] : items/unions.md
285+ [ variable binding ] : patterns.md
0 commit comments