From 0f4dcaa4e88c2403a8dae7cf64cfc33c2b5f0a1b Mon Sep 17 00:00:00 2001 From: Grzegorz Kossakowski Date: Sun, 3 Mar 2013 22:46:42 -0800 Subject: [PATCH] Refine `source-dependencies/import` test. Clarify what `source-dependencies/import` really tests by renaming it to `source-dependencies/import-package` which better describes the scope of that test. Also, introduce analogous `source-dependencies/import-class` test which tests dependency tracking on imported classes. The reason why we should distinguish between imported packages and classes is that incremental compiler doesn't track packages as products of source files as it does for classes. Therefore, problem with imported classes is much more tractable than with imported packages. --- sbt/src/sbt-test/source-dependencies/import-class/A.scala | 3 +++ sbt/src/sbt-test/source-dependencies/import-class/B.scala | 1 + .../source-dependencies/import-class/changes/A.scala | 1 + sbt/src/sbt-test/source-dependencies/import-class/pending | 8 ++++++++ .../{import => import-package}/A.scala | 0 .../{import => import-package}/B.scala | 0 .../{import => import-package}/changes/A.scala | 0 .../{import => import-package}/pending | 0 8 files changed, 13 insertions(+) create mode 100644 sbt/src/sbt-test/source-dependencies/import-class/A.scala create mode 100644 sbt/src/sbt-test/source-dependencies/import-class/B.scala create mode 100644 sbt/src/sbt-test/source-dependencies/import-class/changes/A.scala create mode 100644 sbt/src/sbt-test/source-dependencies/import-class/pending rename sbt/src/sbt-test/source-dependencies/{import => import-package}/A.scala (100%) rename sbt/src/sbt-test/source-dependencies/{import => import-package}/B.scala (100%) rename sbt/src/sbt-test/source-dependencies/{import => import-package}/changes/A.scala (100%) rename sbt/src/sbt-test/source-dependencies/{import => import-package}/pending (100%) diff --git a/sbt/src/sbt-test/source-dependencies/import-class/A.scala b/sbt/src/sbt-test/source-dependencies/import-class/A.scala new file mode 100644 index 000000000..a93bbe535 --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/import-class/A.scala @@ -0,0 +1,3 @@ +package a + +class A diff --git a/sbt/src/sbt-test/source-dependencies/import-class/B.scala b/sbt/src/sbt-test/source-dependencies/import-class/B.scala new file mode 100644 index 000000000..0489f4a26 --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/import-class/B.scala @@ -0,0 +1 @@ +import a.A diff --git a/sbt/src/sbt-test/source-dependencies/import-class/changes/A.scala b/sbt/src/sbt-test/source-dependencies/import-class/changes/A.scala new file mode 100644 index 000000000..2a93cdef5 --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/import-class/changes/A.scala @@ -0,0 +1 @@ +package a diff --git a/sbt/src/sbt-test/source-dependencies/import-class/pending b/sbt/src/sbt-test/source-dependencies/import-class/pending new file mode 100644 index 000000000..7679ba52c --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/import-class/pending @@ -0,0 +1,8 @@ +> compile + +# remove class a.A +$ copy-file changes/A.scala A.scala + +# 'import a.A' should now fail in B.scala +# succeeds because scalac doesn't track this dependency +-> compile diff --git a/sbt/src/sbt-test/source-dependencies/import/A.scala b/sbt/src/sbt-test/source-dependencies/import-package/A.scala similarity index 100% rename from sbt/src/sbt-test/source-dependencies/import/A.scala rename to sbt/src/sbt-test/source-dependencies/import-package/A.scala diff --git a/sbt/src/sbt-test/source-dependencies/import/B.scala b/sbt/src/sbt-test/source-dependencies/import-package/B.scala similarity index 100% rename from sbt/src/sbt-test/source-dependencies/import/B.scala rename to sbt/src/sbt-test/source-dependencies/import-package/B.scala diff --git a/sbt/src/sbt-test/source-dependencies/import/changes/A.scala b/sbt/src/sbt-test/source-dependencies/import-package/changes/A.scala similarity index 100% rename from sbt/src/sbt-test/source-dependencies/import/changes/A.scala rename to sbt/src/sbt-test/source-dependencies/import-package/changes/A.scala diff --git a/sbt/src/sbt-test/source-dependencies/import/pending b/sbt/src/sbt-test/source-dependencies/import-package/pending similarity index 100% rename from sbt/src/sbt-test/source-dependencies/import/pending rename to sbt/src/sbt-test/source-dependencies/import-package/pending