java -> USimpleNameReferenceExpression (identifier = java)
io -> USimpleNameReferenceExpression (identifier = io)
Closeable -> USimpleNameReferenceExpression (identifier = Closeable)
java -> USimpleNameReferenceExpression (identifier = java)
io -> USimpleNameReferenceExpression (identifier = io)
InputStream -> USimpleNameReferenceExpression (identifier = InputStream)
foo -> UAnnotationMethod (name = foo)
    runnable -> ULocalVariable (name = runnable)
    object -> UClass (name = null)
    Runnable -> USimpleNameReferenceExpression (identifier = Runnable)
    run -> UAnnotationMethod (name = run)
    runnable -> USimpleNameReferenceExpression (identifier = runnable)
    run -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0))
    runnable2 -> ULocalVariable (name = runnable2)
    Runnable -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 1))
        println -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0))
    runnable2 -> USimpleNameReferenceExpression (identifier = runnable2)
    run -> UCallExpression (kind = UastCallKind(name='method_call'), argCount = 0))
    closeableRunnable -> ULocalVariable (name = closeableRunnable)
    object -> UClass (name = null)
    Runnable -> USimpleNameReferenceExpression (identifier = Runnable)
    Closeable -> USimpleNameReferenceExpression (identifier = Closeable)
    close -> UAnnotationMethod (name = close)
    run -> UAnnotationMethod (name = run)
    runnableIs -> ULocalVariable (name = runnableIs)
    object -> UClass (name = null)
    InputStream -> UObjectLiteralExpression
    Runnable -> USimpleNameReferenceExpression (identifier = Runnable)
    read -> UAnnotationMethod (name = read)
    Int -> USimpleNameReferenceExpression (identifier = Int)
    run -> UAnnotationMethod (name = run)
withErr -> UAnnotationMethod (name = withErr)
    runnable -> ULocalVariable (name = runnable)
    object -> UastEmptyExpression
    Runnable -> null
