Skip to content

Commit 27d4f95

Browse files
committed
Fix typos
1 parent 118f948 commit 27d4f95

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

features/rfc-oop-constructors.rst

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ For example:
3535
procedure T2'Constructor (Self : in out T2; Some_Value : Integer);
3636
end P;
3737
38-
As soon as a constructor exist, an objects cannot be created without calling one
38+
As soon as a constructor exist, objects cannot be created without calling one
3939
of the available constructors, omitting the self parameter. This call is made on
4040
the object creation, using the type followed by 'Make and the
4141
constructor parameters. When preceded by a `new` operator, it creates an
@@ -55,11 +55,11 @@ object on the heap. E.g:
5555
In the case of objects containing other objects, innermost objects constructors
5656
are called first, before their containing object.
5757

58-
The `'Make'` function is automatically generated by the compilers. It has
58+
The `'Make'` function is automatically generated by the compiler. It has
5959
the same parameters, default values and default expressions as the constructor
6060
it calls, with the exception of the first parameter. T'Make is not intrinsic,
6161
it has the same convention as a function of the same profile, and can be used
62-
e.g. as a generic parameter or through a access to subprogram.
62+
e.g. as a generic parameter or through an access to subprogram.
6363

6464
Note that constructors will be "scoped" in a future extension of the RFC, but
6565
the scoping notation isn't strictly necessary to implement initial semantics.
@@ -127,15 +127,15 @@ field by field its additional components, calling component copy constructors if
127127
necessary.
128128

129129
Note that, similar to the parameterless constructor, copy constructor may be
130-
explicitely or implicitely called:
130+
explicitly or implicitly called:
131131

132132
.. code-block:: ada
133133
134134
V1 : T; -- implicit parameterless constructor call
135135
V2 : T := V1; -- implicit copy constructor call
136136
V3 : T := T'Make (V1); -- explicit copy constructor call
137137
138-
Note that by-copy constructor are also called in assignments situations
138+
Note that by-copy constructors are also called in assignments situations
139139
(following the call to a destructor). e.g.:
140140

141141
.. code-block:: ada
@@ -153,7 +153,7 @@ Super Constructor Call
153153

154154
By default, the parent constructor called is the parameterless constructor.
155155
A parametric constructor can be called instead by using the ``Super`` aspect
156-
in the constuctor body, For example:
156+
in the constructor body. For example:
157157

158158
.. code-block:: ada
159159
@@ -189,7 +189,7 @@ Note that the constructor of an abstract type can be called here, for example:
189189
end Child'Constructor;
190190
191191
When valuating values in the Super aspect, the object under construction does
192-
not exit yet. It is illegal to refer to its parameter in the aspect.
192+
not exist yet. It is illegal to refer to its parameter in the aspect.
193193

194194
Initialization Lists
195195
--------------------
@@ -283,7 +283,7 @@ initialized as described at declaration time. For example:
283283
V2 : C := C'Make ("ALTERNATE A"); -- Will print ALTERNATE A, B FROM RECORD
284284
285285
Note for implementers - the objective of the semantic above is to make
286-
initialization as efficient as possible and to avoid undecessary processing.
286+
initialization as efficient as possible and to avoid unnecessary processing.
287287
Conceptually, a developer would expect to have a specific initialization
288288
procedure generated for each constructor (or maybe, have the initialization
289289
directly expanded in the constructor).
@@ -507,8 +507,8 @@ of a discriminant other than by valuating it in a constructor. However, it
507507
remains possible to constrain a subtype to be of a certain discriminant type.
508508

509509
For simple record types, this is done either by creating a subtype or by
510-
providing a distriminant constrain at variable or component declaration. This
511-
cannot however be used to create a value. For exmample:
510+
providing a discriminant constraint at variable or component declaration. This
511+
cannot however be used to create a value. For example:
512512

513513
.. code-block:: ada
514514
@@ -556,7 +556,7 @@ Constructors and Type Predicates
556556

557557
Type predicates are meant to check the consistency of a type. In the context
558558
of a type that has constructor, the consistency is expected to be true when
559-
exiting the constructor. In particular, the initializion list is not expected
559+
exiting the constructor. In particular, the initialization list is not expected
560560
to create a predicate-valid type - predicates will only be checked after the
561561
constructor has been processed.
562562

@@ -566,7 +566,7 @@ Constructors Presence Guarantees
566566
Constructors are not inherited. This means that a constructor for a given class
567567
may not exist for its child.
568568

569-
By default, a class provide a parameterless constructor, on top of the copy
569+
By default, a class provides a parameterless constructor, on top of the copy
570570
constructor. This parameterless constructor is removed as soon as explicit
571571
constructors are provided. For example:
572572

@@ -674,7 +674,7 @@ Note that the notation:
674674
type T1 is tagged private;
675675
676676
Accept both by-constructors and non-by constructor types. However,
677-
by-constructor types would need to provide a parametelress constructor and a
677+
by-constructor types would need to provide a parameterless constructor and a
678678
copy constructor to be accepted as formal parameters.
679679

680680
Removing Constructors from Public View
@@ -725,11 +725,11 @@ Initialization
725725
--------------
726726

727727
In certain situations, it's important to know if an object is considered
728-
initialized. For example, this can clarify wether passing a value of such object
728+
initialized. For example, this can clarify whether passing a value of such object
729729
may lead to errors.
730730

731731
An object value in a constructor is considered initialized once the `Super` and
732-
`Initialze` aspects have been computed. Formally, the role of the constructor
732+
`Initialize` aspects have been computed. Formally, the role of the constructor
733733
is to establish further properties than the initialization.
734734

735735
Reference-level explanation
@@ -756,7 +756,7 @@ Why do we have a Constructor as a Procedure and not a Function?
756756

757757
While explicit calls to a constructor are made through a function call `'Make`,
758758
declaring a constructor is done through a procedure declaration, which might
759-
look suprising. The overall rationale is that the constructed object must
759+
look surprising. The overall rationale is that the constructed object must
760760
be allocated (and sometimes even partially initialized) before any constructor
761761
operation. The discriminants may need to be valuated, the super constructor
762762
must be called. In some cases, the object memory is already allocated (think
@@ -936,7 +936,7 @@ Consider the following hierarchy:
936936
937937
Child does not have any discriminant. Root discriminant is set by its own
938938
constructor. There is currently no syntax allowing to subtype Child and provide
939-
a constrain to its discriminant.
939+
a constraint to its discriminant.
940940

941941
An extension of the simple record syntax would be to be able to allow to refer
942942
to parent discriminants in the constraint of a child type, so that one could

0 commit comments

Comments
 (0)