[AA] handles FIR isUsedAsExpression for return within function block

For the following example:

```
fun foo(bar: Int) {
  <expr>if (bar == 4) return "Four"
  else return "Int"</expr>
}
```

AA FE1.0 `isUsedAsExpression` returns `false`.
Since the current AA FIR `isUsedAsExpression` returns `true` for the
above example, this commit fixes it.
This commit is contained in:
Jaebaek Seo
2022-11-14 15:53:23 +00:00
committed by Ilya Kirillov
parent b6481ed891
commit c55efe62a3
13 changed files with 159 additions and 18 deletions
@@ -0,0 +1,5 @@
fun test(n: Int) =
<expr>if (n == 1)
"one"
else
"two"</expr>
@@ -0,0 +1,6 @@
expression: IF
text: if (n == 1)
"one"
else
"two"
isUsedAsExpression: true
@@ -0,0 +1,6 @@
fun test(n: Int) = {
<expr>if (n == 1)
"one"
else
"two"</expr>
}
@@ -0,0 +1,6 @@
expression: IF
text: if (n == 1)
"one"
else
"two"
isUsedAsExpression: true
@@ -0,0 +1,6 @@
fun test(n: Int): String {
if (n == 1)
<expr>return "one"</expr>
else
return "two"
}
@@ -0,0 +1,3 @@
expression: RETURN
text: return "one"
isUsedAsExpression: false
@@ -0,0 +1,6 @@
fun test(n: Int): String {
<expr>if (n == 1)
return "one"
else
return "two"</expr>
}
@@ -0,0 +1,6 @@
expression: IF
text: if (n == 1)
return "one"
else
return "two"
isUsedAsExpression: false