Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(463)

Unified Diff: compiler/javatests/com/google/dart/compiler/resolver/CompileTimeConstantTest.java

Issue 10553037: Issue 963. Check default values for parameters of local functions. Support for string interpolation. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: compiler/javatests/com/google/dart/compiler/resolver/CompileTimeConstantTest.java
diff --git a/compiler/javatests/com/google/dart/compiler/resolver/CompileTimeConstantTest.java b/compiler/javatests/com/google/dart/compiler/resolver/CompileTimeConstantTest.java
index 79e43e4cbfe6f38be96eb7d271ef37408c14e29a..8fa859518bd0a80135c2f3b16065535951874f7d 100644
--- a/compiler/javatests/com/google/dart/compiler/resolver/CompileTimeConstantTest.java
+++ b/compiler/javatests/com/google/dart/compiler/resolver/CompileTimeConstantTest.java
@@ -34,6 +34,72 @@ public class CompileTimeConstantTest extends ResolverTestCase {
"}"));
}
+ public void test_parameterDefaultValue_inLocalFunction() {
+ resolveAndTestCtConstExpectErrors(
+ Joiner.on("\n").join(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class Object {}",
+ "main() {",
+ " int x = 1;",
+ " void func([var y = x]) {}",
+ "}",
+ ""),
+ errEx(ResolverErrorCode.EXPECTED_CONSTANT_EXPRESSION, 5, 21, 1));
+ }
+
+ public void test_stringInterpolation_referenceConstVar_num() {
+ resolveAndTestCtConstExpectErrors(Joiner.on("\n").join(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class Object {}",
+ "final a = 'aaa';",
+ "final v = '$a';",
+ ""));
+ }
+
+ public void test_stringInterpolation_referenceConstVar_String() {
+ resolveAndTestCtConstExpectErrors(Joiner.on("\n").join(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class Object {}",
+ "final a = 1.0;",
+ "final v = '$a';",
+ ""));
+ }
+
+ public void test_stringInterpolation_referenceConstVar_bool() {
+ resolveAndTestCtConstExpectErrors(Joiner.on("\n").join(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class Object {}",
+ "final a = false;",
+ "final v = '$a';",
+ ""));
+ }
+
+ public void test_stringInterpolation_referenceConstVar_Object() {
+ resolveAndTestCtConstExpectErrors(
+ Joiner.on("\n").join(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class Object {}",
+ "final a = const Object();",
+ "final v = '$a';",
+ ""),
+ errEx(ResolverErrorCode.EXPECTED_CONSTANT_EXPRESSION_STRING_NUMBER_BOOL, 4, 13, 1));
+ }
+
+ public void test_stringInterpolation_inMethod() {
+ resolveAndTestCtConstExpectErrors(Joiner.on("\n").join(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class Object {}",
+ "class Conster {",
+ " const Conster(this.value);",
+ " final value;",
+ "}",
+ "final a = 'aaa';",
+ "f() {",
+ " const Conster('$a');",
+ "}",
+ ""));
+ }
+
public void testConstantBinaryExpression1() {
resolveAndTestCtConst(Joiner.on("\n").join(
"class Object {}",
@@ -229,7 +295,7 @@ public class CompileTimeConstantTest extends ResolverTestCase {
" static final INT_LIT_REF = INT_LIT;",
" static final DOUBLE_LIT = 1.5;",
" static final BOOL_LIT = true;",
- " static final STRING_LIT = \"Hello\";",
+ " static final STRING_LIT = 'Hello';",
" static final BOP4_0 = 5 % INT_LIT;",
" static final BOP4_1 = INT_LIT % 5;",
" static final BOP4_2 = 5.0 % DOUBLE_LIT;",
@@ -243,8 +309,8 @@ public class CompileTimeConstantTest extends ResolverTestCase {
" static final BOP5_6 = 0x80 ^ 0x04;",
" static final BOP6 = BOOL_LIT && true;",
" static final BOP7 = false || BOOL_LIT;",
- " static final BOP8 = STRING_LIT == \"World!\";",
- " static final BOP9 = \"Hello\" != STRING_LIT;",
+ " static final BOP8 = STRING_LIT == 'World!';",
+ " static final BOP9 = 'Hello' != STRING_LIT;",
" static final BOP10 = INT_LIT === INT_LIT_REF;",
" static final BOP11 = BOOL_LIT !== true;",
"}"));
@@ -274,7 +340,7 @@ public class CompileTimeConstantTest extends ResolverTestCase {
"class String {}",
"class A {",
" static int foo() { return 1; }",
- " static String bar() { return \"1\"; }",
+ " static String bar() { return '1'; }",
"}",
"class B {",
" static final BOP1 = 2 < A.foo();",
@@ -342,7 +408,7 @@ public class CompileTimeConstantTest extends ResolverTestCase {
" const B();",
" static final OBJECT_LIT = const B();",
" static final INT_LIT = 1;",
- " static final STRING_LIT = \"true\";",
+ " static final STRING_LIT = 'true';",
" static final BOP1 = STRING_LIT && true;",
" static final BOP2 = false || STRING_LIT;",
" static final BOP3 = 59 == OBJECT_LIT;",
@@ -385,7 +451,7 @@ public class CompileTimeConstantTest extends ResolverTestCase {
"class Object {}",
"class A {",
" static final b = true;",
- " static final s = \"apple\";", // string literal
+ " static final s = 'apple';", // string literal
" static final i = 1;", // integer literal
" static final d = 3.3;", // double literal
" static final h = 0xf;", // hex literal
@@ -397,11 +463,12 @@ public class CompileTimeConstantTest extends ResolverTestCase {
resolveAndTestCtConst(Joiner.on("\n").join(
"class Object {}",
"class A {",
- " foo() { return \"Eve\";}",
- " static final person = \"earthling\";",
- " static final s = \"Hello ${foo()}!\";",
+ " foo() { return 'Eve';}",
+ " static final person = 'earthling';",
+ " static final s = 'Hello ${foo()}!';",
"}"),
- ResolverErrorCode.EXPECTED_CONSTANT_EXPRESSION);
+ ResolverErrorCode.EXPECTED_CONSTANT_EXPRESSION,
+ ResolverErrorCode.EXPECTED_CONSTANT_EXPRESSION_STRING_NUMBER_BOOL);
}
public void testConstantTypedLiteralAssign1() {
@@ -411,7 +478,7 @@ public class CompileTimeConstantTest extends ResolverTestCase {
"class Map<K,V> {}",
"class A {",
" static final aList = const[1, 2, 3];", // array literal
- " static final map = const { \"1\": \"one\", \"2\": \"banana\" };", // map literal
+ " static final map = const { '1': 'one', '2': 'banana' };", // map literal
" static final val = aList[2];",
"}"));
}
@@ -445,7 +512,7 @@ public class CompileTimeConstantTest extends ResolverTestCase {
"class Map<K,V> {}",
"class A {",
" // map literal is not const",
- " static final aMap = { \"1\": \"one\", \"2\": \"banana\" };",
+ " static final aMap = { '1': 'one', '2': 'banana' };",
"}"),
ResolverErrorCode.EXPECTED_CONSTANT_EXPRESSION);
}
@@ -455,13 +522,12 @@ public class CompileTimeConstantTest extends ResolverTestCase {
"class String {}",
"class Map<K,V> {}",
"class A {",
- " static String foo() { return \"one\"; }",
- " static final String s = \"apple\";",
+ " static String foo() { return 'one'; }",
+ " static final String s = 'apple';",
" // map literal contains non-const member",
- " static final map = const { \"1\":foo(), \"2\": \"banana\" };",
- " static final stringInterp = \"It was that woman who gave me the ${s}\";",
+ " static final map = const { '1': foo(), '2': 'banana' };",
+ " static final stringInterp = 'It was that woman who gave me the ${s}';",
"}"),
- ResolverErrorCode.EXPECTED_CONSTANT_EXPRESSION,
ResolverErrorCode.EXPECTED_CONSTANT_EXPRESSION);
}

Powered by Google App Engine
This is Rietveld 408576698