From 2dd3cbdaebcbefd7a377fb1da027f7ff9f3f991e Mon Sep 17 00:00:00 2001 From: triton Date: Mon, 11 Mar 2013 03:09:00 +0000 Subject: [PATCH] Check for already visited declarations when checking duplicate names. --- src/Generator/Passes/DuplicatedNamesCheckerPass.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Generator/Passes/DuplicatedNamesCheckerPass.cs b/src/Generator/Passes/DuplicatedNamesCheckerPass.cs index 7479133b..6fb6729c 100644 --- a/src/Generator/Passes/DuplicatedNamesCheckerPass.cs +++ b/src/Generator/Passes/DuplicatedNamesCheckerPass.cs @@ -22,12 +22,25 @@ namespace Cxxi.Passes public override bool VisitDeclaration(Declaration decl) { + if (AlreadyVisited(decl)) + return true; + + Visited.Add(decl); + CheckDuplicate(decl); return base.VisitDeclaration(decl); } + public override bool VisitParameterDecl(Parameter parameter) + { + return true; + } + void CheckDuplicate(Declaration decl) { + if (string.IsNullOrWhiteSpace(decl.Name)) + return; + Declaration duplicate; // If the name is not yet on the map, then add it.