We have fixed 10~ bugs caused by typos of IDL attributes. Now we need an "IDL attribute checker", which checks if IDL attributes not implemented in code generates are not used in IDL files.
- The "IDL attribute checker" uses IDLAttributes.txt, which lists all IDL attributes implemented in code generators. If we want to add a new IDL attribute, we need to add it to IDLAttributes.txt manually.
- The "IDL attribute checker" checks if all IDL attributes used in IDL files are listed in IDLAttributes.txt.
- If the "IDL attribute checker" fails, the build fails with a verbose error message.
Considering the following build flow, I guess that resolve-supplemental.pl would be the right place to add the "IDL attribute checker".
perl resolve_supplemental.pl ...
JS%.cpp : %.idl supplemental_dependency.tmp
perl generate-bindings.pl ...
To avoid build regression, I am planning to land the patch in the following steps:
- Enable the "IDL attribute checker" in Chromium.
- Enable the "IDL attribute checker" in all other build systems.
- Rename resolve-supplemental.pl to preprocess-idls.pl.