even lighter version of #17938: fix most issues with UnusedImport, XDeclaredButNotUsed, etc; fix #17511, #17510, #14246 (without realModule) (#18362)

* {.used: symbol}

* add tests

* fix tests with --import

* --import works without giving spurious unused warnings

* new warning warnDuplicateModuleImport for `import foo; import foo`

* fix test, add resolveModuleAlias, use proper line info for module aliases

* fix spurious warnings

* fix deprecation msg for deprecated modules even with `import foo as bar`

* disable a test for i386 pending sorting XDeclaredButNotUsed errors

* UnusedImport now works with re-exported symbols

* fix typo [skip ci]

* ic support

* add genPNode to allow writing PNode-based compiler code similarly to `genAst`

* fix DuplicateModuleImport warning

* adjust test

* fixup

* fixup

* fixup

* fix after rebase

* fix for IC

* keep the proc inline, move the const out

* [skip ci] fix changelog

* experiment: remove calls to resolveModuleAlias

* followup

* fixup

* fix tests/modules/tselfimport.nim

* workaround tests/deprecated/tmodule1.nim

* fix properly

* simplify
This commit is contained in:
Timothee Cour 2021-06-26 06:21:46 -07:00 • committed by GitHub
commit b8f761b7e2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 155 additions and 60 deletions

View file

@ -1,13 +1,23 @@
discard """
nimout: '''tmodule1.nim(11, 8) Warning: goodbye; importme is deprecated [Deprecated]
tmodule1.nim(14, 10) Warning: Ty is deprecated [Deprecated]
tmodule1.nim(17, 10) Warning: hello; Ty1 is deprecated [Deprecated]
tmodule1.nim(20, 8) Warning: aVar is deprecated [Deprecated]
tmodule1.nim(22, 3) Warning: aProc is deprecated [Deprecated]
tmodule1.nim(23, 3) Warning: hello; aProc1 is deprecated [Deprecated]
matrix: "--hint:all:off"
nimoutFull: true
nimout: '''
tmodule1.nim(21, 8) Warning: goodbye; importme is deprecated [Deprecated]
tmodule1.nim(24, 10) Warning: Ty is deprecated [Deprecated]
tmodule1.nim(27, 10) Warning: hello; Ty1 is deprecated [Deprecated]
tmodule1.nim(30, 8) Warning: aVar is deprecated [Deprecated]
tmodule1.nim(32, 3) Warning: aProc is deprecated [Deprecated]
tmodule1.nim(33, 3) Warning: hello; aProc1 is deprecated [Deprecated]
'''
"""
# line 20
import importme
block: