strictFuncs+views: add test that imports stdlib modules (#16878)
This commit attempts to improve testing of strictFuncs and views, and
prevent regressions like #16873 (resolved by 0b01eddace).
We previously only explicitly tested strictFuncs and views with a
smaller number of stdlib modules, mostly in:
- tests/effects/tstrict_funcs.nim
- tests/views/tcan_compile_nim.nim
Note that this commit leaves the `pegs` module commented out; it
cannot currently be compiled with `--experimental:views` (see #16892).
Note also that this commit is not sufficient to test strictFuncs and
views, but it does detect a subset of problems.
This commit is contained in:
parent
6f1289b80c
commit
14c61ecf24
3 changed files with 198 additions and 12 deletions
|
|
@ -3,18 +3,6 @@ discard """
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import tables, streams, parsecsv
|
import tables, streams, parsecsv
|
||||||
# We import the below modules to check that they compile with `strictFuncs`.
|
|
||||||
# They are otherwise unused in this file.
|
|
||||||
import
|
|
||||||
complex,
|
|
||||||
critbits,
|
|
||||||
httpcore,
|
|
||||||
math,
|
|
||||||
nre,
|
|
||||||
rationals,
|
|
||||||
sequtils,
|
|
||||||
strutils,
|
|
||||||
uri
|
|
||||||
|
|
||||||
type
|
type
|
||||||
Contig2Reads = TableRef[string, seq[string]]
|
Contig2Reads = TableRef[string, seq[string]]
|
||||||
|
|
|
||||||
177
tests/effects/tstrict_funcs_imports.nim
Normal file
177
tests/effects/tstrict_funcs_imports.nim
Normal file
|
|
@ -0,0 +1,177 @@
|
||||||
|
discard """
|
||||||
|
cmd: "nim $target $options --hints:on --experimental:strictFuncs --experimental:views --threads:on -d:ssl -d:nimCoroutines $file"
|
||||||
|
targets: "c"
|
||||||
|
"""
|
||||||
|
{.warning[UnusedImport]: off.}
|
||||||
|
|
||||||
|
when defined(linux):
|
||||||
|
import linenoise
|
||||||
|
|
||||||
|
import
|
||||||
|
algorithm,
|
||||||
|
asyncdispatch,
|
||||||
|
asyncfile,
|
||||||
|
asyncftpclient,
|
||||||
|
asyncfutures,
|
||||||
|
asynchttpserver,
|
||||||
|
asyncmacro,
|
||||||
|
asyncnet,
|
||||||
|
asyncstreams,
|
||||||
|
atomics,
|
||||||
|
base64,
|
||||||
|
bitops,
|
||||||
|
browsers,
|
||||||
|
cgi,
|
||||||
|
chains,
|
||||||
|
colors,
|
||||||
|
complex,
|
||||||
|
cookies,
|
||||||
|
coro,
|
||||||
|
cpuinfo,
|
||||||
|
cpuload,
|
||||||
|
critbits,
|
||||||
|
cstrutils,
|
||||||
|
db_common,
|
||||||
|
db_mysql,
|
||||||
|
db_odbc,
|
||||||
|
db_postgres,
|
||||||
|
db_sqlite,
|
||||||
|
deques,
|
||||||
|
distros,
|
||||||
|
dynlib,
|
||||||
|
encodings,
|
||||||
|
endians,
|
||||||
|
epoll,
|
||||||
|
fenv,
|
||||||
|
hashes,
|
||||||
|
heapqueue,
|
||||||
|
hotcodereloading,
|
||||||
|
htmlgen,
|
||||||
|
htmlparser,
|
||||||
|
httpclient,
|
||||||
|
httpcore,
|
||||||
|
inotify,
|
||||||
|
intsets,
|
||||||
|
json,
|
||||||
|
kqueue,
|
||||||
|
lenientops,
|
||||||
|
lexbase,
|
||||||
|
lists,
|
||||||
|
locks,
|
||||||
|
logging,
|
||||||
|
macrocache,
|
||||||
|
macros,
|
||||||
|
marshal,
|
||||||
|
math,
|
||||||
|
md5,
|
||||||
|
memfiles,
|
||||||
|
mersenne,
|
||||||
|
mimetypes,
|
||||||
|
nativesockets,
|
||||||
|
net,
|
||||||
|
nimhcr,
|
||||||
|
# nimprof,
|
||||||
|
nre,
|
||||||
|
oids,
|
||||||
|
options,
|
||||||
|
os,
|
||||||
|
osproc,
|
||||||
|
parsecfg,
|
||||||
|
parsecsv,
|
||||||
|
parsejson,
|
||||||
|
parseopt,
|
||||||
|
parsesql,
|
||||||
|
parseutils,
|
||||||
|
parsexml,
|
||||||
|
pathnorm,
|
||||||
|
# pegs,
|
||||||
|
posix_utils,
|
||||||
|
prelude,
|
||||||
|
punycode,
|
||||||
|
random,
|
||||||
|
rationals,
|
||||||
|
rdstdin,
|
||||||
|
re,
|
||||||
|
registry,
|
||||||
|
reservedmem,
|
||||||
|
rlocks,
|
||||||
|
ropes,
|
||||||
|
rtarrays,
|
||||||
|
selectors,
|
||||||
|
sequtils,
|
||||||
|
sets,
|
||||||
|
sharedlist,
|
||||||
|
sharedtables,
|
||||||
|
smtp,
|
||||||
|
ssl_certs,
|
||||||
|
ssl_config,
|
||||||
|
stats,
|
||||||
|
streams,
|
||||||
|
streamwrapper,
|
||||||
|
strformat,
|
||||||
|
strmisc,
|
||||||
|
strscans,
|
||||||
|
strtabs,
|
||||||
|
strutils,
|
||||||
|
sugar,
|
||||||
|
tables,
|
||||||
|
terminal,
|
||||||
|
threadpool,
|
||||||
|
times,
|
||||||
|
typeinfo,
|
||||||
|
typetraits,
|
||||||
|
unicode,
|
||||||
|
unidecode,
|
||||||
|
unittest,
|
||||||
|
uri,
|
||||||
|
volatile,
|
||||||
|
winlean,
|
||||||
|
xmlparser,
|
||||||
|
xmltree
|
||||||
|
|
||||||
|
import experimental/[
|
||||||
|
diff,
|
||||||
|
]
|
||||||
|
|
||||||
|
import packages/docutils/[
|
||||||
|
highlite,
|
||||||
|
rst,
|
||||||
|
rstast,
|
||||||
|
rstgen,
|
||||||
|
]
|
||||||
|
|
||||||
|
import std/[
|
||||||
|
compilesettings,
|
||||||
|
decls,
|
||||||
|
editdistance,
|
||||||
|
effecttraits,
|
||||||
|
enumerate,
|
||||||
|
enumutils,
|
||||||
|
exitprocs,
|
||||||
|
isolation,
|
||||||
|
jsonutils,
|
||||||
|
logic,
|
||||||
|
monotimes,
|
||||||
|
packedsets,
|
||||||
|
setutils,
|
||||||
|
sha1,
|
||||||
|
socketstreams,
|
||||||
|
stackframes,
|
||||||
|
sums,
|
||||||
|
time_t,
|
||||||
|
varints,
|
||||||
|
with,
|
||||||
|
wordwrap,
|
||||||
|
wrapnils,
|
||||||
|
]
|
||||||
|
|
||||||
|
import std/private/[
|
||||||
|
asciitables,
|
||||||
|
decode_helpers,
|
||||||
|
gitutils,
|
||||||
|
globs,
|
||||||
|
miscdollars,
|
||||||
|
since,
|
||||||
|
strimpl,
|
||||||
|
underscored_calls,
|
||||||
|
]
|
||||||
21
tests/effects/tstrict_funcs_imports_js.nim
Normal file
21
tests/effects/tstrict_funcs_imports_js.nim
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
discard """
|
||||||
|
cmd: "nim $target $options --hints:on --experimental:strictFuncs --experimental:views $file"
|
||||||
|
targets: "js"
|
||||||
|
"""
|
||||||
|
{.warning[UnusedImport]: off.}
|
||||||
|
|
||||||
|
import
|
||||||
|
asyncjs,
|
||||||
|
dom,
|
||||||
|
dom_extensions,
|
||||||
|
jsconsole,
|
||||||
|
jsffi,
|
||||||
|
jsre
|
||||||
|
|
||||||
|
import std/[
|
||||||
|
jsbigints,
|
||||||
|
]
|
||||||
|
|
||||||
|
import std/private/[
|
||||||
|
jsutils,
|
||||||
|
]
|
||||||
Loading…
Add table
Add a link
Reference in a new issue