From 18a3e7995e7726439f7e69805f6cc66a84579848 Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Thu, 23 Jun 2011 20:37:56 -0400 Subject: [PATCH] add new ProjectReference called LocalRootProject for referencing the root project in the current build --- main/Project.scala | 7 ++++--- main/Reference.scala | 1 + main/Scope.scala | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/main/Project.scala b/main/Project.scala index 516faee0b..196810d24 100644 --- a/main/Project.scala +++ b/main/Project.scala @@ -176,14 +176,15 @@ object Project extends Init[Scope] with ProjectExtra def display(ref: BuildReference) = ref match { - case ThisBuild => "" + case ThisBuild => "{}" case BuildRef(uri) => "{" + uri + "}" } def display(ref: ProjectReference) = ref match { - case ThisProject => "()" - case LocalProject(id) => "()" + id + case ThisProject => "{}" + case LocalRootProject => "{}" + case LocalProject(id) => "{}" + id case RootProject(uri) => "{" + uri + " }" case ProjectRef(uri, id) => "{" + uri + "}" + id } diff --git a/main/Reference.scala b/main/Reference.scala index 09cd963c5..5089cd218 100644 --- a/main/Reference.scala +++ b/main/Reference.scala @@ -19,6 +19,7 @@ sealed trait ProjectReference extends Reference final case class ProjectRef(build: URI, project: String) extends ProjectReference with ResolvedReference final case class LocalProject(project: String) extends ProjectReference final case class RootProject(build: URI) extends ProjectReference +final case object LocalRootProject extends ProjectReference final case object ThisProject extends ProjectReference object ProjectRef diff --git a/main/Scope.scala b/main/Scope.scala index 4b2403b80..e2a54d149 100644 --- a/main/Scope.scala +++ b/main/Scope.scala @@ -58,6 +58,7 @@ object Scope ref match { case ThisProject => RootProject(current) + case LocalRootProject => RootProject(current) case LocalProject(id) => ProjectRef(current, id) case RootProject(uri) => RootProject(resolveBuild(current, uri)) case ProjectRef(uri, id) => ProjectRef(resolveBuild(current, uri), id) @@ -75,7 +76,7 @@ object Scope def resolveProjectRef(current: URI, rootProject: URI => String, ref: ProjectReference): ProjectRef = ref match { - case ThisProject => ProjectRef(current, rootProject(current)) + case ThisProject | LocalRootProject => ProjectRef(current, rootProject(current)) case LocalProject(id) => ProjectRef(current, id) case RootProject(uri) => val res = resolveBuild(current, uri); ProjectRef(res, rootProject(res)) case ProjectRef(uri, id) => ProjectRef(resolveBuild(current, uri), id)