Replace EnumOption with EnumerationArrayOption
authorMark Abraham <mark.j.abraham@gmail.com>
Tue, 7 Apr 2020 21:02:10 +0000 (21:02 +0000)
committerMark Abraham <mark.j.abraham@gmail.com>
Tue, 7 Apr 2020 21:02:10 +0000 (21:02 +0000)
commit38b6b0812dc4bf0a62fdddb6debbc18e580daf93
treee12381212189f62491a3e9c1364f921396fe4c48
parent59e622e14217da93f199885a5843f2cf9248fb63
Replace EnumOption with EnumerationArrayOption

Avoids code needing to mis-use the m_elements member of the
EnumerationArray. Encourages using class enums for command-line
options. Removes a bunch of clang-tidy suppressions and will be needed
for dealing properly with even more warnings coming with clang-tidy 9.
Removes a bunch of comments about how this list has to match that enum
somewhere else, because the compiler will tell us that.

Fixed time-unit conversion bug introduced a decade ago in
bc23d95b8c54b383cc731666f692f03237f8e949. That's exactly the kind
of bug that now gets caught at compile time.

Removed strange first field of legacy enums time_unit_t and
xvg_format_t that forced complicated casting and searching. It didn't
seem to do anything useful.

Removed unnecessary EnumIntOption.

Some test code is now in gmx::test namespace for brevity (consistent
with other test code), now that the enum values are much longer.

Change-Id: I9fd398d8981115d2317614912e64a9129ff1253a
42 files changed:
src/api/cpp/tpr.cpp
src/gromacs/analysisdata/modules/plot.cpp
src/gromacs/analysisdata/modules/plot.h
src/gromacs/applied_forces/densityfittingamplitudelookup.h
src/gromacs/applied_forces/densityfittingoptions.cpp
src/gromacs/commandline/pargs.cpp
src/gromacs/commandline/tests/cmdlinehelpwriter.cpp
src/gromacs/coordinateio/enums.h
src/gromacs/coordinateio/requirements.cpp
src/gromacs/fileio/oenv.cpp
src/gromacs/fileio/oenv.h
src/gromacs/fileio/xvgr.cpp
src/gromacs/gmxana/gmx_anaeig.cpp
src/gromacs/gmxana/gmx_analyze.cpp
src/gromacs/gmxana/gmx_enemat.cpp
src/gromacs/gmxana/gmx_saltbr.cpp
src/gromacs/gmxpreprocess/insert_molecules.cpp
src/gromacs/gmxpreprocess/pdb2gmx.cpp
src/gromacs/math/densityfit.h
src/gromacs/options/basicoptions.h
src/gromacs/options/tests/optionsassigner.cpp
src/gromacs/options/tests/refdata/TreeValueSupportTest_SupportsEnumerationArrayOption.xml [moved from src/gromacs/options/tests/refdata/TreeValueSupportTest_SupportsEnumIntOption.xml with 100% similarity]
src/gromacs/options/tests/timeunitmanager.cpp
src/gromacs/options/tests/treesupport.cpp
src/gromacs/options/timeunitmanager.cpp
src/gromacs/options/timeunitmanager.h
src/gromacs/selection/compiler.cpp
src/gromacs/selection/selectioncollection.cpp
src/gromacs/selection/selectioncollection_impl.h
src/gromacs/trajectoryanalysis/analysissettings_impl.h
src/gromacs/trajectoryanalysis/modules/angle.cpp
src/gromacs/trajectoryanalysis/modules/pairdist.cpp
src/gromacs/trajectoryanalysis/modules/rdf.cpp
src/gromacs/trajectoryanalysis/modules/select.cpp
src/gromacs/trajectoryanalysis/runnercommon.cpp
src/gromacs/trajectoryanalysis/tests/refdata/TrajectoryAnalysisCommandLineRunnerTest_WritesHelp.xml
src/programs/mdrun/nonbonded_bench.cpp
src/testutils/refdata.cpp
src/testutils/refdata.h
src/testutils/tests/interactivetest.cpp
src/testutils/tests/refdata_tests.cpp
src/testutils/tests/xvgtest_tests.cpp