Merge branch 'main' into addExampleToIntl
diff --git a/pkgs/intl/CHANGELOG.md b/pkgs/intl/CHANGELOG.md
index b9b5ee2..aa42bef 100644
--- a/pkgs/intl/CHANGELOG.md
+++ b/pkgs/intl/CHANGELOG.md
@@ -1,5 +1,6 @@
## 0.20.0-wip
* Type `numberFormatSymbols` as a `Map<String, NumberSymbols>`.
+ * Type `dateTimeSymbolMap` as a `Map<String, DateSymbols>`.
* Add example for pub.dev.
## 0.19.0
diff --git a/pkgs/intl/lib/date_symbol_data_local.dart b/pkgs/intl/lib/date_symbol_data_local.dart
index 953c15a..3e33098 100644
--- a/pkgs/intl/lib/date_symbol_data_local.dart
+++ b/pkgs/intl/lib/date_symbol_data_local.dart
@@ -37,7 +37,7 @@
/// Returns a Map from locale names to the DateSymbols instance for
/// that locale. Internal use only. Call initializeDateFormatting
/// instead.
-Map<dynamic, dynamic> dateTimeSymbolMap() => {
+Map<String, DateSymbols> dateTimeSymbolMap() => {
// Date/time formatting symbols for locale en_ISO.
"en_ISO": DateSymbols(
NAME: 'en_ISO',
diff --git a/pkgs/intl/tool/generate_locale_data_files.dart b/pkgs/intl/tool/generate_locale_data_files.dart
index 3175ef0..f7bdc75 100644
--- a/pkgs/intl/tool/generate_locale_data_files.dart
+++ b/pkgs/intl/tool/generate_locale_data_files.dart
@@ -53,9 +53,7 @@
}
void writeSymbolData() {
- // TODO(#482): The implicit convertion here from dynamic to String and
- // DateSymbols won't be needed when dateTimeSymbolMap() has more type info.
- dateTimeSymbolMap().forEach((key, value) => writeSymbols(key, value));
+ dateTimeSymbolMap().forEach(writeSymbols);
}
void writePatternData() {
diff --git a/pkgs/intl_translation/CHANGELOG.md b/pkgs/intl_translation/CHANGELOG.md
index a03633d..e15097e 100644
--- a/pkgs/intl_translation/CHANGELOG.md
+++ b/pkgs/intl_translation/CHANGELOG.md
@@ -1,3 +1,6 @@
+## 0.20.0-wip
+ * Throw if the `Intl.select` `arg` is not in the list of `args`.
+
## 0.19.0
* Always generate null safe code, remove `null-safe` flag.
* Add example for `he` locale.
diff --git a/pkgs/intl_translation/lib/src/messages/submessages/select.dart b/pkgs/intl_translation/lib/src/messages/submessages/select.dart
index e3682d4..77810dc 100644
--- a/pkgs/intl_translation/lib/src/messages/submessages/select.dart
+++ b/pkgs/intl_translation/lib/src/messages/submessages/select.dart
@@ -108,7 +108,12 @@
List toJson() {
var json = [];
json.add(dartMessageName);
- json.add(arguments.indexOf(mainArgument));
+ var indexOfArgument = arguments.indexOf(mainArgument);
+ if (indexOfArgument == -1) {
+ throw ArgumentError(
+ 'The select message $dartMessageName is being passed the argument $mainArgument, which does not occur in the list of arguments $arguments.');
+ }
+ json.add(indexOfArgument);
var attributes = {};
for (var arg in codeAttributeNames) {
attributes[arg] = this[arg]!.toJson();
diff --git a/pkgs/intl_translation/pubspec.yaml b/pkgs/intl_translation/pubspec.yaml
index ce977c6..a36bef4 100644
--- a/pkgs/intl_translation/pubspec.yaml
+++ b/pkgs/intl_translation/pubspec.yaml
@@ -1,5 +1,5 @@
name: intl_translation
-version: 0.19.0
+version: 0.20.0-wip
description: >-
Contains code to deal with internationalized/localized messages,
date and number formatting and parsing, bi-directional text, and