Allow "Create class" action in return statement

#KT-22137 Fixed
This commit is contained in:
Dmitry Gridin
2019-03-15 12:55:51 +07:00
parent 41cfb4e2ed
commit d333a0ad4e
8 changed files with 112 additions and 2 deletions
@@ -0,0 +1,14 @@
// "Create class 'BookKeeper'" "true"
// ERROR: Type mismatch: inferred type is BookKeeper but Unit was expected
package pack
import pack.Currrency.EUR
enum class Currrency { EUR }
class Item(val p1: Double, p2: Currrency)
class Transaction(vararg val p: Item)
fun place() {
val transactions = listOf(Transaction(Item(10.0, EUR), Item(10.0, EUR)))
return BookKee<caret>per(transactions)
}
@@ -0,0 +1,18 @@
// "Create class 'BookKeeper'" "true"
// ERROR: Type mismatch: inferred type is BookKeeper but Unit was expected
package pack
import pack.Currrency.EUR
enum class Currrency { EUR }
class Item(val p1: Double, p2: Currrency)
class Transaction(vararg val p: Item)
fun place() {
val transactions = listOf(Transaction(Item(10.0, EUR), Item(10.0, EUR)))
return BookKeeper(transactions)
}
class BookKeeper(transactions: List<Transaction>) {
}
@@ -0,0 +1,17 @@
// "Create class 'BookKeeper'" "true"
// ERROR: Type mismatch: inferred type is BookKeeper but Unit was expected
// WITH_RUNTIME
package pack
import pack.Currrency.EUR
enum class Currrency { EUR }
class Item(val p1: Double, p2: Currrency)
class Transaction(vararg val p: Item)
fun place() {
val transactions = listOf(Transaction(Item(10.0, EUR), Item(10.0, EUR)))
if (transactions.isNotEmpty()) {
return BookKee<caret>per(transactions)
}
}
@@ -0,0 +1,21 @@
// "Create class 'BookKeeper'" "true"
// ERROR: Type mismatch: inferred type is BookKeeper but Unit was expected
// WITH_RUNTIME
package pack
import pack.Currrency.EUR
enum class Currrency { EUR }
class Item(val p1: Double, p2: Currrency)
class Transaction(vararg val p: Item)
fun place() {
val transactions = listOf(Transaction(Item(10.0, EUR), Item(10.0, EUR)))
if (transactions.isNotEmpty()) {
return BookKeeper(transactions)
}
}
class BookKeeper(transactions: List<Transaction>) {
}
@@ -0,0 +1,17 @@
// "Create class 'BookKeeper'" "false"
// ACTION: Create function 'BookKeeper'
// ACTION: Rename reference
// ERROR: Unresolved reference: BookKeeper
package pack
import pack.Currrency.EUR
enum class Currrency { EUR }
class Item(val p1: Double, p2: Currrency)
class Transaction(vararg val p: Item)
class Man
fun place(): Man {
val transactions = listOf(Transaction(Item(10.0, EUR), Item(10.0, EUR)))
return BookKee<caret>per(transactions)
}