diff --git a/uast/uast-common/src/org/jetbrains/uast/controlStructures/UTryExpression.kt b/uast/uast-common/src/org/jetbrains/uast/controlStructures/UTryExpression.kt index 36d250cf4d9c..3c5bcbc77def 100644 --- a/uast/uast-common/src/org/jetbrains/uast/controlStructures/UTryExpression.kt +++ b/uast/uast-common/src/org/jetbrains/uast/controlStructures/UTryExpression.kt @@ -118,6 +118,7 @@ interface UCatchClause : UElement { override fun accept(visitor: UastVisitor) { if (visitor.visitCatchClause(this)) return + parameters.acceptList(visitor) body.accept(visitor) visitor.afterVisitCatchClause(this) } @@ -127,5 +128,5 @@ interface UCatchClause : UElement { override fun asLogString(): String = log(parameters.joinToString { it.name }) - override fun asRenderString(): String = "catch (e) " + body.asRenderString() + override fun asRenderString(): String = "catch (${parameters.joinToString { it.asRenderString() }}) ${body.asRenderString()}" } \ No newline at end of file diff --git a/uast/uast-tests/java/Simple/TryCatch.java b/uast/uast-tests/java/Simple/TryCatch.java index 235d63d33434..6eee98ad8bf6 100644 --- a/uast/uast-tests/java/Simple/TryCatch.java +++ b/uast/uast-tests/java/Simple/TryCatch.java @@ -25,6 +25,9 @@ public class TryCatch { catch (NumberFormatException ex) { b = 1; } + catch (@Deprecated NullPointerException e){ + b = 2; + } int c = b; } return sum; diff --git a/uast/uast-tests/java/Simple/TryCatch.log.txt b/uast/uast-tests/java/Simple/TryCatch.log.txt index 27405ca2b755..37861c6a00e7 100644 --- a/uast/uast-tests/java/Simple/TryCatch.log.txt +++ b/uast/uast-tests/java/Simple/TryCatch.log.txt @@ -31,10 +31,18 @@ UFile (package = ) USimpleNameReferenceExpression (identifier = b) ULiteralExpression (value = 1) UCatchClause (ex) + UParameter (name = ex) UBlockExpression UBinaryExpression (operator = =) USimpleNameReferenceExpression (identifier = b) ULiteralExpression (value = 1) + UCatchClause (e) + UParameter (name = e) + UAnnotation (fqName = java.lang.Deprecated) + UBlockExpression + UBinaryExpression (operator = =) + USimpleNameReferenceExpression (identifier = b) + ULiteralExpression (value = 2) UDeclarationsExpression ULocalVariable (name = c) USimpleNameReferenceExpression (identifier = b) diff --git a/uast/uast-tests/java/Simple/TryCatch.render.txt b/uast/uast-tests/java/Simple/TryCatch.render.txt index 6e4f189a45ee..e67148779025 100644 --- a/uast/uast-tests/java/Simple/TryCatch.render.txt +++ b/uast/uast-tests/java/Simple/TryCatch.render.txt @@ -7,10 +7,13 @@ public class TryCatch { sum = sum + Integer.parseInt(part) b = 1 } - catch (e) { + catch (var ex: java.lang.NumberFormatException) { b = 1 } - + catch (@java.lang.Deprecated var e: java.lang.NullPointerException) { + b = 2 + } + var c: int = b } return sum diff --git a/uast/uast-tests/java/Simple/TryCatch.values.txt b/uast/uast-tests/java/Simple/TryCatch.values.txt index 094fc53667c1..414579d94d07 100644 --- a/uast/uast-tests/java/Simple/TryCatch.values.txt +++ b/uast/uast-tests/java/Simple/TryCatch.values.txt @@ -30,11 +30,19 @@ UFile (package = ) [public class TryCatch {...] UBinaryExpression (operator = =) [b = 1] = 1 USimpleNameReferenceExpression (identifier = b) [b] = (var b = 0) ULiteralExpression (value = 1) [1] = 1 - UCatchClause (ex) [catch (e) {...}] + UCatchClause (ex) [catch (var ex: java.lang.NumberFormatException) {...}] + UParameter (name = ex) [var ex: java.lang.NumberFormatException] UBlockExpression [{...}] = 1 UBinaryExpression (operator = =) [b = 1] = 1 USimpleNameReferenceExpression (identifier = b) [b] = Undetermined ULiteralExpression (value = 1) [1] = 1 + UCatchClause (e) [catch (@java.lang.Deprecated var e: java.lang.NullPointerException) {...}] + UParameter (name = e) [@java.lang.Deprecated var e: java.lang.NullPointerException] + UAnnotation (fqName = java.lang.Deprecated) [@java.lang.Deprecated] + UBlockExpression [{...}] = 2 + UBinaryExpression (operator = =) [b = 2] = 2 + USimpleNameReferenceExpression (identifier = b) [b] = Undetermined + ULiteralExpression (value = 2) [2] = 2 UDeclarationsExpression [var c: int = b] = Undetermined ULocalVariable (name = c) [var c: int = b] USimpleNameReferenceExpression (identifier = b) [b] = (var b = Phi(1, 0))