diff options
Diffstat (limited to 'src/tools/clippy/src/docs/mismatching_type_param_order.txt')
-rw-r--r-- | src/tools/clippy/src/docs/mismatching_type_param_order.txt | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/tools/clippy/src/docs/mismatching_type_param_order.txt b/src/tools/clippy/src/docs/mismatching_type_param_order.txt new file mode 100644 index 000000000..ffc7f32d0 --- /dev/null +++ b/src/tools/clippy/src/docs/mismatching_type_param_order.txt @@ -0,0 +1,33 @@ +### What it does +Checks for type parameters which are positioned inconsistently between +a type definition and impl block. Specifically, a parameter in an impl +block which has the same name as a parameter in the type def, but is in +a different place. + +### Why is this bad? +Type parameters are determined by their position rather than name. +Naming type parameters inconsistently may cause you to refer to the +wrong type parameter. + +### Limitations +This lint only applies to impl blocks with simple generic params, e.g. +`A`. If there is anything more complicated, such as a tuple, it will be +ignored. + +### Example +``` +struct Foo<A, B> { + x: A, + y: B, +} +// inside the impl, B refers to Foo::A +impl<B, A> Foo<B, A> {} +``` +Use instead: +``` +struct Foo<A, B> { + x: A, + y: B, +} +impl<A, B> Foo<A, B> {} +```
\ No newline at end of file |