Skip to content

Commit 70fc73a

Browse files
authored
Merge pull request rust-lang#1154 from mattheww/2022-02_method_lookup
Document pre-Rust-2021 special case for IntoIterator method lookup
2 parents 7021ce6 + e4964a0 commit 70fc73a

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/expressions/method-call-expr.md

+9
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,13 @@ Once a method is looked up, if it can't be called for one (or more) of those rea
6666
If a step is reached where there is more than one possible method, such as where generic methods or traits are considered the same, then it is a compiler error.
6767
These cases require a [disambiguating function call syntax] for method and function invocation.
6868
69+
> **Edition Differences**: Before the 2021 edition, during the search for visible methods, if the candidate receiver type is an [array type], methods provided by the standard library [`IntoIterator`] trait are ignored.
70+
>
71+
> The edition used for this purpose is determined by the token representing the method name.
72+
>
73+
> This special case may be removed in the future.
74+
75+
6976
<div class="warning">
7077
7178
***Warning:*** For [trait objects], if there is an inherent method of the same name as a trait method, it will give a compiler error when trying to call the method in a method call expression.
@@ -79,9 +86,11 @@ Just don't define inherent methods on trait objects with the same name as a trai
7986
[_Expression_]: ../expressions.md
8087
[_PathExprSegment_]: ../paths.md#paths-in-expressions
8188
[visible]: ../visibility-and-privacy.md
89+
[array type]: ../types/array.md
8290
[trait objects]: ../types/trait-object.md
8391
[disambiguate call]: call-expr.md#disambiguating-function-calls
8492
[disambiguating function call syntax]: call-expr.md#disambiguating-function-calls
8593
[dereference]: operator-expr.md#the-dereference-operator
8694
[methods]: ../items/associated-items.md#methods
8795
[unsized coercion]: ../type-coercions.md#unsized-coercions
96+
[`IntoIterator`]: ../../std/iter/trait.IntoIterator.html

0 commit comments

Comments
 (0)