[experiment] Some minor tweaks
diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/internal/AddHatsAction.kt b/idea/src/org/jetbrains/kotlin/idea/actions/internal/AddHatsAction.kt index 49bd18f..938d7fe 100644 --- a/idea/src/org/jetbrains/kotlin/idea/actions/internal/AddHatsAction.kt +++ b/idea/src/org/jetbrains/kotlin/idea/actions/internal/AddHatsAction.kt
@@ -25,9 +25,11 @@ import com.intellij.openapi.vfs.VfsUtil import com.intellij.psi.PsiManager import com.intellij.psi.impl.source.tree.LeafPsiElement +import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.idea.caches.resolve.analyzeFully import org.jetbrains.kotlin.lexer.JetTokens import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression public class AddHatsAction : AnAction() { @@ -72,6 +74,21 @@ println("Not used as expression: $lastExpression") return } + + val type = bindingContext.get(BindingContext.EXPRESSION_TYPE_INFO, lastExpression)?.type + if (type == null) { + println("Type is null: $lastExpression") + } + if (type != null && (KotlinBuiltIns.isUnit(type) || KotlinBuiltIns.isNothing(type))) { + println("Type is Unit/Nothing: $lastExpression") + return + } + val expectedType = bindingContext.get(BindingContext.EXPECTED_EXPRESSION_TYPE, lastExpression) + if (expectedType != null && (KotlinBuiltIns.isUnit(expectedType) || KotlinBuiltIns.isNothing(expectedType))) { + println("Expected Type is Unit/Nothing: $lastExpression") + return + } + val node = lastExpression.node val space = node.treePrev