3 fun String.foo(<bold>p: String</bold>) { (in foo(String) on String)
4 	val v = bar(<bold>p</bold>) { this } (in foo(String) on String)
7 		fun <T, R> bar(<bold>receiver: T</bold>, block: T.() -> R): R { (in bar(T, T.() -> R))
9 			return <bold>receiver</bold>.b() (in bar(T, T.() -> R))
8 				[LAMBDA RECEIVER] <bold>val b</bold> = block (in bar(T, T.() -> R))
8 					[LAMBDA RECEIVER] val b = <bold>block</bold> (in bar(T, T.() -> R))
7 						[LAMBDA RECEIVER] fun <T, R> bar(receiver: T, <bold>block: T.() -> R</bold>): R { (in bar(T, T.() -> R))
4 							[LAMBDA RECEIVER] val v = bar(p) <bold>{ this }</bold> (in foo(String) on String)
4 								val v = bar(p) { <bold>this</bold> } (in foo(String) on String)
4 									val v = bar(p) <bold>{ this }</bold> (in foo(String) on String)
4 										[LAMBDA CALLS] val v = bar(p) <bold>{ this }</bold> (in foo(String) on String)
7 											[LAMBDA CALLS] fun <T, R> bar(receiver: T, <bold>block: T.() -> R</bold>): R { (in bar(T, T.() -> R))
8 												[LAMBDA CALLS] val b = <bold>block</bold> (in bar(T, T.() -> R))
8 													[LAMBDA CALLS] <bold>val b</bold> = block (in bar(T, T.() -> R))
9 														return receiver.<bold>b()</bold> (in bar(T, T.() -> R))
7 															<bold>fun <T, R> bar(receiver: T, block: T.() -> R): R</bold> {
4 																val v = <bold>bar(p) { this }</bold> (in foo(String) on String)
4 																	<bold>val v</bold> = bar(p) { this } (in foo(String) on String)
