From 0b84ee167b766ef3ecb2ba6374e32725ea1b2794 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Sat, 28 May 2016 17:12:44 +0200 Subject: fixes #2159 Hints and warnings are only emitted for the main package that is compiled --- compiler/ast.nim | 3 +++ compiler/modules.nim | 6 ++++++ compiler/msgs.nim | 4 +++- compiler/sem.nim | 6 ++++++ 4 files changed, 18 insertions(+), 1 deletion(-) (limited to 'compiler') diff --git a/compiler/ast.nim b/compiler/ast.nim index fecbefd7e..acd72479d 100644 --- a/compiler/ast.nim +++ b/compiler/ast.nim @@ -961,6 +961,9 @@ const skMethod, skConverter} var ggDebug* {.deprecated.}: bool ## convenience switch for trying out things +var + gMainPackageId*: int + gMainPackageNotes*: TNoteKinds proc isCallExpr*(n: PNode): bool = result = n.kind in nkCallKinds diff --git a/compiler/modules.nim b/compiler/modules.nim index ef727e200..8ac964321 100644 --- a/compiler/modules.nim +++ b/compiler/modules.nim @@ -156,6 +156,9 @@ proc compileModule*(fileIdx: int32, flags: TSymFlags): PSym = #var rd = handleSymbolFile(result) var rd: PRodReader result.flags = result.flags + flags + if sfMainModule in result.flags: + gMainPackageId = result.owner.id + if gCmd in {cmdCompileToC, cmdCompileToCpp, cmdCheck, cmdIdeTools}: rd = handleSymbolFile(result) if result.id < 0: @@ -183,6 +186,9 @@ proc importModule*(s: PSym, fileIdx: int32): PSym {.procvar.} = if optCaasEnabled in gGlobalOptions: addDep(s, fileIdx) if sfSystemModule in result.flags: localError(result.info, errAttemptToRedefine, result.name.s) + # restore the notes for outer module: + gNotes = if s.owner.id == gMainPackageId: gMainPackageNotes + else: ForeignPackageNotes proc includeModule*(s: PSym, fileIdx: int32): PNode {.procvar.} = result = syntaxes.parseFile(fileIdx) diff --git a/compiler/msgs.nim b/compiler/msgs.nim index a556ad0c5..668d43bb3 100644 --- a/compiler/msgs.nim +++ b/compiler/msgs.nim @@ -500,12 +500,14 @@ type ESuggestDone* = object of Exception const + ForeignPackageNotes*: TNoteKinds = {hintProcessing, warnUnknownMagic, + hintQuitCalled} NotesVerbosity*: array[0..3, TNoteKinds] = [ {low(TNoteKind)..high(TNoteKind)} - {warnShadowIdent, warnUninit, warnProveField, warnProveIndex, warnGcUnsafe, hintSuccessX, hintPath, hintConf, - hintProcessing, + hintProcessing, hintPattern, hintDependency, hintExecuting, hintLinking, hintCodeBegin, hintCodeEnd, diff --git a/compiler/sem.nim b/compiler/sem.nim index 74fa09a57..a8ec2229f 100644 --- a/compiler/sem.nim +++ b/compiler/sem.nim @@ -413,6 +413,12 @@ proc myOpen(module: PSym): PPassContext = c.importTable.addSym magicsys.systemModule # import the "System" identifier importAllSymbols(c, magicsys.systemModule) c.topLevelScope = openScope(c) + # don't be verbose unless the module belongs to the main package: + if module.owner.id == gMainPackageId: + gNotes = gMainPackageNotes + else: + if gMainPackageNotes == {}: gMainPackageNotes = gNotes + gNotes = ForeignPackageNotes result = c proc myOpenCached(module: PSym, rd: PRodReader): PPassContext = -- cgit 1.4.1-2-gfad0