Mercurial > public > mercurial-scm > hg-stable
view tests/test-duplicateoptions.py @ 50248:af9d050f2bb8
rust: box ConfigValueParseError to avoid large result types
clippy emits a warning that all the Result types are way too large
because of HgError includes ConfigValueParseError as one of the variants,
so its size is 136 bytes.
By boxing ConfigValueParseError we're hopefully making everything faster
"for free".
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Mon, 27 Feb 2023 18:24:29 +0000 |
parents | 6000f5b25c9b |
children | e6069f84abbb |
line wrap: on
line source
import os from mercurial import ( commands, extensions, ui as uimod, ) ignore = {b'highlight', b'win32text', b'factotum', b'beautifygraph'} try: import sqlite3 del sqlite3 # unused, just checking that import works except ImportError: ignore.add(b'sqlitestore') if os.name != 'nt': ignore.add(b'win32mbcs') disabled = [ext for ext in extensions.disabled().keys() if ext not in ignore] hgrc = open(os.environ["HGRCPATH"], 'wb') hgrc.write(b'[extensions]\n') for ext in disabled: hgrc.write(ext + b'=\n') hgrc.close() u = uimod.ui.load() extensions.loadall(u) extensions.populateui(u) globalshort = set() globallong = set() for option in commands.globalopts: option[0] and globalshort.add(option[0]) option[1] and globallong.add(option[1]) for cmd, entry in commands.table.items(): seenshort = globalshort.copy() seenlong = globallong.copy() for option in entry[1]: if (option[0] and option[0] in seenshort) or ( option[1] and option[1] in seenlong ): print("command '" + cmd + "' has duplicate option " + str(option)) seenshort.add(option[0]) seenlong.add(option[1])