Minor, fix a few typos in NameResolution.adoc
This commit is contained in:
@@ -80,6 +80,7 @@ class A {
|
|||||||
fun f() {
|
fun f() {
|
||||||
foo() <1>
|
foo() <1>
|
||||||
}
|
}
|
||||||
|
}
|
||||||
----
|
----
|
||||||
<1> This member function is called via implicit receiver `this`
|
<1> This member function is called via implicit receiver `this`
|
||||||
|
|
||||||
@@ -155,7 +156,7 @@ class B: A() {
|
|||||||
companion object { ... }
|
companion object { ... }
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
<1> Implicit receivers: this@B, B (companion object to the class B), A (companion object to the class B)
|
<1> Implicit receivers: this@B, B (companion object to the class B), A (companion object to the class A)
|
||||||
|
|
||||||
In the further discussion we'll rely a lot on the concept of implicit receivers available in any given context.
|
In the further discussion we'll rely a lot on the concept of implicit receivers available in any given context.
|
||||||
As a summary, you may think of them as a list of all available `this` references together with references to companion objects, e.g. `[this@with, this@B, B]`.
|
As a summary, you may think of them as a list of all available `this` references together with references to companion objects, e.g. `[this@with, this@B, B]`.
|
||||||
@@ -578,7 +579,7 @@ If a value has extension function type, it can be called as extension function:
|
|||||||
>>> 1.f()
|
>>> 1.f()
|
||||||
----
|
----
|
||||||
|
|
||||||
The resolution of such call work though the `invoke` convention as well, but in this case the receiver becomes the first argument of the `invoke` function.
|
The resolution of such call works through the `invoke` convention as well, but in this case the receiver becomes the first argument of the `invoke` function.
|
||||||
That means the call `1.f()` might be rewritten as `f(1)`, which is the short form for `f.invoke(1)`.
|
That means the call `1.f()` might be rewritten as `f(1)`, which is the short form for `f.invoke(1)`.
|
||||||
|
|
||||||
|
|
||||||
@@ -661,7 +662,7 @@ This parameter will actually be called in the example above.
|
|||||||
1. The top-level extension function #1 goes next.
|
1. The top-level extension function #1 goes next.
|
||||||
|
|
||||||
2. We have two top-level extension properties named `foo` in the context, for each of them the `invoke` function is available.
|
2. We have two top-level extension properties named `foo` in the context, for each of them the `invoke` function is available.
|
||||||
Two group are created.
|
Two groups are created.
|
||||||
The first one contains the member property `val foo: CallableFoo` together with the function `fun CallableFoo.invoke()`.
|
The first one contains the member property `val foo: CallableFoo` together with the function `fun CallableFoo.invoke()`.
|
||||||
The second group contains the property `val A.foo: () -> Int` together with the member function `invoke` of the class `Function0<Int>`.
|
The second group contains the property `val A.foo: () -> Int` together with the member function `invoke` of the class `Function0<Int>`.
|
||||||
These properties belong to different groups with different priorities, because the first property is a member, while the second one is an extension.
|
These properties belong to different groups with different priorities, because the first property is a member, while the second one is an extension.
|
||||||
|
|||||||
Reference in New Issue
Block a user