From 789ff0b273832d3208d5847fd02e50424ecca08d Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Mon, 23 Apr 2012 14:16:07 +0400 Subject: [PATCH] KT-1838 Constructor with a vararg Resolution for properties declared as primary constructor parameters used to ignore the varargs annotation. #KT-1838 Fixed --- .../org/jetbrains/jet/lang/resolve/DescriptorResolver.java | 3 +++ compiler/testData/diagnostics/tests/varargs/kt1838-param.jet | 5 +++++ compiler/testData/diagnostics/tests/varargs/kt1838-val.jet | 5 +++++ 3 files changed, 13 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/varargs/kt1838-param.jet create mode 100644 compiler/testData/diagnostics/tests/varargs/kt1838-val.jet diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java index 8957a3588f3..86710ab25c9 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java @@ -431,6 +431,9 @@ public class DescriptorResolver { // Error is reported by the parser type = ErrorUtils.createErrorType("Annotation is absent"); } + if (parameter.hasModifier(JetTokens.VARARG_KEYWORD)) { + return getVarargParameterType(type); + } return type; } diff --git a/compiler/testData/diagnostics/tests/varargs/kt1838-param.jet b/compiler/testData/diagnostics/tests/varargs/kt1838-param.jet new file mode 100644 index 00000000000..607bbfd1ebb --- /dev/null +++ b/compiler/testData/diagnostics/tests/varargs/kt1838-param.jet @@ -0,0 +1,5 @@ +class A(vararg t : Int) { + { + val t1 : IntArray = t + } +} diff --git a/compiler/testData/diagnostics/tests/varargs/kt1838-val.jet b/compiler/testData/diagnostics/tests/varargs/kt1838-val.jet new file mode 100644 index 00000000000..ae719ee3d42 --- /dev/null +++ b/compiler/testData/diagnostics/tests/varargs/kt1838-val.jet @@ -0,0 +1,5 @@ +class A(vararg val t : Int) { + { + val t1 : IntArray = t + } +}