Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICU-22747 MF2: Validate digit size for :number and :integer; validate options for :datetime #2973

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

catamorphism
Copy link
Contributor

@catamorphism catamorphism commented Apr 18, 2024

In MF2, functions can be passed named option values. The spec defines two cases where built-in functions should error out when provided an unexpected value for one of its options:

  • For the built-in :number and :integer functions: "If the value of a digit size option does not evaluate as a non-negative integer, or if the value exceeds any implementation-defined upper limit or any option-specific lower limit, a Bad Option Error is emitted." 1

  • For the built-in :datetime function: "The :datetime function can use either the appropriate style options or can use a collection of field options (but not both) to control the formatted output.

    If both are specified, a Bad Option error MUST be emitted and a fallback value used as the resolved value of the expression." 2

This PR implements both of these checks for ICU4C.

Checklist
  • Required: Issue filed: https://unicode-org.atlassian.net/browse/ICU-22747
  • Required: The PR title must be prefixed with a JIRA Issue number.
  • Required: The PR description must include the link to the Jira Issue, for example by completing the URL in the first checklist item
  • Required: Each commit message must be prefixed with a JIRA Issue number.
  • Issue accepted (done by Technical Committee after discussion)
  • Tests included, if applicable
  • API docs and/or User Guide docs changed or added, if applicable

@aphillips
Copy link
Member

Previously, it wasn't an error to write a message like::

.local $foo = {1 :integer minimumIntegerDigits=foo} {{$foo}}

This is an error according to the spec, because the minimumIntegerDigits option to :integer must have a value that's a non-negative integer.

It is not an error to write a message like that, from the point of view that this is a "valid" message.

I carefully searched the formatting and registry sections and double-checked errors. It is not currently required to be an error (as an alternative, an implementation might ignore the option, although I'm dubious that this is a Good Idea). The registry part of the spec says what the value space for digit options is, but not what to do if the value provided doesn't match it. (It also fails to clearly state that what to do is implementation defined). It is permitted that implementations emit errors during function resolution (in which case, this will be an Invalid Expression error). When this is addressed (and I think it should be) I think it should be addressed in default registry, not the core spec.

aphillips added a commit to unicode-org/message-format-wg that referenced this pull request Apr 19, 2024
I found these errors while [commenting](unicode-org/icu#2973 (comment)) on an issue in ICU. Fixing the text for consistency.
@mihnita
Copy link
Contributor

mihnita commented Apr 19, 2024

In general the philosophy in how errors are handled in JS / Python and other other can be quite different from something like ICU.
If JS throws at runtime on some website, people complain, I fix my JS, and it's fixed in minutes.

If I do throw in ICU (C++ or Java) on something like a watch, it means a firmware update that has to be explicitly pushed to millions of devices.
So libraries like ICU have to be a lot more tolerant.

If the spec explicitly REQUIRES such mistakes to trigger errors, then I would strongly push to change the spec.

@catamorphism
Copy link
Contributor Author

@aphillips @mihnita When I say "the spec requires it", I mean in the sense that the tests are part of the spec.

I think I raised the question before of whether the test should be required to be an error, and Eemeli's comment here said yes, which is what I'm going off. But I'm happy to close the PR (for now) if there needs to be more discussion on the spec side.

@aphillips
Copy link
Member

@catamorphism Thanks for this.

@eemeli's comment and what the tests do might be the "right thing to do", but, as noted, they are not what the spec says. We need to be very careful about creating conformance tests. They need to match what the spec actually requires. I think it is valid for an implementation (ICU4C is one) to emit an error for this and render the fallback expression. But these are not syntax or data model errors.

aphillips added a commit to unicode-org/message-format-wg that referenced this pull request Apr 22, 2024
I found these errors while [commenting](unicode-org/icu#2973 (comment)) on an issue in ICU. Fixing the text for consistency.
@catamorphism catamorphism marked this pull request as draft April 22, 2024 18:23
@catamorphism
Copy link
Contributor Author

I'm converting this PR to draft since it's an ongoing topic of discussion in the spec working group.

@jira-pull-request-webhook
Copy link

Notice: the branch changed across the force-push!

  • .bazeliskrc is now changed in the branch
  • .ci-builds/.azure-exhaustive-tests.yml is now changed in the branch
  • .ci-builds/.azure-pipelines-icu4c.yml is now changed in the branch
  • .ci-builds/.azure-pipelines-icu4j.yml is now changed in the branch
  • .ci-builds/.azure-post-merge-tests.yml is now changed in the branch
  • .cpyskip.txt is now changed in the branch
  • .gitattributes is now changed in the branch
  • .github/data-filter.json is now changed in the branch
  • .github/pull_request_template.md is now changed in the branch
  • .github/workflows/cifuzz.yml is now changed in the branch
  • .github/workflows/icu_common.yml is now changed in the branch
  • .github/workflows/icu_docs.yml is now changed in the branch
  • .github/workflows/icu_exhaustive_tests.yml is now changed in the branch
  • .github/workflows/icu_merge_ci.yml is now changed in the branch
  • .github/workflows/icu_valgrind.yml is now changed in the branch
  • .github/workflows/icu4c.yml is now changed in the branch
  • .github/workflows/icu4j.yml is now changed in the branch
  • .github/workflows/jekyll-gh-pages.yml is now changed in the branch
  • .github/workflows/maven-publish.yml is now changed in the branch
  • .github/workflows/maven.yaml is now changed in the branch
  • .github/workflows/scorecard.yml is now changed in the branch
  • .github/workflows/wait-for-checks.yml is now changed in the branch
  • .gitignore is now changed in the branch
  • CONTRIBUTING.md is now changed in the branch
  • docs/design/normalization/custom.md is now changed in the branch
  • docs/devsetup/cpp/index.md is now changed in the branch
  • docs/devsetup/java/maven.md is now changed in the branch
  • docs/download/76.md is now changed in the branch
  • docs/processes/cldr-icu.md is now changed in the branch
  • docs/processes/release/tasks/docs.md is now changed in the branch
  • docs/processes/release/tasks/healthy-code.md is now changed in the branch
  • docs/processes/release/tasks/integration.md is now changed in the branch
  • docs/processes/release/tasks/publish/azure-ci-builds-artifacts-download.png is now changed in the branch
  • docs/processes/release/tasks/publish/azure-ci-builds-artifacts.png is now changed in the branch
  • docs/processes/release/tasks/publish/azure-ci-builds.png is now changed in the branch
  • docs/processes/release/tasks/publish/gha-ci-artifacts.png is now changed in the branch
  • docs/processes/release/tasks/publish/gha-ci-summary.png is now changed in the branch
  • docs/processes/release/tasks/publish/index.md is now changed in the branch
  • docs/processes/release/tasks/versions.md is now changed in the branch
  • docs/userguide/assets/gha_run_workflow.png is now changed in the branch
  • docs/userguide/collation/api.md is now changed in the branch
  • docs/userguide/dev/ci.md is now changed in the branch
  • docs/userguide/dev/gitdev.md is now changed in the branch
  • docs/userguide/format_parse/datetime/index.md is now changed in the branch
  • docs/userguide/format_parse/messages/mf2.md is now changed in the branch
  • docs/userguide/icu/index.md is now changed in the branch
  • docs/userguide/icu4c/build.md is now changed in the branch
  • docs/userguide/icu4c/faq.md is now changed in the branch
  • docs/userguide/icu4j/index.md is now changed in the branch
  • docs/userguide/locale/index.md is now changed in the branch
  • docs/userguide/strings/index.md is now changed in the branch
  • docs/userguide/strings/regexp.md is now changed in the branch
  • icu4c/APIChangeReport.html is now changed in the branch
  • icu4c/APIChangeReport.md is now changed in the branch
  • icu4c/source/aclocal.m4 is now changed in the branch
  • icu4c/source/allinone/Build.Windows.IcuVersion.props is now changed in the branch
  • icu4c/source/common/appendable.cpp is now changed in the branch
  • icu4c/source/common/bmpset.cpp is now changed in the branch
  • icu4c/source/common/bmpset.h is now changed in the branch
  • icu4c/source/common/brkeng.cpp is now changed in the branch
  • icu4c/source/common/brkiter.cpp is now changed in the branch
  • icu4c/source/common/bytesinkutil.cpp is now changed in the branch
  • icu4c/source/common/bytesinkutil.h is now changed in the branch
  • icu4c/source/common/bytestrie.cpp is now changed in the branch
  • icu4c/source/common/bytestriebuilder.cpp is now changed in the branch
  • icu4c/source/common/bytestrieiterator.cpp is now changed in the branch
  • icu4c/source/common/caniter.cpp is now changed in the branch
  • icu4c/source/common/characterproperties.cpp is now changed in the branch
  • icu4c/source/common/cstring.cpp is now changed in the branch
  • icu4c/source/common/dictbe.cpp is now changed in the branch
  • icu4c/source/common/dictionarydata.cpp is now changed in the branch
  • icu4c/source/common/edits.cpp is now changed in the branch
  • icu4c/source/common/emojiprops.cpp is now changed in the branch
  • icu4c/source/common/filteredbrk.cpp is now changed in the branch
  • icu4c/source/common/icuplug.cpp is now changed in the branch
  • icu4c/source/common/loadednormalizer2impl.cpp is now changed in the branch
  • icu4c/source/common/localebuilder.cpp is now changed in the branch
  • icu4c/source/common/localefallback_data.h is now changed in the branch
  • icu4c/source/common/localematcher.cpp is now changed in the branch
  • icu4c/source/common/locbased.h is now changed in the branch
  • icu4c/source/common/locdispnames.cpp is now changed in the branch
  • icu4c/source/common/locdspnm.cpp is now changed in the branch
  • icu4c/source/common/locid.cpp is now changed in the branch
  • icu4c/source/common/loclikely.cpp is now changed in the branch
  • icu4c/source/common/loclikelysubtags.cpp is now changed in the branch
  • icu4c/source/common/locmap.cpp is now changed in the branch
  • icu4c/source/common/locutil.cpp is now changed in the branch
  • icu4c/source/common/lstmbe.cpp is now changed in the branch
  • icu4c/source/common/Makefile.in is now changed in the branch
  • icu4c/source/common/messagepattern.cpp is now changed in the branch
  • icu4c/source/common/mlbe.cpp is now changed in the branch
  • icu4c/source/common/norm2_nfc_data.h is now changed in the branch
  • icu4c/source/common/norm2allmodes.h is now changed in the branch
  • icu4c/source/common/normalizer2.cpp is now changed in the branch
  • icu4c/source/common/normalizer2impl.cpp is now changed in the branch
  • icu4c/source/common/normalizer2impl.h is now changed in the branch
  • icu4c/source/common/patternprops.cpp is now changed in the branch
  • icu4c/source/common/propname_data.h is now changed in the branch
  • icu4c/source/common/propname.cpp is now changed in the branch
  • icu4c/source/common/propsvec.cpp is now changed in the branch
  • icu4c/source/common/punycode.cpp is now changed in the branch
  • icu4c/source/common/putil.cpp is now changed in the branch
  • icu4c/source/common/putilimp.h is now changed in the branch
  • icu4c/source/common/rbbi_cache.cpp is now changed in the branch
  • icu4c/source/common/rbbi.cpp is now changed in the branch
  • icu4c/source/common/rbbidata.cpp is now changed in the branch
  • icu4c/source/common/rbbirb.cpp is now changed in the branch
  • icu4c/source/common/rbbiscan.cpp is now changed in the branch
  • icu4c/source/common/rbbisetb.cpp is now changed in the branch
  • icu4c/source/common/rbbistbl.cpp is now changed in the branch
  • icu4c/source/common/rbbitblb.cpp is now changed in the branch
  • icu4c/source/common/resbund_cnv.cpp is now changed in the branch
  • icu4c/source/common/ruleiter.cpp is now changed in the branch
  • icu4c/source/common/serv.cpp is now changed in the branch
  • icu4c/source/common/servlkf.cpp is now changed in the branch
  • icu4c/source/common/servls.cpp is now changed in the branch
  • icu4c/source/common/servnotf.cpp is now changed in the branch
  • icu4c/source/common/servrbf.cpp is now changed in the branch
  • icu4c/source/common/simpleformatter.cpp is now changed in the branch
  • icu4c/source/common/stringtriebuilder.cpp is now changed in the branch
  • icu4c/source/common/ubidi_props_data.h is now changed in the branch
  • icu4c/source/common/ubidi_props.cpp is now changed in the branch
  • icu4c/source/common/ubidi.cpp is now changed in the branch
  • icu4c/source/common/ubiditransform.cpp is now changed in the branch
  • icu4c/source/common/ubidiwrt.cpp is now changed in the branch
  • icu4c/source/common/ucase_props_data.h is now changed in the branch
  • icu4c/source/common/ucase.cpp is now changed in the branch
  • icu4c/source/common/ucasemap_titlecase_brkiter.cpp is now changed in the branch
  • icu4c/source/common/ucasemap.cpp is now changed in the branch
  • icu4c/source/common/uchar_props_data.h is now changed in the branch
  • icu4c/source/common/uchar.cpp is now changed in the branch
  • icu4c/source/common/ucharstrie.cpp is now changed in the branch
  • icu4c/source/common/ucharstriebuilder.cpp is now changed in the branch
  • icu4c/source/common/ucharstrieiterator.cpp is now changed in the branch
  • icu4c/source/common/uchriter.cpp is now changed in the branch
  • icu4c/source/common/ucmndata.cpp is now changed in the branch
  • icu4c/source/common/ucnv_bld.cpp is now changed in the branch
  • icu4c/source/common/ucnv_ct.cpp is now changed in the branch
  • icu4c/source/common/ucnv_ext.cpp is now changed in the branch
  • icu4c/source/common/ucnv_io.cpp is now changed in the branch
  • icu4c/source/common/ucnv_lmb.cpp is now changed in the branch
  • icu4c/source/common/ucnv_u16.cpp is now changed in the branch
  • icu4c/source/common/ucnv_u8.cpp is now changed in the branch
  • icu4c/source/common/ucnv.cpp is now changed in the branch
  • icu4c/source/common/ucnv2022.cpp is now changed in the branch
  • icu4c/source/common/ucnvbocu.cpp is now changed in the branch
  • icu4c/source/common/ucnvhz.cpp is now changed in the branch
  • icu4c/source/common/ucnvisci.cpp is now changed in the branch
  • icu4c/source/common/ucnvlat1.cpp is now changed in the branch
  • icu4c/source/common/ucnvmbcs.cpp is now changed in the branch
  • icu4c/source/common/ucnvscsu.cpp is now changed in the branch
  • icu4c/source/common/ucnvsel.cpp is now changed in the branch
  • icu4c/source/common/ucol_swp.cpp is now changed in the branch
  • icu4c/source/common/ucptrie.cpp is now changed in the branch
  • icu4c/source/common/ucurr.cpp is now changed in the branch
  • icu4c/source/common/udata.cpp is now changed in the branch
  • icu4c/source/common/udataswp.cpp is now changed in the branch
  • icu4c/source/common/uenum.cpp is now changed in the branch
  • icu4c/source/common/uhash.cpp is now changed in the branch
  • icu4c/source/common/uhash.h is now changed in the branch
  • icu4c/source/common/uidna.cpp is now changed in the branch
  • icu4c/source/common/uinvchar.cpp is now changed in the branch
  • icu4c/source/common/uinvchar.h is now changed in the branch
  • icu4c/source/common/uloc_keytype.cpp is now changed in the branch
  • icu4c/source/common/uloc_tag.cpp is now changed in the branch
  • icu4c/source/common/uloc.cpp is now changed in the branch
  • icu4c/source/common/ulocale.cpp is now changed in the branch
  • icu4c/source/common/ulocbuilder.cpp is now changed in the branch
  • icu4c/source/common/ulocimp.h is now changed in the branch
  • icu4c/source/common/umapfile.cpp is now changed in the branch
  • icu4c/source/common/umapfile.h is now changed in the branch
  • icu4c/source/common/umutablecptrie.cpp is now changed in the branch
  • icu4c/source/common/unames.cpp is now changed in the branch
  • icu4c/source/common/unicode/brkiter.h is now changed in the branch
  • icu4c/source/common/unicode/bytestream.h is now changed in the branch
  • icu4c/source/common/unicode/bytestrie.h is now changed in the branch
  • icu4c/source/common/unicode/char16ptr.h is now changed in the branch
  • icu4c/source/common/unicode/docmain.h is now changed in the branch
  • icu4c/source/common/unicode/edits.h is now changed in the branch
  • icu4c/source/common/unicode/idna.h is now changed in the branch
  • icu4c/source/common/unicode/locid.h is now changed in the branch
  • icu4c/source/common/unicode/messagepattern.h is now changed in the branch
  • icu4c/source/common/unicode/normalizer2.h is now changed in the branch
  • icu4c/source/common/unicode/platform.h is now changed in the branch
  • icu4c/source/common/unicode/simpleformatter.h is now changed in the branch
  • icu4c/source/common/unicode/stringpiece.h is now changed in the branch
  • icu4c/source/common/unicode/stringtriebuilder.h is now changed in the branch
  • icu4c/source/common/unicode/ucasemap.h is now changed in the branch
  • icu4c/source/common/unicode/uchar.h is now changed in the branch
  • icu4c/source/common/unicode/ucharstrie.h is now changed in the branch
  • icu4c/source/common/unicode/uidna.h is now changed in the branch
  • icu4c/source/common/unicode/ulocale.h is now changed in the branch
  • icu4c/source/common/unicode/ulocbuilder.h is now changed in the branch
  • icu4c/source/common/unicode/uniset.h is now changed in the branch
  • icu4c/source/common/unicode/unistr.h is now changed in the branch
  • icu4c/source/common/unicode/unorm2.h is now changed in the branch
  • icu4c/source/common/unicode/urename.h is now changed in the branch
  • icu4c/source/common/unicode/uscript.h is now changed in the branch
  • icu4c/source/common/unicode/uset.h is now changed in the branch
  • icu4c/source/common/unicode/ustring.h is now changed in the branch
  • icu4c/source/common/unicode/utypes.h is now changed in the branch
  • icu4c/source/common/unicode/uvernum.h is now changed in the branch
  • icu4c/source/common/unicode/uversion.h is now changed in the branch
  • icu4c/source/common/unifiedcache.cpp is now changed in the branch
  • icu4c/source/common/uniset_closure.cpp is now changed in the branch
  • icu4c/source/common/uniset_props.cpp is now changed in the branch
  • icu4c/source/common/uniset.cpp is now changed in the branch
  • icu4c/source/common/unisetspan.cpp is now changed in the branch
  • icu4c/source/common/unisetspan.h is now changed in the branch
  • icu4c/source/common/unistr_case.cpp is now changed in the branch
  • icu4c/source/common/unistr_cnv.cpp is now changed in the branch
  • icu4c/source/common/unistr.cpp is now changed in the branch
  • icu4c/source/common/unormcmp.cpp is now changed in the branch
  • icu4c/source/common/uprops.cpp is now changed in the branch
  • icu4c/source/common/uprops.h is now changed in the branch
  • icu4c/source/common/uresbund.cpp is now changed in the branch
  • icu4c/source/common/uresdata.cpp is now changed in the branch
  • icu4c/source/common/uscript_props.cpp is now changed in the branch
  • icu4c/source/common/uscript.cpp is now changed in the branch
  • icu4c/source/common/uset.cpp is now changed in the branch
  • icu4c/source/common/usetiter.cpp is now changed in the branch
  • icu4c/source/common/ushape.cpp is now changed in the branch
  • icu4c/source/common/usprep.cpp is now changed in the branch
  • icu4c/source/common/ustr_titlecase_brkiter.cpp is now changed in the branch
  • icu4c/source/common/ustr_wcs.cpp is now changed in the branch
  • icu4c/source/common/ustrcase.cpp is now changed in the branch
  • icu4c/source/common/ustrenum.cpp is now changed in the branch
  • icu4c/source/common/ustring.cpp is now changed in the branch
  • icu4c/source/common/ustrtrns.cpp is now changed in the branch
  • icu4c/source/common/utext.cpp is now changed in the branch
  • icu4c/source/common/util_props.cpp is now changed in the branch
  • icu4c/source/common/util.cpp is now changed in the branch
  • icu4c/source/common/utrace.cpp is now changed in the branch
  • icu4c/source/common/utrie_swap.cpp is now changed in the branch
  • icu4c/source/common/utrie.cpp is now changed in the branch
  • icu4c/source/common/utrie2_builder.cpp is now changed in the branch
  • icu4c/source/common/utrie2.cpp is now changed in the branch
  • icu4c/source/common/uts46.cpp is now changed in the branch
  • icu4c/source/common/utypes.cpp is now changed in the branch
  • icu4c/source/common/uvector.cpp is now changed in the branch
  • icu4c/source/common/uvectr32.cpp is now changed in the branch
  • icu4c/source/common/uvectr64.cpp is now changed in the branch
  • icu4c/source/config.guess is now changed in the branch
  • icu4c/source/config.sub is now changed in the branch
  • icu4c/source/config/dist.mk is now changed in the branch
  • icu4c/source/config/Makefile.inc.in is now changed in the branch
  • icu4c/source/config/mh-haiku is now changed in the branch
  • icu4c/source/config/mh-os390 is now changed in the branch
  • icu4c/source/configure is now changed in the branch
  • icu4c/source/configure.ac is now changed in the branch
  • icu4c/source/data/brkitr/LOCALE_DEPS.json is now changed in the branch
  • icu4c/source/data/brkitr/root.txt is now changed in the branch
  • icu4c/source/data/brkitr/rules/line_cj.txt is now changed in the branch
  • icu4c/source/data/brkitr/rules/line_loose_cj.txt is now changed in the branch
  • icu4c/source/data/brkitr/rules/line_loose_phrase_cj.txt is now changed in the branch
  • icu4c/source/data/brkitr/rules/line_loose.txt is now changed in the branch
  • icu4c/source/data/brkitr/rules/line_normal_cj.txt is now changed in the branch
  • icu4c/source/data/brkitr/rules/line_normal_phrase_cj.txt is now changed in the branch
  • icu4c/source/data/brkitr/rules/line_normal.txt is now changed in the branch
  • icu4c/source/data/brkitr/rules/line_phrase_cj.txt is now changed in the branch
  • icu4c/source/data/brkitr/rules/line.txt is now changed in the branch
  • icu4c/source/data/coll/af.txt is now changed in the branch
  • icu4c/source/data/coll/am.txt is now changed in the branch
  • icu4c/source/data/coll/ar.txt is now changed in the branch
  • icu4c/source/data/coll/as.txt is now changed in the branch
  • icu4c/source/data/coll/az.txt is now changed in the branch
  • icu4c/source/data/coll/be.txt is now changed in the branch
  • icu4c/source/data/coll/bg.txt is now changed in the branch
  • icu4c/source/data/coll/bn.txt is now changed in the branch
  • icu4c/source/data/coll/bo.txt is now changed in the branch
  • icu4c/source/data/coll/br.txt is now changed in the branch
  • icu4c/source/data/coll/bs_Cyrl.txt is now changed in the branch
  • icu4c/source/data/coll/bs.txt is now changed in the branch
  • icu4c/source/data/coll/ca.txt is now changed in the branch
  • icu4c/source/data/coll/ceb.txt is now changed in the branch
  • icu4c/source/data/coll/chr.txt is now changed in the branch
  • icu4c/source/data/coll/cs.txt is now changed in the branch
  • icu4c/source/data/coll/cy.txt is now changed in the branch
  • icu4c/source/data/coll/da.txt is now changed in the branch
  • icu4c/source/data/coll/de_AT.txt is now changed in the branch
  • icu4c/source/data/coll/de.txt is now changed in the branch
  • icu4c/source/data/coll/dsb.txt is now changed in the branch
  • icu4c/source/data/coll/ee.txt is now changed in the branch
  • icu4c/source/data/coll/el.txt is now changed in the branch
  • icu4c/source/data/coll/en_US_POSIX.txt is now changed in the branch
  • icu4c/source/data/coll/eo.txt is now changed in the branch
  • icu4c/source/data/coll/es.txt is now changed in the branch
  • icu4c/source/data/coll/et.txt is now changed in the branch
  • icu4c/source/data/coll/fa_AF.txt is now changed in the branch
  • icu4c/source/data/coll/fa.txt is now changed in the branch
  • icu4c/source/data/coll/ff_Adlm.txt is now changed in the branch
  • icu4c/source/data/coll/fi.txt is now changed in the branch
  • icu4c/source/data/coll/fil.txt is now changed in the branch
  • icu4c/source/data/coll/fo.txt is now changed in the branch
  • icu4c/source/data/coll/fr_CA.txt is now changed in the branch
  • icu4c/source/data/coll/LOCALE_DEPS.json is now changed in the branch
  • icu4c/source/data/Makefile.in is now changed in the branch
  • icu4c/source/i18n/messageformat2_function_registry_internal.h is no longer changed in the branch
  • icu4c/source/i18n/messageformat2_function_registry.cpp is no longer changed in the branch
  • icu4c/source/Makefile.in is now changed in the branch
  • icu4c/source/test/intltest/messageformat2test.cpp is no longer changed in the branch
  • LICENSE is now changed in the branch
  • README.md is now changed in the branch

View Diff Across Force-Push

~ Your Friendly Jira-GitHub PR Checker Bot

@catamorphism catamorphism changed the base branch from maint/maint-75 to main September 27, 2024 23:52
@catamorphism catamorphism changed the title ICU-22747 MF2: Validate values of integer-valued options for :number and :integer ICU-22747 MF2: Validate digit size for :number and :integer; validate options for :datetime Sep 30, 2024
@catamorphism catamorphism marked this pull request as ready for review September 30, 2024 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants