From 0718d6c2cddac89256e2fcde17407f1685f1a457 Mon Sep 17 00:00:00 2001 From: Miran Date: Wed, 3 Jul 2019 18:55:15 +0200 Subject: [PATCH] [bugfix] fix wrong nimpretty unidents, refs #11616 (#11645) --- compiler/layouter.nim | 2 +- nimpretty/tests/exhaustive.nim | 12 ++++++++++++ nimpretty/tests/expected/exhaustive.nim | 13 +++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/compiler/layouter.nim b/compiler/layouter.nim index e45e6400aa..b2764b3eb6 100644 --- a/compiler/layouter.nim +++ b/compiler/layouter.nim @@ -364,7 +364,7 @@ proc emitTok*(em: var Emitter; L: TLexer; tok: TToken) = em.indentLevel = tok.indent elif (em.lastTok in (splitters + oprSet) and tok.tokType notin closedPars): # aka: we are in an expression context: - let alignment = tok.indent - em.indentStack[^1] + let alignment = max(tok.indent - em.indentStack[^1], 0) em.indentLevel = alignment + em.indentStack.high * em.indWidth else: if tok.indent > em.indentStack[^1]: diff --git a/nimpretty/tests/exhaustive.nim b/nimpretty/tests/exhaustive.nim index 68d71e7a57..c0d4ac084e 100644 --- a/nimpretty/tests/exhaustive.nim +++ b/nimpretty/tests/exhaustive.nim @@ -676,3 +676,15 @@ block: ## single line comment would be ok. block: var x = 7 + + +proc newRecordGen(ctx: Context; typ: TypRef): PNode = + result = nkTypeDef.t( + newId(typ.optSym.name, true, pragmas = [id(if typ.isUnion: "cUnion" else: "cStruct")]), + empty(), + nkObjectTy.t( + empty(), + empty(), + nkRecList.t( + typ.recFields.map(newRecFieldGen)))) + diff --git a/nimpretty/tests/expected/exhaustive.nim b/nimpretty/tests/expected/exhaustive.nim index 4d1b933efd..4ed0566564 100644 --- a/nimpretty/tests/expected/exhaustive.nim +++ b/nimpretty/tests/expected/exhaustive.nim @@ -682,3 +682,16 @@ block: ## single line comment would be ok. block: var x = 7 + + +proc newRecordGen(ctx: Context; typ: TypRef): PNode = + result = nkTypeDef.t( + newId(typ.optSym.name, true, pragmas = [id( + if typ.isUnion: "cUnion" else: "cStruct")]), + empty(), + nkObjectTy.t( + empty(), + empty(), + nkRecList.t( + typ.recFields.map(newRecFieldGen)))) +