KT-328 Local function in function literals cause exceptions

===
fun bar() = {
  bar()
}
===
This commit is contained in:
Stepan Koltsov
2011-11-23 16:40:50 +04:00
parent ba700ebdbe
commit e33af7f729
7 changed files with 40 additions and 13 deletions
@@ -5,15 +5,15 @@ namespace a {
}
namespace b {
fun foo() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bar()<!>
fun foo() = bar()
fun bar() = foo()
fun bar() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>foo()<!>
}
namespace c {
fun bazz() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bar()<!>
fun bazz() = bar()
fun foo() = bazz()
fun foo() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bazz()<!>
fun bar() = foo()
}
@@ -39,4 +39,4 @@ namespace ok {
fun bar() = foo()
}
}
}
@@ -0,0 +1,3 @@
fun bar() = {
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bar()<!>
}
@@ -0,0 +1,3 @@
fun bar() = {
fun foo() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bar()<!>
}
@@ -0,0 +1,7 @@
// http://youtrack.jetbrains.net/issue/KT-329
fun block(f : fun() : Unit) = f()
fun bar() = block{ <!UNRESOLVED_REFERENCE!>foo<!>() // <-- missing closing curly bracket
fun foo() = block{ <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bar()<!> }