UFile (package = ) [import java.io.Closeable...]
    UImportStatement (isOnDemand = false) [import java.io.Closeable]
    UImportStatement (isOnDemand = false) [import java.io.InputStream]
    UClass (name = AnonymousKt) [public final class AnonymousKt {...}]
        UMethod (name = foo) [public static final fun foo() : void {...}]
            UBlockExpression [{...}] = Undetermined
                UDeclarationsExpression [var runnable: <ErrorType> = anonymous object : Runnable { override fun run() {} }] = Undetermined
                    ULocalVariable (name = runnable) [var runnable: <ErrorType> = anonymous object : Runnable { override fun run() {} }]
                        UObjectLiteralExpression [anonymous object : Runnable { override fun run() {} }] = Undetermined
                            UClass (name = null) [final class null : java.lang.Runnable {...}]
                                UMethod (name = run) [public fun run() : void {...}]
                                    UBlockExpression [{...}] = Undetermined
                                UMethod (name = ) [private fun () = UastEmptyExpression]
                UQualifiedReferenceExpression [runnable.run()] = external run()()
                    USimpleNameReferenceExpression (identifier = runnable) [runnable] = (var runnable = Undetermined)
                    UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) [run()] = external run()()
                        UIdentifier (Identifier (run)) [UIdentifier (Identifier (run))]
                        USimpleNameReferenceExpression (identifier = run, resolvesTo = null) [run] = external run()()
                UDeclarationsExpression [var runnable2: java.lang.Runnable = Runnable({ ...})] = Undetermined
                    ULocalVariable (name = runnable2) [var runnable2: java.lang.Runnable = Runnable({ ...})]
                        UCallExpression (kind = UastCallKind(name='method_call'), argCount = 1)) [Runnable({ ...})] = external Runnable({
    println()
})(Undetermined)
                            UIdentifier (Identifier (Runnable)) [UIdentifier (Identifier (Runnable))]
                            USimpleNameReferenceExpression (identifier = Runnable, resolvesTo = PsiClass: Runnable) [Runnable] = external Runnable({
    println()
})(Undetermined)
                            ULambdaExpression [{ ...}] = Undetermined
                                UBlockExpression [{...}] = external println()()
                                    UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) [println()] = external println()()
                                        UIdentifier (Identifier (println)) [UIdentifier (Identifier (println))]
                                        USimpleNameReferenceExpression (identifier = println, resolvesTo = null) [println] = external println()()
                UQualifiedReferenceExpression [runnable2.run()] = external run()()
                    USimpleNameReferenceExpression (identifier = runnable2) [runnable2] = (var runnable2 = external Runnable({
    println()
})(Undetermined))
                    UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0)) [run()] = external run()()
                        UIdentifier (Identifier (run)) [UIdentifier (Identifier (run))]
                        USimpleNameReferenceExpression (identifier = run, resolvesTo = null) [run] = external run()()
                UDeclarationsExpression [var closeableRunnable: <ErrorType> = anonymous object : Runnable, Closeable { override fun close() {} override fun run() {} }] = Undetermined
                    ULocalVariable (name = closeableRunnable) [var closeableRunnable: <ErrorType> = anonymous object : Runnable, Closeable { override fun close() {} override fun run() {} }]
                        UObjectLiteralExpression [anonymous object : Runnable, Closeable { override fun close() {} override fun run() {} }] = Undetermined
                            UClass (name = null) [final class null : java.lang.Runnable, java.io.Closeable {...}]
                                UMethod (name = close) [public fun close() : void {...}]
                                    UBlockExpression [{...}] = Undetermined
                                UMethod (name = run) [public fun run() : void {...}]
                                    UBlockExpression [{...}] = Undetermined
                                UMethod (name = ) [private fun () = UastEmptyExpression]
                UDeclarationsExpression [var runnableIs: <ErrorType> = anonymous object : InputStream(), Runnable { override fun read(): Int = 0; override fun run() {} }] = Undetermined
                    ULocalVariable (name = runnableIs) [var runnableIs: <ErrorType> = anonymous object : InputStream(), Runnable { override fun read(): Int = 0; override fun run() {} }]
                        UObjectLiteralExpression [anonymous object : InputStream(), Runnable { override fun read(): Int = 0; override fun run() {} }] = Undetermined
                            UClass (name = null) [final class null : java.io.InputStream, java.lang.Runnable {...}]
                                UMethod (name = read) [public fun read() : int {...}]
                                    UBlockExpression [{...}] = Nothing
                                        UReturnExpression [return 0] = Nothing
                                            ULiteralExpression (value = 0) [0] = 0
                                UMethod (name = run) [public fun run() : void {...}]
                                    UBlockExpression [{...}] = Undetermined
                                UMethod (name = ) [private fun () = UastEmptyExpression]
        UMethod (name = withErr) [public static final fun withErr() : void {...}]
            UBlockExpression [{...}] = Undetermined
                UDeclarationsExpression [var runnable: <ErrorType> = anonymous null] = Undetermined
                    ULocalVariable (name = runnable) [var runnable: <ErrorType> = anonymous null]
                        UObjectLiteralExpression [anonymous null] = Undetermined
                            UClass (name = <invalid object code>) [class <invalid object code> {...}]
