From 769f410767dbaefef24170c0e95326cb18f6e666 Mon Sep 17 00:00:00 2001 From: Karol Stasiak Date: Mon, 8 Jul 2019 19:10:21 +0200 Subject: [PATCH] Fix detection of local duplicate names --- src/main/scala/millfork/env/Environment.scala | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/scala/millfork/env/Environment.scala b/src/main/scala/millfork/env/Environment.scala index 4d174143..2f7d3bfd 100644 --- a/src/main/scala/millfork/env/Environment.scala +++ b/src/main/scala/millfork/env/Environment.scala @@ -511,8 +511,14 @@ class Environment(val parent: Option[Environment], val prefix: String, val cpuFa if (builtinsAdded && Environment.keywords(name)) { log.error(s"Cannot redefine a builtin keyword `$name`", position) false - } else if (things.contains(name) || parent.exists(_.things.contains(name))) { - log.error(s"`$name` is already defined", position) + } else if (things.contains(name) || parent.exists(_.things.contains(name)) || things.contains(name.stripPrefix(prefix))) { + if (!name.contains('.')){ + if (parent.isDefined) { + log.error(s"`${name.stripPrefix(prefix)}` is already defined in this function", position) + } else { + log.error(s"`$name` is already defined", position) + } + } false } else { true