From 627c2186e9754832319d92834f3badfcaaef84f6 Mon Sep 17 00:00:00 2001 From: Alex Tkachman Date: Mon, 5 Dec 2011 17:29:43 +0200 Subject: [PATCH] test for obsolete KT-684 --- .../testData/codegen/regressions/kt684.jet | 29 +++++++++++++++++++ .../jet/codegen/PrimitiveTypesTest.java | 5 ++++ 2 files changed, 34 insertions(+) create mode 100644 compiler/testData/codegen/regressions/kt684.jet diff --git a/compiler/testData/codegen/regressions/kt684.jet b/compiler/testData/codegen/regressions/kt684.jet new file mode 100644 index 00000000000..41048cec7c5 --- /dev/null +++ b/compiler/testData/codegen/regressions/kt684.jet @@ -0,0 +1,29 @@ +fun escapeChar(c : Char) : String? = when (c) { + '\\' => "\\\\" + '\n' => "\\n" + '"' => "\\\"" + else => String.valueOf(c) +} + +fun String.escape(i : Int = 0, result : String = "") : String = + if (i == length) result + else escape(i + 1, result + escapeChar(get(i))) + +fun box() : String { + val s = " System.out?.println(\"fun escapeChar(c : Char) : String? = when (c) {\");\n System.out?.println(\" '\\\\\\\\' => \\\"\\\\\\\\\\\\\\\\\\\"\");\n System.out?.println(\" '\\\\n' => \\\"\\\\\\\\n\\\"\");\n System.out?.println(\" '\\\"' => \\\"\\\\\\\\\\\\\\\"\\\"\");\n System.out?.println(\" else => String.valueOf(c)\");\n System.out?.println(\"}\");\n System.out?.println();\n System.out?.println(\"fun String.escape(i : Int = 0, result : String = \\\"\\\") : String =\");\n System.out?.println(\" if (i == length) result\");\n System.out?.println(\" else escape(i + 1, result + escapeChar(this.get(i)))\");\n System.out?.println();\n System.out?.println(\"fun main(args : Array) {\");\n System.out?.println(\" val s = \\\"\" + s.escape() + \"\\\";\");\n System.out?.println(s);\n}\n"; + System.out?.println("fun escapeChar(c : Char) : String? = when (c) {"); + System.out?.println(" '\\\\' => \"\\\\\\\\\""); + System.out?.println(" '\\n' => \"\\\\n\""); + System.out?.println(" '\"' => \"\\\\\\\"\""); + System.out?.println(" else => String.valueOf(c)"); + System.out?.println("}"); + System.out?.println(); + System.out?.println("fun String.escape(i : Int = 0, result : String = \"\") : String ="); + System.out?.println(" if (i == length) result"); + System.out?.println(" else escape(i + 1, result + escapeChar(this.get(i)))"); + System.out?.println(); + System.out?.println("fun main(args : Array) {"); + System.out?.println(" val s = \"" + s.escape() + "\";"); + System.out?.println(s); + return "OK" +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java b/compiler/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java index 39edddeae2a..b11121da4e6 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java @@ -345,6 +345,11 @@ public class PrimitiveTypesTest extends CodegenTestCase { public void testKt753 () { blackBoxFile("regressions/kt753.jet"); +// System.out.println(generateToText()); + } + + public void testKt684 () { + blackBoxFile("regressions/kt684.jet"); // System.out.println(generateToText()); } }