As was pointed out in PR #3106, the standard doesn't mandate the
existence of std::char_traits<uint16_t> and libc++ did actually
deprecate it in release 18 and delete it in release 19.
As ICU4C uses this for backward compatibility for old code that still
depends on setting -DUCHAR_TYPE=uint16_t it'd be nice to keep using it
as long as possible but once it's gone from the standard library there
isn't really much useful that ICU4C could do about that so conditionally
compiling the code when the standard library version is old enough
should suffice for keeping backward compatibility for yet some time.
https://github.com/llvm/llvm-project/commit/cce062d
When passing a string literal to any of the legacy constructors that
take just a plain pointer to a UTF-16 string it becomes necessary to
iterate through the string to find its length, even though this length
was known to the compiler (which just has no way of passing it on to the
constructor).
But when calling the new templated string view constructor instead it
becomes possible for the compiler to use the known length of a string
literal to directly create a string view of the correct size and pass
this on to the constructor.
By replacing the legacy constructors with the new constructor this is
made the default behaviour.
Calendar fuzzer test too many operations and cause timeout
which does not suerface the real issue. Limit the test data size to 100
instead of 1000 instead.
1. The flatten plugin appended the relative module paths to the URLs in <scm>.
The same kind of problem solved earlier with ${proj.url}, and fixed the same way.
I was unable to find any way to tell the plugin to not do that append, even after
reading some of the plugin code.
2. The stylesheet containing the JCite styles was not copied in the generated javadoc.
The first part of our custom stylesheet is 100% the same as the oficial one.
So the only part that was visually affected was the code produced by JCite.
The code still used <pre> and <code>, so it was monospaced and well indented / wrapped,
but no syntax colors.
Modify ICU4C and ICU4J test readers to handle all tests
Add `ignoreJava` and `ignoreCpp` properties to tests where needed
Includes parser bug fixes:
ICU4J: require a complex-body after declarations
ICU4J: Correctly parse the complex body after an unsupported statement
ICU4J: Handle date params in tests and remove default params for tests
ICU4J: Handle decimal params in tests
ICU4J: Require whitespace before variable/literal in reserved annotation
ICU4J: Require whitespace between options
ICU4J: Require a variable-expression in an .input declaration
ICU4J: don't require space between last key and pattern in variant
ICU4J: don't require space between selectors
ICU4J: allow whitespace after '=' in option
ICU4J: parse escape sequences in quoted literals according to grammar
ICU4J: allow whitespace within markup after attributes list