Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

1#![feature(non_lifetime_binders)]
2//~^ WARN the feature `non_lifetime_binders` is incomplete
3
4trait Trait<Input> {
5 type Assoc;
6}
7
8fn uwu(_: impl for<T> Trait<(), Assoc = impl Trait<T>>) {}
…lines 9–12 unchanged (4 lines)

After

1#![feature(non_lifetime_binders)]
2
3trait Trait<Input> {
4 type Assoc;
5}
6
7fn uwu(_: impl for<T> Trait<(), Assoc = impl Trait<T>>) {}
8//~^ ERROR `impl Trait` can only mention type parameters from an fn or impl
9
10fn main() {}
11

Before

source_file
inner_attribute_item
# "#"
! "!"
[ "["
attribute
identifier "feature"
token_tree
( "("
identifier "non_lifetime_binders"
) ")"
] "]"
line_comment
// "//"
trait_item
trait "trait"
type_identifier "Trait"
type_parameters
< "<"
type_parameter
type_identifier "Input"
> ">"
declaration_list
{ "{"
associated_type
type "type"
type_identifier "Assoc"
; ";"
} "}"
function_item (+40 nodes collapsed)
line_comment
// "//"
function_item
fn "fn"
identifier "main"
parameters
( "("
) ")"
block
{ "{"
} "}"

After

source_file
inner_attribute_item
# "#"
! "!"
[ "["
attribute
identifier "feature"
token_tree
( "("
identifier "non_lifetime_binders"
) ")"
] "]"
trait_item
trait "trait"
type_identifier "Trait"
type_parameters
< "<"
type_parameter
type_identifier "Input"
> ">"
declaration_list
{ "{"
associated_type
type "type"
type_identifier "Assoc"
; ";"
} "}"
function_item (+40 nodes collapsed)
line_comment
// "//"
function_item
fn "fn"
identifier "main"
parameters
( "("
) ")"
block
{ "{"
} "}"