In a very long enum with a render function psalm it gives an error, UnhandledMatchCondition - This match expression is not exhaustive - consider values.
It is checked and all the values declared in the enum are also in the render function.
enum CountryCodeEnum: string
{
case AD = 'ad';
case AE = 'ae';
case AF = 'af';
case AG = 'ag';
case AI = 'ai';
case AL = 'al';
case AM = 'am';
case AN = 'an';
case AO = 'ao';
case AQ = 'aq';
case AR = 'ar';
case AS = 'as';
case AT = 'at';
case AU = 'au';
case AW = 'aw';
case AX = 'ax';
case AZ = 'az';
case BA = 'ba';
case BB = 'bb';
case BD = 'bd';
case BE = 'be';
case BF = 'bf';
case BG = 'bg';
case BH = 'bh';
case BI = 'bi';
case BJ = 'bj';
case BL = 'bl';
case BM = 'bm';
case BN = 'bn';
case BO = 'bo';
case BQ = 'bq';
case BR = 'br';
case BS = 'bs';
case BT = 'bt';
case BV = 'bv';
case BW = 'bw';
case BY = 'by';
case BZ = 'bz';
case CA = 'ca';
case CC = 'cc';
case CD = 'cd';
case CF = 'cf';
case CG = 'cg';
case CH = 'ch';
case CI = 'ci';
case CK = 'ck';
case CL = 'cl';
case CM = 'cm';
case CN = 'cn';
case CO = 'co';
case CR = 'cr';
case CS = 'cs';
case CU = 'cu';
case CV = 'cv';
case CW = 'cw';
case CX = 'cx';
case CY = 'cy';
case CZ = 'cz';
case DE = 'de';
case DJ = 'dj';
case DK = 'dk';
case DM = 'dm';
case DO = 'do';
case DZ = 'dz';
case EC = 'ec';
case EE = 'ee';
case EG = 'eg';
case EH = 'eh';
case ER = 'er';
case ES = 'es';
case ET = 'et';
case FI = 'fi';
case FJ = 'fj';
case FK = 'fk';
case FM = 'fm';
case FO = 'fo';
case FR = 'fr';
case GA = 'ga';
case GB = 'gb';
case GD = 'gd';
case GE = 'ge';
case GF = 'gf';
case GG = 'gg';
case GH = 'gh';
case GI = 'gi';
case GL = 'gl';
case GM = 'gm';
case GN = 'gn';
case GP = 'gp';
case GQ = 'gq';
case GR = 'gr';
case GS = 'gs';
case GT = 'gt';
case GU = 'gu';
case GW = 'gw';
case GY = 'gy';
case HK = 'hk';
case HM = 'hm';
case HN = 'hn';
case HR = 'hr';
case HT = 'ht';
case HU = 'hu';
case ID = 'id';
case IE = 'ie';
case IL = 'il';
case IM = 'im';
case IN = 'in';
case IO = 'io';
case IQ = 'iq';
case IR = 'ir';
case IS = 'is';
case IT = 'it';
case JE = 'je';
case JM = 'jm';
case JO = 'jo';
case JP = 'jp';
case KE = 'ke';
case KG = 'kg';
case KH = 'kh';
case KI = 'ki';
case KM = 'km';
case KN = 'kn';
case KP = 'kp';
case KR = 'kr';
case KW = 'kw';
case KY = 'ky';
case KZ = 'kz';
case LA = 'la';
case LB = 'lb';
case LC = 'lc';
case LI = 'li';
case LK = 'lk';
case LR = 'lr';
case LS = 'ls';
case LT = 'lt';
case LU = 'lu';
case LV = 'lv';
case LY = 'ly';
case MA = 'ma';
case MC = 'mc';
case MD = 'md';
case ME = 'me';
case MF = 'mf';
case MG = 'mg';
case MH = 'mh';
case MK = 'mk';
case ML = 'ml';
case MM = 'mm';
case MN = 'mn';
case MO = 'mo';
case MP = 'mp';
case MQ = 'mq';
case MR = 'mr';
case MS = 'ms';
case MT = 'mt';
case MU = 'mu';
case MV = 'mv';
case MW = 'mw';
case MX = 'mx';
case MY = 'my';
case MZ = 'mz';
case NA = 'na';
case NC = 'nc';
case NE = 'ne';
case NF = 'nf';
case NG = 'ng';
case NI = 'ni';
case NL = 'nl';
case NO = 'no';
case NP = 'np';
case NR = 'nr';
case NU = 'nu';
case NZ = 'nz';
case OM = 'om';
case PA = 'pa';
case PE = 'pe';
case PF = 'pf';
case PG = 'pg';
case PH = 'ph';
case PK = 'pk';
case PL = 'pl';
case PM = 'pm';
case PN = 'pn';
case PR = 'pr';
case PS = 'ps';
case PT = 'pt';
case PW = 'pw';
case PY = 'py';
case QA = 'qa';
case RE = 're';
case RO = 'ro';
case RS = 'rs';
case RU = 'ru';
case RW = 'rw';
case SA = 'sa';
case SB = 'sb';
case SC = 'sc';
case SD = 'sd';
case SE = 'se';
case SG = 'sg';
case SH = 'sh';
case SI = 'si';
case SJ = 'sj';
case SK = 'sk';
case SL = 'sl';
case SM = 'sm';
case SN = 'sn';
case SO = 'so';
case SR = 'sr';
case SS = 'ss';
case ST = 'st';
case SV = 'sv';
case SX = 'sx';
case SY = 'sy';
case SZ = 'sz';
case TC = 'tc';
case TD = 'td';
case TF = 'tf';
case TG = 'tg';
case TH = 'th';
case TJ = 'tj';
case TK = 'tk';
case TL = 'tl';
case TM = 'tm';
case TN = 'tn';
case TO = 'to';
case TR = 'tr';
case TT = 'tt';
case TV = 'tv';
case TW = 'tw';
case TZ = 'tz';
case UA = 'ua';
case UG = 'ug';
case UM = 'um';
case US = 'us';
case UY = 'uy';
case UZ = 'uz';
case VA = 'va';
case VC = 'vc';
case VE = 've';
case VG = 'vg';
case VI = 'vi';
case VN = 'vn';
case VU = 'vu';
case WF = 'wf';
case WS = 'ws';
case XK = 'xk';
case YE = 'ye';
case YT = 'yt';
case ZA = 'za';
case ZM = 'zm';
case ZW = 'zw';
public function render(): string
{
return match ($this) {
CountryCodeEnum::AD => 'Andorra',
CountryCodeEnum::AE => 'United Arab Emirates',
CountryCodeEnum::AF => 'Afghanistan',
CountryCodeEnum::AG => 'Antigua and Barbuda',
CountryCodeEnum::AI => 'Anguilla',
CountryCodeEnum::AL => 'Albania',
CountryCodeEnum::AM => 'Armenia',
CountryCodeEnum::AN => 'Netherlands Antilles',
CountryCodeEnum::AO => 'Angola',
CountryCodeEnum::AQ => 'Antarctica',
CountryCodeEnum::AR => 'Argentina',
CountryCodeEnum::AS => 'American Samoa',
CountryCodeEnum::AT => 'Austria',
CountryCodeEnum::AU => 'Australia',
CountryCodeEnum::AW => 'Aruba',
CountryCodeEnum::AX => 'Aland Islands',
CountryCodeEnum::AZ => 'Azerbaijan',
CountryCodeEnum::BA => 'Bosnia and Herzegovina',
CountryCodeEnum::BB => 'Barbados',
CountryCodeEnum::BD => 'Bangladesh',
CountryCodeEnum::BE => 'Belgium',
CountryCodeEnum::BF => 'Burkina Faso',
CountryCodeEnum::BG => 'Bulgaria',
CountryCodeEnum::BH => 'Bahrain',
CountryCodeEnum::BI => 'Burundi',
CountryCodeEnum::BJ => 'Benin',
CountryCodeEnum::BL => 'Saint Barthelemy',
CountryCodeEnum::BM => 'Bermuda',
CountryCodeEnum::BN => 'Brunei Darussalam',
CountryCodeEnum::BO => 'Bolivia',
CountryCodeEnum::BQ => 'Bonaire, Sint Eustatius and Saba',
CountryCodeEnum::BR => 'Brazil',
CountryCodeEnum::BS => 'Bahamas',
CountryCodeEnum::BT => 'Bhutan',
CountryCodeEnum::BV => 'Bouvet Island',
CountryCodeEnum::BW => 'Botswana',
CountryCodeEnum::BY => 'Belarus',
CountryCodeEnum::BZ => 'Belize',
CountryCodeEnum::CA => 'Canada',
CountryCodeEnum::CC => 'Cocos (Keeling) Islands',
CountryCodeEnum::CD => 'Congo, Democratic Republic of the Congo',
CountryCodeEnum::CF => 'Central African Republic',
CountryCodeEnum::CG => 'Congo',
CountryCodeEnum::CH => 'Switzerland',
CountryCodeEnum::CI => 'Cote DIvoire',
CountryCodeEnum::CK => 'Cook Islands',
CountryCodeEnum::CL => 'Chile',
CountryCodeEnum::CM => 'Cameroon',
CountryCodeEnum::CN => 'China',
CountryCodeEnum::CO => 'Colombia',
CountryCodeEnum::CR => 'Costa Rica',
CountryCodeEnum::CS => 'Serbia and Montenegro',
CountryCodeEnum::CU => 'Cuba',
CountryCodeEnum::CV => 'Cape Verde',
CountryCodeEnum::CW => 'Curacao',
CountryCodeEnum::CX => 'Christmas Island',
CountryCodeEnum::CY => 'Cyprus',
CountryCodeEnum::CZ => 'Czech Republic',
CountryCodeEnum::DE => 'Germany',
CountryCodeEnum::DJ => 'Djibouti',
CountryCodeEnum::DK => 'Denmark',
CountryCodeEnum::DM => 'Dominica',
CountryCodeEnum::DO => 'Dominican Republic',
CountryCodeEnum::DZ => 'Algeria',
CountryCodeEnum::EC => 'Ecuador',
CountryCodeEnum::EE => 'Estonia',
CountryCodeEnum::EG => 'Egypt',
CountryCodeEnum::EH => 'Western Sahara',
CountryCodeEnum::ER => 'Eritrea',
CountryCodeEnum::ES => 'Spain',
CountryCodeEnum::ET => 'Ethiopia',
CountryCodeEnum::FI => 'Finland',
CountryCodeEnum::FJ => 'Fiji',
CountryCodeEnum::FK => 'Falkland Islands (Malvinas)',
CountryCodeEnum::FM => 'Micronesia, Federated States of',
CountryCodeEnum::FO => 'Faroe Islands',
CountryCodeEnum::FR => 'France',
CountryCodeEnum::GA => 'Gabon',
CountryCodeEnum::GB => 'United Kingdom',
CountryCodeEnum::GD => 'Grenada',
CountryCodeEnum::GE => 'Georgia',
CountryCodeEnum::GF => 'French Guiana',
CountryCodeEnum::GG => 'Guernsey',
CountryCodeEnum::GH => 'Ghana',
CountryCodeEnum::GI => 'Gibraltar',
CountryCodeEnum::GL => 'Greenland',
CountryCodeEnum::GM => 'Gambia',
CountryCodeEnum::GN => 'Guinea',
CountryCodeEnum::GP => 'Guadeloupe',
CountryCodeEnum::GQ => 'Equatorial Guinea',
CountryCodeEnum::GR => 'Greece',
CountryCodeEnum::GS => 'South Georgia and the South Sandwich Islands',
CountryCodeEnum::GT => 'Guatemala',
CountryCodeEnum::GU => 'Guam',
CountryCodeEnum::GW => 'Guinea-Bissau',
CountryCodeEnum::GY => 'Guyana',
CountryCodeEnum::HK => 'Hong Kong',
CountryCodeEnum::HM => 'Heard Island and Mcdonald Islands',
CountryCodeEnum::HN => 'Honduras',
CountryCodeEnum::HR => 'Croatia',
CountryCodeEnum::HT => 'Haiti',
CountryCodeEnum::HU => 'Hungary',
CountryCodeEnum::ID => 'Indonesia',
CountryCodeEnum::IE => 'Ireland',
CountryCodeEnum::IL => 'Israel',
CountryCodeEnum::IM => 'Isle of Man',
CountryCodeEnum::IN => 'India',
CountryCodeEnum::IO => 'British Indian Ocean Territory',
CountryCodeEnum::IQ => 'Iraq',
CountryCodeEnum::IR => 'Iran, Islamic Republic of',
CountryCodeEnum::IS => 'Iceland',
CountryCodeEnum::IT => 'Italy',
CountryCodeEnum::JE => 'Jersey',
CountryCodeEnum::JM => 'Jamaica',
CountryCodeEnum::JO => 'Jordan',
CountryCodeEnum::JP => 'Japan',
CountryCodeEnum::KE => 'Kenya',
CountryCodeEnum::KG => 'Kyrgyzstan',
CountryCodeEnum::KH => 'Cambodia',
CountryCodeEnum::KI => 'Kiribati',
CountryCodeEnum::KM => 'Comoros',
CountryCodeEnum::KN => 'Saint Kitts and Nevis',
CountryCodeEnum::KP => 'Korea, Democratic Peoples Republic of',
CountryCodeEnum::KR => 'Korea, Republic of',
CountryCodeEnum::KW => 'Kuwait',
CountryCodeEnum::KY => 'Cayman Islands',
CountryCodeEnum::KZ => 'Kazakhstan',
CountryCodeEnum::LA => 'Lao Peoples Democratic Republic',
CountryCodeEnum::LB => 'Lebanon',
CountryCodeEnum::LC => 'Saint Lucia',
CountryCodeEnum::LI => 'Liechtenstein',
CountryCodeEnum::LK => 'Sri Lanka',
CountryCodeEnum::LR => 'Liberia',
CountryCodeEnum::LS => 'Lesotho',
CountryCodeEnum::LT => 'Lithuania',
CountryCodeEnum::LU => 'Luxembourg',
CountryCodeEnum::LV => 'Latvia',
CountryCodeEnum::LY => 'Libyan Arab Jamahiriya',
CountryCodeEnum::MA => 'Morocco',
CountryCodeEnum::MC => 'Monaco',
CountryCodeEnum::MD => 'Moldova, Republic of',
CountryCodeEnum::ME => 'Montenegro',
CountryCodeEnum::MF => 'Saint Martin',
CountryCodeEnum::MG => 'Madagascar',
CountryCodeEnum::MH => 'Marshall Islands',
CountryCodeEnum::MK => 'Macedonia, the Former Yugoslav Republic of',
CountryCodeEnum::ML => 'Mali',
CountryCodeEnum::MM => 'Myanmar',
CountryCodeEnum::MN => 'Mongolia',
CountryCodeEnum::MO => 'Macao',
CountryCodeEnum::MP => 'Northern Mariana Islands',
CountryCodeEnum::MQ => 'Martinique',
CountryCodeEnum::MR => 'Mauritania',
CountryCodeEnum::MS => 'Montserrat',
CountryCodeEnum::MT => 'Malta',
CountryCodeEnum::MU => 'Mauritius',
CountryCodeEnum::MV => 'Maldives',
CountryCodeEnum::MW => 'Malawi',
CountryCodeEnum::MX => 'Mexico',
CountryCodeEnum::MY => 'Malaysia',
CountryCodeEnum::MZ => 'Mozambique',
CountryCodeEnum::NA => 'Namibia',
CountryCodeEnum::NC => 'New Caledonia',
CountryCodeEnum::NE => 'Niger',
CountryCodeEnum::NF => 'Norfolk Island',
CountryCodeEnum::NG => 'Nigeria',
CountryCodeEnum::NI => 'Nicaragua',
CountryCodeEnum::NL => 'Netherlands',
CountryCodeEnum::NO => 'Norway',
CountryCodeEnum::NP => 'Nepal',
CountryCodeEnum::NR => 'Nauru',
CountryCodeEnum::NU => 'Niue',
CountryCodeEnum::NZ => 'New Zealand',
CountryCodeEnum::OM => 'Oman',
CountryCodeEnum::PA => 'Panama',
CountryCodeEnum::PE => 'Peru',
CountryCodeEnum::PF => 'French Polynesia',
CountryCodeEnum::PG => 'Papua New Guinea',
CountryCodeEnum::PH => 'Philippines',
CountryCodeEnum::PK => 'Pakistan',
CountryCodeEnum::PL => 'Poland',
CountryCodeEnum::PM => 'Saint Pierre and Miquelon',
CountryCodeEnum::PN => 'Pitcairn',
CountryCodeEnum::PR => 'Puerto Rico',
CountryCodeEnum::PS => 'Palestinian Territory, Occupied',
CountryCodeEnum::PT => 'Portugal',
CountryCodeEnum::PW => 'Palau',
CountryCodeEnum::PY => 'Paraguay',
CountryCodeEnum::QA => 'Qatar',
CountryCodeEnum::RE => 'Reunion',
CountryCodeEnum::RO => 'Romania',
CountryCodeEnum::RS => 'Serbia',
CountryCodeEnum::RU => 'Russian Federation',
CountryCodeEnum::RW => 'Rwanda',
CountryCodeEnum::SA => 'Saudi Arabia',
CountryCodeEnum::SB => 'Solomon Islands',
CountryCodeEnum::SC => 'Seychelles',
CountryCodeEnum::SD => 'Sudan',
CountryCodeEnum::SE => 'Sweden',
CountryCodeEnum::SG => 'Singapore',
CountryCodeEnum::SH => 'Saint Helena',
CountryCodeEnum::SI => 'Slovenia',
CountryCodeEnum::SJ => 'Svalbard and Jan Mayen',
CountryCodeEnum::SK => 'Slovakia',
CountryCodeEnum::SL => 'Sierra Leone',
CountryCodeEnum::SM => 'San Marino',
CountryCodeEnum::SN => 'Senegal',
CountryCodeEnum::SO => 'Somalia',
CountryCodeEnum::SR => 'Suriname',
CountryCodeEnum::SS => 'South Sudan',
CountryCodeEnum::ST => 'Sao Tome and Principe',
CountryCodeEnum::SV => 'El Salvador',
CountryCodeEnum::SX => 'Sint Maarten',
CountryCodeEnum::SY => 'Syrian Arab Republic',
CountryCodeEnum::SZ => 'Swaziland',
CountryCodeEnum::TC => 'Turks and Caicos Islands',
CountryCodeEnum::TD => 'Chad',
CountryCodeEnum::TF => 'French Southern Territories',
CountryCodeEnum::TG => 'Togo',
CountryCodeEnum::TH => 'Thailand',
CountryCodeEnum::TJ => 'Tajikistan',
CountryCodeEnum::TK => 'Tokelau',
CountryCodeEnum::TL => 'Timor-Leste',
CountryCodeEnum::TM => 'Turkmenistan',
CountryCodeEnum::TN => 'Tunisia',
CountryCodeEnum::TO => 'Tonga',
CountryCodeEnum::TR => 'Turkey',
CountryCodeEnum::TT => 'Trinidad and Tobago',
CountryCodeEnum::TV => 'Tuvalu',
CountryCodeEnum::TW => 'Taiwan, Province of China',
CountryCodeEnum::TZ => 'Tanzania, United Republic of',
CountryCodeEnum::UA => 'Ukraine',
CountryCodeEnum::UG => 'Uganda',
CountryCodeEnum::UM => 'United States Minor Outlying Islands',
CountryCodeEnum::US => 'United States',
CountryCodeEnum::UY => 'Uruguay',
CountryCodeEnum::UZ => 'Uzbekistan',
CountryCodeEnum::VA => 'Holy See (Vatican City State)',
CountryCodeEnum::VC => 'Saint Vincent and the Grenadines',
CountryCodeEnum::VE => 'Venezuela',
CountryCodeEnum::VG => 'Virgin Islands, British',
CountryCodeEnum::VI => 'Virgin Islands, U.s.',
CountryCodeEnum::VN => 'Viet Nam',
CountryCodeEnum::VU => 'Vanuatu',
CountryCodeEnum::WF => 'Wallis and Futuna',
CountryCodeEnum::WS => 'Samoa',
CountryCodeEnum::XK => 'Kosovo',
CountryCodeEnum::YE => 'Yemen',
CountryCodeEnum::YT => 'Mayotte',
CountryCodeEnum::ZA => 'South Africa',
CountryCodeEnum::ZM => 'Zambia',
CountryCodeEnum::ZW => 'Zimbabwe',
};
}
}
In a very long enum with a render function psalm it gives an error, UnhandledMatchCondition - This match expression is not exhaustive - consider values. It is checked and all the values declared in the enum are also in the render function.