Skip to content

unusedMessageIds

Reports message IDs defined in the messages object that are never used in recognized report calls.

✅ This rule is included in the flint logical presets.

Lint rules often declare a messages object up front and then reference those message IDs from report calls later on. Keeping unused message IDs around makes rules harder to scan and maintain, especially when the message object grows over time.

This rule tracks message usage from context.report() calls and Flint’s built-in reportSourceCode() helper for source-mapped language rules.

53ruleCreatAB0createRu53(_,< {d ivclassNa="meec-li">53< sp ansty="le--0:#D6DEEB;--1:#403F">53messages:< {d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53usedMessage:< {d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53primary<: sp ansty="le--0:#D9F5DD;--1:#1111">1<1"sp ansty="le--0:#ECC48D;--1:#984E">4DThis message is use1<1"sp ansty="le--0:#D6DEEB;--1:#403F">5<3,d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53secondary:< [sp ansty="le--0:#D9F5DD;--1:#1111">11<""sp ansty="le--0:#D6DEEB;--1:#403F">53<],d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53suggestions:< [sp ansty="le--0:#D9F5DD;--1:#1111">11<""sp ansty="le--0:#D6DEEB;--1:#403F">53<],d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53<},d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53unusedMessage:< {d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53primary<: sp ansty="le--0:#D9F5DD;--1:#1111">1<1"sp ansty="le--0:#ECC48D;--1:#984E">4DThis message is never use1<1"sp ansty="le--0:#D6DEEB;--1:#403F">5<3,d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53secondary:< [sp ansty="le--0:#D9F5DD;--1:#1111">11<""sp ansty="le--0:#D6DEEB;--1:#403F">53<],d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53suggestions:< [sp ansty="le--0:#D9F5DD;--1:#1111">11<""sp ansty="le--0:#D6DEEB;--1:#403F">53<],d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53<},d ivclassNa="meec-li">53< sp ansty="le--0:#D6DEEB;--1:#403F">53<},d ivclassNa="meec-li">nt< sp ansty="le--0:#82AAFF;--1:#3B61">B0set1<1(sp ansty="le--0:#D7DBE0;--1:#403F">53conte7<2:sp ansty="le--0:#D6DEEB;--1:#403F">5<3 sp ansty="le--1:#1111"><11sp ansty="le--0:#FFCB">8BRuleConteD53< {d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53conteAB0repo53<({d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53message<: sp ansty="le--0:#D9F5DD;--1:#1111">1<1"sp ansty="le--0:#ECC48D;--1:#984E">4DusedMessa1<1"sp ansty="le--0:#D6DEEB;--1:#403F">5<3,d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53}<);d ivclassNa="meec-li">53< sp ansty="le--0:#D6DEEB;--1:#403F">53<},d ivclassNa="meec-li">53}<);d ivclassNa="meco"><);d>
3F53ruleCre4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0create3F53(<_, {divclass="Nameec-">3F<53 spans="tyle--0:#D6DEEB;--1:#40">3F53message3F53< spans="tyle--0:#D6DEEB;--1:#40">3F53usedMessag3F53 < spans="tyle--0:#D6DEEB;--1:#40">3F53prima1<111" spans="tyle--0:#ECC48D;--1:#98">4E4DThis message is u1<111" spans="tyle--0:#D6DEEB;--1:#40">33F53 < spans="tyle--0:#D6DEEB;--1:#40">3F53secondar11<11"" spans="tyle--0:#D6DEEB;--1:#40">3F<53] ,divclass="Nameec-">3F53 < spans="tyle--0:#D6DEEB;--1:#40">3F53suggestion11<11"" spans="tyle--0:#D6DEEB;--1:#40">3F<53] ,divclass="Nameec-">3F53< spans="tyle--0:#D6DEEB;--1:#40">3F<53} ,divclass="Nameec-">3F<53 spans="tyle--0:#D6DEEB;--1:#40">3F<53} ,divclass="Nameec-">de61B0s1<111( spans="tyle--0:#D7DBE0;--1:#40">3F53con63<1111 spans="tyle--0:#FF">CB8BRuleConF<5DD) spans="tyle--0:#D6DEEB;--1:#40">3F<53 {divclass="Nameec-">3F53< spans="tyle--0:#D6DEEB;--1:#40">3F53con4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0re3F<53( {divclass="Nameec-">3F53 < spans="tyle--0:#D6DEEB;--1:#40">3F53messa1<111" spans="tyle--0:#ECC48D;--1:#98">4E4DusedMes1<111" spans="tyle--0:#D6DEEB;--1:#40">33F53< spans="tyle--0:#D6DEEB;--1:#40">3F5<3}) ;divclass="Nameec-">3F<53 spans="tyle--0:#D6DEEB;--1:#40">3F<53} ,divclass="Nameec-">3F5<3}) ;divclass="Name"><})><;di vdivclass="Nameexpressive-">44AEim3F53 { reportSourceCod44AE31<111" spans="tyle--0:#ECC48D;--1:#98">4E4D@flint.fyi/volar-lang1<111" spans="tyle--0:#D6DEEB;--1:#40">3c3F53ruleCre4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0create3F53(<_, {divclass="Nameec-">3F<53 spans="tyle--0:#D6DEEB;--1:#40">3F53message3F53< spans="tyle--0:#D6DEEB;--1:#40">3F53missingKe3F53 < spans="tyle--0:#D6DEEB;--1:#40">3F53prima1<111" spans="tyle--0:#ECC48D;--1:#98">4E4DThis message is used from source c1<111" spans="tyle--0:#D6DEEB;--1:#40">33F53 < spans="tyle--0:#D6DEEB;--1:#40">3F53secondar11<11"" spans="tyle--0:#D6DEEB;--1:#40">3F<53] ,divclass="Nameec-">3F53 < spans="tyle--0:#D6DEEB;--1:#40">3F53suggestion11<11"" spans="tyle--0:#D6DEEB;--1:#40">3F<53] ,divclass="Nameec-">3F53< spans="tyle--0:#D6DEEB;--1:#40">3F<53} ,divclass="Nameec-">3F<53 spans="tyle--0:#D6DEEB;--1:#40">3F<53} ,divclass="Nameec-">de61B0s1<111( spans="tyle--0:#D7DBE0;--1:#40">3F53con63<1111 spans="tyle--0:#FF">CB8BRuleConF<5DD) spans="tyle--0:#D6DEEB;--1:#40">3F<53 {divclass="Nameec-">dent< spans="tyle--0:#82AAFF;--1:#3B">61B0reportSource3F53(contex3F53 < spans="tyle--0:#D6DEEB;--1:#40">3F53messa1<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dmissin1<111" spans="tyle--0:#D6DEEB;--1:#40">33F53 < spans="tyle--0:#D6DEEB;--1:#40">3F53ra3F53< spans="tyle--0:#D6DEEB;--1:#40">3F5<3}) ;divclass="Nameec-">3F<53 spans="tyle--0:#D6DEEB;--1:#40">3F<53} ,divclass="Nameec-">3F5<3}) ;divclass="Name"><})>

This rule is not configurable.