diff --git a/uast/uast-common/src/org/jetbrains/uast/expressions/UYieldExpression.kt b/uast/uast-common/src/org/jetbrains/uast/expressions/UYieldExpression.kt index 46d437df8306..81b5b23460ff 100644 --- a/uast/uast-common/src/org/jetbrains/uast/expressions/UYieldExpression.kt +++ b/uast/uast-common/src/org/jetbrains/uast/expressions/UYieldExpression.kt @@ -1,16 +1,17 @@ // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.uast -import org.jetbrains.uast.UExpression -import org.jetbrains.uast.UJumpExpression +import org.jetbrains.annotations.ApiStatus import org.jetbrains.uast.internal.acceptList import org.jetbrains.uast.internal.log import org.jetbrains.uast.visitor.UastTypedVisitor import org.jetbrains.uast.visitor.UastVisitor /** - * Represents a `yield` expression. + * Represents an expression which return a value from the [USwitchExpression]-block. + * For instance the `yield` expression in Java 13. */ +@ApiStatus.Experimental interface UYieldExpression : UJumpExpression { val expression: UExpression? diff --git a/uast/uast-common/src/org/jetbrains/uast/visitor/UastTypedVisitor.kt b/uast/uast-common/src/org/jetbrains/uast/visitor/UastTypedVisitor.kt index 31f248130591..0d35e87ec12b 100644 --- a/uast/uast-common/src/org/jetbrains/uast/visitor/UastTypedVisitor.kt +++ b/uast/uast-common/src/org/jetbrains/uast/visitor/UastTypedVisitor.kt @@ -69,6 +69,7 @@ interface UastTypedVisitor { fun visitReturnExpression(node: UReturnExpression, data: D): R = visitExpression(node, data) fun visitBreakExpression(node: UBreakExpression, data: D): R = visitExpression(node, data) + @JvmDefault fun visitYieldExpression(node: UYieldExpression, data: D): R = visitExpression(node, data) fun visitContinueExpression(node: UContinueExpression, data: D): R = visitExpression(node, data) fun visitThrowExpression(node: UThrowExpression, data: D): R = visitExpression(node, data) diff --git a/uast/uast-common/src/org/jetbrains/uast/visitor/UastVisitor.kt b/uast/uast-common/src/org/jetbrains/uast/visitor/UastVisitor.kt index 7b44b909ae6a..d1ff614dc9c3 100644 --- a/uast/uast-common/src/org/jetbrains/uast/visitor/UastVisitor.kt +++ b/uast/uast-common/src/org/jetbrains/uast/visitor/UastVisitor.kt @@ -52,6 +52,7 @@ interface UastVisitor { fun visitSuperExpression(node: USuperExpression): Boolean = visitExpression(node) fun visitReturnExpression(node: UReturnExpression): Boolean = visitExpression(node) fun visitBreakExpression(node: UBreakExpression): Boolean = visitExpression(node) + @JvmDefault fun visitYieldExpression(node: UYieldExpression): Boolean = visitExpression(node) fun visitContinueExpression(node: UContinueExpression): Boolean = visitExpression(node) fun visitThrowExpression(node: UThrowExpression): Boolean = visitExpression(node) @@ -230,6 +231,7 @@ interface UastVisitor { afterVisitExpression(node) } + @JvmDefault fun afterVisitYieldExpression(node: UYieldExpression) { afterVisitExpression(node) } diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUYieldExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUYieldExpression.kt index c8c684a1e3f9..2004d9dd46a4 100644 --- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUYieldExpression.kt +++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUYieldExpression.kt @@ -9,7 +9,7 @@ import org.jetbrains.uast.UYieldExpression class JavaUYieldExpression( override val sourcePsi: PsiYieldStatement, - val psiExpression: PsiExpression?, + private val psiExpression: PsiExpression?, givenParent: UElement? ) : JavaAbstractUExpression(givenParent), UYieldExpression { override val expression: UExpression? by lazy {