diff --git a/icu4c/source/i18n/number_modifiers.h b/icu4c/source/i18n/number_modifiers.h index 6fd0bad8d8e..e3820b6b384 100644 --- a/icu4c/source/i18n/number_modifiers.h +++ b/icu4c/source/i18n/number_modifiers.h @@ -322,9 +322,9 @@ class U_I18N_API AdoptingModifierStore : public ModifierStore, public UMemory { const Modifier *mods[4 * StandardPlural::COUNT] = {}; inline static int32_t getModIndex(Signum signum, StandardPlural::Form plural) { - U_ASSERT(signum >= 0 && signum <= 3); + U_ASSERT(signum >= 0 && signum < SIGNUM_COUNT); U_ASSERT(plural >= 0 && plural < StandardPlural::COUNT); - return static_cast(plural) * 4 + signum; + return static_cast(plural) * SIGNUM_COUNT + signum; } }; diff --git a/icu4c/source/i18n/number_patternstring.cpp b/icu4c/source/i18n/number_patternstring.cpp index b2e6edc5bfe..55b83f1ac63 100644 --- a/icu4c/source/i18n/number_patternstring.cpp +++ b/icu4c/source/i18n/number_patternstring.cpp @@ -1072,6 +1072,8 @@ PatternSignType PatternStringUtils::resolveSignDisplay(UNumberSignDisplay signDi case SIGNUM_POS_ZERO: case SIGNUM_POS: return PATTERN_SIGN_TYPE_POS; + default: + break; } break; @@ -1084,6 +1086,8 @@ PatternSignType PatternStringUtils::resolveSignDisplay(UNumberSignDisplay signDi case SIGNUM_POS_ZERO: case SIGNUM_POS: return PATTERN_SIGN_TYPE_POS_SIGN; + default: + break; } break; @@ -1097,6 +1101,8 @@ PatternSignType PatternStringUtils::resolveSignDisplay(UNumberSignDisplay signDi return PATTERN_SIGN_TYPE_POS; case SIGNUM_POS: return PATTERN_SIGN_TYPE_POS_SIGN; + default: + break; } break; diff --git a/icu4c/source/i18n/number_types.h b/icu4c/source/i18n/number_types.h index 49b77eeb4d6..641e082d361 100644 --- a/icu4c/source/i18n/number_types.h +++ b/icu4c/source/i18n/number_types.h @@ -95,7 +95,8 @@ enum Signum { SIGNUM_NEG = 0, SIGNUM_NEG_ZERO = 1, SIGNUM_POS_ZERO = 2, - SIGNUM_POS = 3 + SIGNUM_POS = 3, + SIGNUM_COUNT = 4, }; diff --git a/icu4j/main/classes/core/src/com/ibm/icu/impl/number/AdoptingModifierStore.java b/icu4j/main/classes/core/src/com/ibm/icu/impl/number/AdoptingModifierStore.java index 83652480173..93da08b48bb 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/impl/number/AdoptingModifierStore.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/impl/number/AdoptingModifierStore.java @@ -86,6 +86,6 @@ public class AdoptingModifierStore implements ModifierStore { private static int getModIndex(Signum signum, StandardPlural plural) { assert signum != null; assert plural != null; - return plural.ordinal() * 4 + signum.ordinal(); + return plural.ordinal() * Signum.COUNT + signum.ordinal(); } } diff --git a/icu4j/main/classes/core/src/com/ibm/icu/impl/number/Modifier.java b/icu4j/main/classes/core/src/com/ibm/icu/impl/number/Modifier.java index 43542e1c048..699ba3bc95a 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/impl/number/Modifier.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/impl/number/Modifier.java @@ -21,7 +21,9 @@ public interface Modifier { NEG, NEG_ZERO, POS_ZERO, - POS + POS; + + static final int COUNT = Signum.values().length; }; /**