Fix a codegen bug for use of {0,localtime,predef:FOO}
format in Messages.
Patch by: jat
Review by: pdr
Review at http://gwt-code-reviews.appspot.com/1373801
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9779 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/i18n/rebind/MessagesMethodCreator.java b/user/src/com/google/gwt/i18n/rebind/MessagesMethodCreator.java
index 19c27e7..c726f58 100644
--- a/user/src/com/google/gwt/i18n/rebind/MessagesMethodCreator.java
+++ b/user/src/com/google/gwt/i18n/rebind/MessagesMethodCreator.java
@@ -433,7 +433,8 @@
return true;
}
out.appendStringValuedExpression(
- dtFormatClassName + ".getFormat(" + PredefinedFormat.class.getName() + "."
+ dtFormatClassName + ".getFormat("
+ + PredefinedFormat.class.getCanonicalName() + "."
+ predef.toString() + ").format(" + argName + tzParam + ")");
return false;
}
diff --git a/user/test/com/google/gwt/i18n/client/I18N2Test.java b/user/test/com/google/gwt/i18n/client/I18N2Test.java
index 327835d..c1578c0 100644
--- a/user/test/com/google/gwt/i18n/client/I18N2Test.java
+++ b/user/test/com/google/gwt/i18n/client/I18N2Test.java
@@ -454,6 +454,13 @@
assertEquals("nested underscore b", m.nestedUnderscore());
}
+ @SuppressWarnings("deprecation")
+ public void testPredefDateFormat() {
+ TestAnnotatedMessages m = GWT.create(TestAnnotatedMessages.class);
+ Date date = new Date(Date.UTC(2010 - 1900, 1, 2, 3, 4, 5));
+ assertEquals("Short: 2010-02-01", m.predef(date));
+ }
+
public void testSpecialPlurals() {
TestAnnotatedMessages m = GWT.create(TestAnnotatedMessages.class);
assertEquals("No widgets", m.specialPlurals(0));
diff --git a/user/test/com/google/gwt/i18n/client/TestAnnotatedMessages.java b/user/test/com/google/gwt/i18n/client/TestAnnotatedMessages.java
index ddc2dd6..6116347 100644
--- a/user/test/com/google/gwt/i18n/client/TestAnnotatedMessages.java
+++ b/user/test/com/google/gwt/i18n/client/TestAnnotatedMessages.java
@@ -99,6 +99,9 @@
@DefaultMessage("in timezone: {0,localdatetime:tz=$tz,yMd hms}")
SafeHtml inTimezoneAsSafeHtml(Date date, @Optional TimeZone tz);
+ @DefaultMessage("Short: {0,localdatetime,predef:DATE_SHORT}")
+ String predef(Date date);
+
@DefaultMessage("Once more, with meaning")
@Meaning("Mangled quote")
String withMeaning();