aboutsummaryrefslogtreecommitdiff
path: root/javatests
diff options
context:
space:
mode:
authorcushon <cushon@google.com>2018-10-10 17:11:56 -0700
committerLiam Miller-Cushon <cushon@google.com>2018-10-17 20:45:30 -0700
commit74070a25d15bd74e71fac5a8392d39cdaa9a953e (patch)
tree8196c712edfbd5bd89282e545b086aa72196056a /javatests
parentb767eadd89c6c94f75d3ffeb49850665a712fe9b (diff)
downloadturbine-74070a25d15bd74e71fac5a8392d39cdaa9a953e.tar.gz
Improve diagnostics for empty and unterminated char literals
MOE_MIGRATED_REVID=216620223
Diffstat (limited to 'javatests')
-rw-r--r--javatests/com/google/turbine/parse/ParseErrorTest.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/javatests/com/google/turbine/parse/ParseErrorTest.java b/javatests/com/google/turbine/parse/ParseErrorTest.java
index 30ff061..53864ef 100644
--- a/javatests/com/google/turbine/parse/ParseErrorTest.java
+++ b/javatests/com/google/turbine/parse/ParseErrorTest.java
@@ -170,6 +170,38 @@ public class ParseErrorTest {
}
}
+ @Test
+ public void emptyChar() {
+ String input = "class T { char c = ''; }";
+ try {
+ Parser.parse(input);
+ fail("expected parsing to fail");
+ } catch (TurbineError e) {
+ assertThat(e.getMessage())
+ .isEqualTo(
+ lines(
+ "<>:1: error: empty char literal", //
+ "class T { char c = ''; }",
+ " ^"));
+ }
+ }
+
+ @Test
+ public void unterminatedChar() {
+ String input = "class T { char c = '; }";
+ try {
+ Parser.parse(input);
+ fail("expected parsing to fail");
+ } catch (TurbineError e) {
+ assertThat(e.getMessage())
+ .isEqualTo(
+ lines(
+ "<>:1: error: unterminated char literal", //
+ "class T { char c = '; }",
+ " ^"));
+ }
+ }
+
private static String lines(String... lines) {
return Joiner.on(System.lineSeparator()).join(lines);
}