From 6acdc1e85f04cc3a240ddb91983588897786d8ca Mon Sep 17 00:00:00 2001 From: Felix Mulder Date: Thu, 17 Nov 2016 11:51:08 +0100 Subject: Move bridge to correct location, fix unmanaged sources in build --- .../src/main/scala/xsbt/CompilerClassLoader.scala | 90 ---------- .../src/main/scala/xsbt/CompilerInterface.scala | 72 -------- .../src/main/scala/xsbt/ConsoleInterface.scala | 73 -------- .../src/main/scala/xsbt/DelegatingReporter.scala | 48 ------ sbt-bridge/bridge/src/main/scala/xsbt/Log.scala | 10 -- .../bridge/src/main/scala/xsbt/Message.scala | 8 - .../src/main/scala/xsbt/ScaladocInterface.scala | 72 -------- .../sbt-test/compilerReporter/simple/Source.scala | 10 -- .../src/sbt-test/compilerReporter/simple/build.sbt | 1 - .../simple/project/DottyInjectedPlugin.scala | 17 -- .../compilerReporter/simple/project/Reporter.scala | 44 ----- .../src/sbt-test/compilerReporter/simple/test | 1 - .../source-dependencies/abstract-override/A.scala | 3 - .../source-dependencies/abstract-override/B.scala | 3 - .../source-dependencies/abstract-override/C.scala | 3 - .../source-dependencies/abstract-override/D.scala | 1 - .../abstract-override/changes/C2.scala | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/abstract-override/test | 3 - .../abstract-type-override/build.sbt | 7 - .../abstract-type-override/changes/Bar1.scala | 4 - .../project/DottyInjectedPlugin.scala | 17 -- .../src/main/scala/Bar.scala | 3 - .../src/main/scala/Foo.scala | 5 - .../src/main/scala/Impl.scala | 3 - .../abstract-type-override/test | 14 -- .../source-dependencies/abstract-type/A.scala | 3 - .../source-dependencies/abstract-type/B.scala | 3 - .../abstract-type/changes/A.scala | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/abstract-type/test | 7 - .../source-dependencies/added/changes/A1.scala | 6 - .../source-dependencies/added/changes/A2.scala | 6 - .../source-dependencies/added/changes/A3.scala | 6 - .../source-dependencies/added/changes/B1.scala | 6 - .../source-dependencies/added/changes/B2.scala | 6 - .../added/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/added/test | 28 --- .../source-dependencies/as-seen-from-a/A.scala | 6 - .../source-dependencies/as-seen-from-a/B.scala | 3 - .../source-dependencies/as-seen-from-a/C.scala | 1 - .../source-dependencies/as-seen-from-a/D.scala | 3 - .../as-seen-from-a/changes/B2.scala | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/as-seen-from-a/test | 3 - .../source-dependencies/as-seen-from-b/A.scala | 7 - .../source-dependencies/as-seen-from-b/B.scala | 3 - .../source-dependencies/as-seen-from-b/C.scala | 1 - .../source-dependencies/as-seen-from-b/D.scala | 3 - .../as-seen-from-b/changes/B2.scala | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/as-seen-from-b/test | 3 - .../backtick-quoted-names/A.scala | 3 - .../backtick-quoted-names/B.scala | 3 - .../backtick-quoted-names/build.sbt | 1 - .../backtick-quoted-names/changes/A.scala | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/backtick-quoted-names/test | 7 - .../source-dependencies/binary/changes/Break.scala | 1 - .../source-dependencies/binary/dep/A.scala | 3 - .../binary/project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/binary/project/P.scala | 10 -- .../src/sbt-test/source-dependencies/binary/test | 6 - .../source-dependencies/binary/use/B.scala | 3 - .../sbt-test/source-dependencies/by-name/A.scala | 4 - .../sbt-test/source-dependencies/by-name/B.scala | 4 - .../source-dependencies/by-name/changes/A.scala | 4 - .../by-name/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/by-name/test | 7 - .../sbt-test/source-dependencies/canon/Use.scala | 3 - .../source-dependencies/canon/actual/A.java | 4 - .../source-dependencies/canon/actual/a.jar | Bin 634 -> 0 bytes .../sbt-test/source-dependencies/canon/build.sbt | 10 -- .../sbt-test/source-dependencies/canon/lib/a.jar | 1 - .../canon/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/canon/test | 10 -- .../source-dependencies/compactify/build.sbt | 9 - .../compactify/project/DottyInjectedPlugin.scala | 17 -- .../compactify/src/main/scala/For.scala | 44 ----- .../compactify/src/main/scala/Nested.scala | 41 ----- .../sbt-test/source-dependencies/compactify/test | 8 - .../source-dependencies/constants/changes/A1.scala | 1 - .../source-dependencies/constants/changes/A2.scala | 1 - .../source-dependencies/constants/changes/B.scala | 4 - .../constants/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/constants/test | 12 -- .../source-dependencies/default-params/A.scala | 5 - .../source-dependencies/default-params/B.scala | 4 - .../default-params/changes/A.scala | 5 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/default-params/test | 9 - .../source-dependencies/dup-class/changes/A.scala | 3 - .../source-dependencies/dup-class/changes/A2.scala | 3 - .../source-dependencies/dup-class/changes/B.scala | 3 - .../dup-class/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/dup-class/test | 6 - .../source-dependencies/empty-a/changes/A.scala | 6 - .../source-dependencies/empty-a/changes/A2.scala | 6 - .../source-dependencies/empty-a/changes/B.scala | 6 - .../empty-a/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/empty-a/test | 19 -- .../empty-package/changes/Define1.scala | 3 - .../empty-package/changes/Define2.scala | 3 - .../empty-package/changes/Use.scala | 7 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/empty-package/test | 12 -- .../sbt-test/source-dependencies/erasure/A.scala | 3 - .../sbt-test/source-dependencies/erasure/B.scala | 3 - .../source-dependencies/erasure/changes/A.scala | 3 - .../erasure/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/erasure/test | 4 - .../export-jars/changes/A1.scala | 1 - .../export-jars/changes/A2.scala | 1 - .../export-jars/changes/A3.scala | 1 - .../export-jars/changes/B.scala | 4 - .../export-jars/changes/build2.sbt | 1 - .../export-jars/project/Build.scala | 7 - .../export-jars/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/export-jars/test | 27 --- .../src/sbt-test/source-dependencies/ext/A.scala | 5 - .../src/sbt-test/source-dependencies/ext/build.sbt | 9 - .../ext/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/ext/test | 7 - .../source-dependencies/false-error/A.scala | 4 - .../source-dependencies/false-error/B.scala | 3 - .../false-error/changes/A.scala | 4 - .../source-dependencies/false-error/pending | 5 - .../false-error/project/DottyInjectedPlugin.scala | 17 -- .../fbounded-existentials/fbounds.scala | 10 -- .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/fbounded-existentials/test | 1 - .../source-dependencies/implicit-params/A.scala | 6 - .../source-dependencies/implicit-params/B.scala | 4 - .../implicit-params/changes/A.scala | 6 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/implicit-params/test | 8 - .../changes/A1.scala | 2 - .../changes/A2.scala | 4 - .../changes/B.scala | 2 - .../changes/C.scala | 3 - .../changes/M.scala | 4 - .../project/DottyInjectedPlugin.scala | 17 -- .../implicit-search-companion-scope/test | 12 -- .../implicit-search/changes/A1.scala | 1 - .../implicit-search/changes/A2.scala | 3 - .../implicit-search/changes/B.scala | 4 - .../implicit-search/changes/C.scala | 6 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/implicit-search/test | 9 - .../sbt-test/source-dependencies/implicit/A.scala | 4 - .../sbt-test/source-dependencies/implicit/B.scala | 4 - .../source-dependencies/implicit/changes/A.scala | 4 - .../implicit/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/implicit/test | 7 - .../source-dependencies/import-class/A.scala | 3 - .../source-dependencies/import-class/B.scala | 1 - .../import-class/changes/A.scala | 1 - .../import-class/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/import-class/test | 8 - .../source-dependencies/import-package/A.scala | 1 - .../source-dependencies/import-package/B.scala | 1 - .../import-package/changes/A.scala | 1 - .../source-dependencies/import-package/pending | 8 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/inherited-deps-java/A.java | 1 - .../source-dependencies/inherited-deps-java/B.java | 11 -- .../source-dependencies/inherited-deps-java/C.java | 1 - .../source-dependencies/inherited-deps-java/D.java | 1 - .../source-dependencies/inherited-deps-java/E.java | 1 - .../source-dependencies/inherited-deps-java/F.java | 3 - .../source-dependencies/inherited-deps-java/G.java | 3 - .../source-dependencies/inherited-deps-java/J.java | 1 - .../inherited-deps-java/build.sbt | 30 ---- .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/inherited-deps-java/test | 1 - .../inherited_type_params/A.scala | 7 - .../inherited_type_params/build.sbt | 7 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/inherited_type_params/test | 1 - .../sbt-test/source-dependencies/inline/A.scala | 3 - .../sbt-test/source-dependencies/inline/C.scala | 5 - .../source-dependencies/inline/changes/B1.scala | 4 - .../source-dependencies/inline/changes/B2.scala | 4 - .../source-dependencies/inline/changes/B3.scala | 4 - .../inline/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/inline/test | 14 -- .../source-dependencies/intermediate-error/A.scala | 6 - .../source-dependencies/intermediate-error/B.scala | 4 - .../intermediate-error/changes/A2.scala | 6 - .../intermediate-error/changes/A3.scala | 6 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/intermediate-error/test | 7 - .../java-analysis-serialization-error/Outer.java | 1 - .../java-analysis-serialization-error/build.sbt | 1 - .../project/DottyInjectedPlugin.scala | 17 -- .../java-analysis-serialization-error/test | 1 - .../source-dependencies/java-basic/changes/A.java | 6 - .../source-dependencies/java-basic/changes/A2.java | 6 - .../source-dependencies/java-basic/changes/B1.java | 6 - .../source-dependencies/java-basic/changes/B2.java | 6 - .../source-dependencies/java-basic/changes/B3.java | 6 - .../java-basic/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/java-basic/test | 45 ----- .../java-generic-workaround/A.java | 7 - .../DefaultTreeTableSorter.java | 15 -- .../java-generic-workaround/TreeColumnModel.java | 1 - .../java-generic-workaround/TreeTableSorter.java | 5 - .../project/DottyInjectedPlugin.scala | 17 -- .../java-generic-workaround/test | 3 - .../source-dependencies/java-mixed/JJ.java | 5 - .../source-dependencies/java-mixed/build.sbt | 1 - .../java-mixed/changes/S1.scala | 3 - .../java-mixed/changes/S2.scala | 3 - .../java-mixed/changes/build.sbt | 1 - .../java-mixed/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/java-mixed/test | 13 -- .../java-static/changes/J1.java | 4 - .../java-static/changes/J2.java | 4 - .../java-static/changes/S.scala | 4 - .../java-static/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/java-static/test | 24 --- .../sbt-test/source-dependencies/lazy-val/A.scala | 4 - .../sbt-test/source-dependencies/lazy-val/B.scala | 4 - .../source-dependencies/lazy-val/changes/A.scala | 4 - .../lazy-val/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/lazy-val/test | 6 - .../source-dependencies/less-inter-inv-java/A.java | 3 - .../source-dependencies/less-inter-inv-java/B.java | 1 - .../source-dependencies/less-inter-inv-java/C.java | 1 - .../source-dependencies/less-inter-inv-java/D.java | 4 - .../source-dependencies/less-inter-inv-java/E.java | 5 - .../less-inter-inv-java/build.sbt | 10 -- .../less-inter-inv-java/changes/A2.java | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/less-inter-inv-java/test | 9 - .../source-dependencies/less-inter-inv/A.scala | 3 - .../source-dependencies/less-inter-inv/B.scala | 1 - .../source-dependencies/less-inter-inv/C.scala | 1 - .../source-dependencies/less-inter-inv/D.scala | 4 - .../source-dependencies/less-inter-inv/E.scala | 3 - .../source-dependencies/less-inter-inv/build.sbt | 10 -- .../less-inter-inv/changes/A2.scala | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/less-inter-inv/test | 9 - .../source-dependencies/linearization/A.scala | 3 - .../source-dependencies/linearization/B.scala | 3 - .../source-dependencies/linearization/C.scala | 3 - .../source-dependencies/linearization/D.scala | 2 - .../source-dependencies/linearization/E.scala | 2 - .../source-dependencies/linearization/F.scala | 3 - .../linearization/changes/D.scala | 1 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/linearization/test | 13 -- .../src/sbt-test/source-dependencies/named/A.scala | 3 - .../src/sbt-test/source-dependencies/named/B.scala | 7 - .../source-dependencies/named/changes/A.scala | 3 - .../named/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/named/test | 16 -- .../nested-case-class/changes/A0.scala | 11 -- .../nested-case-class/changes/A1.scala | 13 -- .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/nested-case-class/test | 6 - .../new-cyclic/changes/A2.scala | 1 - .../source-dependencies/new-cyclic/pending | 4 - .../new-cyclic/project/DottyInjectedPlugin.scala | 17 -- .../new-cyclic/src/main/scala/A.scala | 1 - .../new-cyclic/src/main/scala/B.scala | 1 - .../new-pkg-dep/changes/A1.java | 2 - .../new-pkg-dep/changes/B0.scala | 2 - .../new-pkg-dep/changes/B1.scala | 2 - .../new-pkg-dep/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/new-pkg-dep/test | 8 - .../sbt-test/source-dependencies/override/A.scala | 3 - .../sbt-test/source-dependencies/override/B.scala | 3 - .../sbt-test/source-dependencies/override/C.scala | 3 - .../sbt-test/source-dependencies/override/D.scala | 1 - .../source-dependencies/override/changes/B2.scala | 3 - .../override/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/override/test | 3 - .../source-dependencies/parent-change/W.scala | 5 - .../source-dependencies/parent-change/Y.scala | 5 - .../source-dependencies/parent-change/Z.scala | 1 - .../parent-change/changes/W.scala | 5 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/parent-change/test | 7 - .../parent-member-change/A.scala | 3 - .../parent-member-change/B.scala | 1 - .../parent-member-change/C.scala | 3 - .../parent-member-change/changes/A.scala | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/parent-member-change/test | 7 - .../source-dependencies/pkg-self/changes/A1.scala | 8 - .../source-dependencies/pkg-self/changes/A2.scala | 8 - .../source-dependencies/pkg-self/changes/B.scala | 5 - .../pkg-self/changes/package.scala | 3 - .../pkg-self/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/pkg-self/test | 14 -- .../source-dependencies/qualified-access/A.scala | 10 -- .../source-dependencies/qualified-access/B.scala | 6 - .../qualified-access/changes/A.scala | 6 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/qualified-access/test | 7 - .../relative-source-error/changes/absolute.sbt | 1 - .../relative-source-error/changes/relative.sbt | 1 - .../project/DottyInjectedPlugin.scala | 17 -- .../relative-source-error/src/A.scala | 1 - .../source-dependencies/relative-source-error/test | 7 - .../remove-test-a/changes/1.scala | 6 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/remove-test-a/test | 7 - .../remove-test-b/changes/A2.scala | 6 - .../remove-test-b/changes/B3.scala | 6 - .../remove-test-b/changes/B4.scala | 5 - .../remove-test-b/changes/B5.scala | 5 - .../project/DottyInjectedPlugin.scala | 17 -- .../remove-test-b/src/main/scala/A.scala | 5 - .../remove-test-b/src/main/scala/B.scala | 5 - .../source-dependencies/remove-test-b/test | 25 --- .../repeated-parameters/A.scala | 4 - .../repeated-parameters/B.scala | 4 - .../repeated-parameters/changes/A.scala | 4 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/repeated-parameters/test | 7 - .../replace-test-a/changes/first.scala | 4 - .../replace-test-a/changes/second.scala | 4 - .../replace-test-a/project/Build.scala | 19 -- .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/replace-test-a/test | 9 - .../source-dependencies/resident-java/build.sbt | 1 - .../resident-java/changes/A1.java | 5 - .../resident-java/changes/A2.java | 5 - .../resident-java/changes/B0.scala | 1 - .../resident-java/changes/B1.scala | 3 - .../resident-java/changes/B2.scala | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/resident-java/test | 10 -- .../resident-package-object/changes/A.scala | 5 - .../resident-package-object/changes/package.scala | 3 - .../resident-package-object/changes/package2.scala | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../resident-package-object/test | 11 -- .../source-dependencies/restore-classes/build.sbt | 12 -- .../restore-classes/changes/A1.scala | 3 - .../restore-classes/changes/A2.scala | 5 - .../restore-classes/changes/B.scala | 4 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/restore-classes/test | 23 --- .../same-file-used-names/A.scala | 8 - .../same-file-used-names/B.scala | 3 - .../same-file-used-names/build.sbt | 1 - .../same-file-used-names/changes/B.scala | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/same-file-used-names/test | 7 - .../sbt-test/source-dependencies/sealed/A.scala | 3 - .../sbt-test/source-dependencies/sealed/D.scala | 8 - .../source-dependencies/sealed/changes/A.scala | 4 - .../sbt-test/source-dependencies/sealed/pending | 11 -- .../sealed/project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/signature-change/B.scala | 3 - .../signature-change/changes/A0.scala | 3 - .../signature-change/changes/A1.scala | 3 - .../signature-change/changes/A2.scala | 3 - .../signature-change/changes/A3.scala | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/signature-change/test | 20 --- .../source-dependencies/specialized/A.scala | 4 - .../source-dependencies/specialized/B.scala | 7 - .../specialized/changes/A.scala | 4 - .../specialized/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/specialized/test | 15 -- .../source-dependencies/stability-change/A.scala | 4 - .../source-dependencies/stability-change/B.scala | 5 - .../source-dependencies/stability-change/C.scala | 4 - .../stability-change/changes/A.scala | 4 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/stability-change/test | 6 - .../synthetic-companion/A.scala | 1 - .../synthetic-companion/B.scala | 3 - .../synthetic-companion/changes/A2.scala | 2 - .../synthetic-companion/dbg.sbt | 2 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/synthetic-companion/test | 4 - .../trait-member-modified/build.sbt | 27 --- .../trait-member-modified/changes/A1.scala | 3 - .../project/DottyInjectedPlugin.scala | 17 -- .../trait-member-modified/src/main/scala/A.scala | 1 - .../trait-member-modified/src/main/scala/B.scala | 1 - .../source-dependencies/trait-member-modified/test | 9 - .../trait-private-object/A.scala | 3 - .../trait-private-object/B.scala | 5 - .../trait-private-object/changes/A.scala | 4 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/trait-private-object/test | 5 - .../source-dependencies/trait-private-var/B.scala | 3 - .../trait-private-var/changes/A0.scala | 3 - .../trait-private-var/changes/A1.scala | 5 - .../trait-private-var/changes/A2.scala | 5 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/trait-private-var/test | 28 --- .../source-dependencies/trait-super/A.scala | 6 - .../source-dependencies/trait-super/B.scala | 6 - .../source-dependencies/trait-super/Main.scala | 10 -- .../trait-super/changes/B2.scala | 6 - .../trait-super/changes/B3.scala | 6 - .../trait-super/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/trait-super/test | 16 -- .../transitive-a/changes/A2.scala | 4 - .../transitive-a/project/DottyInjectedPlugin.scala | 17 -- .../transitive-a/src/main/scala/A.scala | 4 - .../transitive-a/src/main/scala/B.scala | 4 - .../transitive-a/src/main/scala/C.scala | 4 - .../sbt-test/source-dependencies/transitive-a/test | 4 - .../transitive-b/changes/A2.scala | 4 - .../transitive-b/project/DottyInjectedPlugin.scala | 17 -- .../transitive-b/src/main/scala/A.scala | 4 - .../transitive-b/src/main/scala/B.scala | 1 - .../transitive-b/src/main/scala/C.scala | 4 - .../sbt-test/source-dependencies/transitive-b/test | 4 - .../transitive-inherit-java/A.java | 3 - .../transitive-inherit-java/B.java | 1 - .../transitive-inherit-java/C.java | 4 - .../transitive-inherit-java/changes/A2.java | 1 - .../project/DottyInjectedPlugin.scala | 17 -- .../transitive-inherit-java/test | 4 - .../source-dependencies/transitive-inherit/A.scala | 1 - .../source-dependencies/transitive-inherit/B.scala | 1 - .../source-dependencies/transitive-inherit/C.scala | 4 - .../transitive-inherit/changes/A2.scala | 4 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/transitive-inherit/test | 4 - .../transitive-memberRef/build.sbt | 40 ----- .../transitive-memberRef/changes/A1.scala | 5 - .../project/DottyInjectedPlugin.scala | 17 -- .../transitive-memberRef/src/main/scala/A.scala | 3 - .../transitive-memberRef/src/main/scala/B.scala | 3 - .../transitive-memberRef/src/main/scala/C.scala | 3 - .../transitive-memberRef/src/main/scala/D.scala | 3 - .../transitive-memberRef/src/main/scala/X.scala | 5 - .../transitive-memberRef/src/main/scala/Y.scala | 5 - .../source-dependencies/transitive-memberRef/test | 11 -- .../source-dependencies/type-alias/A.scala | 4 - .../source-dependencies/type-alias/B.scala | 3 - .../source-dependencies/type-alias/build.sbt | 3 - .../source-dependencies/type-alias/changes/A.scala | 3 - .../type-alias/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/type-alias/test | 7 - .../source-dependencies/type-parameter/A.scala | 1 - .../source-dependencies/type-parameter/B.scala | 1 - .../source-dependencies/type-parameter/C.scala | 3 - .../source-dependencies/type-parameter/D.scala | 3 - .../type-parameter/changes/A.scala | 1 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/type-parameter/test | 7 - .../source-dependencies/typeref-only/A.scala | 5 - .../source-dependencies/typeref-only/B.scala | 1 - .../source-dependencies/typeref-only/build.sbt | 5 - .../typeref-only/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/typeref-only/test | 7 - .../source-dependencies/typeref-return/A.scala | 4 - .../source-dependencies/typeref-return/B.scala | 3 - .../typeref-return/changes/A.scala | 4 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/typeref-return/test | 5 - .../types-in-used-names-a/A.scala | 1 - .../types-in-used-names-a/B.scala | 1 - .../types-in-used-names-a/C.scala | 3 - .../types-in-used-names-a/D.scala | 3 - .../types-in-used-names-a/changes/B2.scala | 1 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/types-in-used-names-a/test | 4 - .../types-in-used-names-b/A.scala | 5 - .../types-in-used-names-b/B.scala | 3 - .../types-in-used-names-b/changes/A2.scala | 5 - .../project/DottyInjectedPlugin.scala | 17 -- .../source-dependencies/types-in-used-names-b/test | 4 - .../value-class-underlying/A.scala | 1 - .../value-class-underlying/B.scala | 3 - .../value-class-underlying/C.scala | 5 - .../value-class-underlying/build.sbt | 1 - .../value-class-underlying/changes/A2.scala | 1 - .../value-class-underlying/test | 3 - .../source-dependencies/value-class/build.sbt | 1 - .../value-class/changes/A0.scala | 1 - .../value-class/changes/A1.scala | 1 - .../value-class/changes/B0.scala | 3 - .../value-class/changes/B1.scala | 3 - .../value-class/changes/B2.scala | 3 - .../value-class/changes/C0.scala | 3 - .../value-class/changes/C1.scala | 3 - .../value-class/changes/C2.scala | 3 - .../value-class/project/DottyInjectedPlugin.scala | 17 -- .../sbt-test/source-dependencies/value-class/test | 50 ------ .../src/sbt-test/source-dependencies/var/A.scala | 5 - .../src/sbt-test/source-dependencies/var/B.scala | 4 - .../source-dependencies/var/changes/A.scala | 4 - .../var/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/var/test | 6 - .../sbt-test/source-dependencies/variance/A.scala | 2 - .../sbt-test/source-dependencies/variance/C.scala | 3 - .../source-dependencies/variance/changes/A.scala | 2 - .../variance/project/DottyInjectedPlugin.scala | 17 -- .../src/sbt-test/source-dependencies/variance/test | 6 - .../test/scala/xsbt/DependencySpecification.scala | 151 ---------------- .../test/scala/xsbt/ExtractAPISpecification.scala | 45 ----- .../scala/xsbt/ExtractUsedNamesSpecification.scala | 119 ------------- .../scala/xsbt/ScalaCompilerForUnitTesting.scala | 191 --------------------- .../bridge/src/test/scala/xsbti/TestCallback.scala | 35 ---- .../src/main/scala/xsbt/CompilerClassLoader.scala | 90 ++++++++++ .../src/main/scala/xsbt/CompilerInterface.scala | 72 ++++++++ .../src/main/scala/xsbt/ConsoleInterface.scala | 73 ++++++++ .../src/main/scala/xsbt/DelegatingReporter.scala | 48 ++++++ sbt-bridge/src/main/scala/xsbt/Log.scala | 10 ++ sbt-bridge/src/main/scala/xsbt/Message.scala | 8 + .../src/main/scala/xsbt/ScaladocInterface.scala | 72 ++++++++ .../sbt-test/compilerReporter/simple/Source.scala | 10 ++ .../src/sbt-test/compilerReporter/simple/build.sbt | 1 + .../simple/project/DottyInjectedPlugin.scala | 17 ++ .../compilerReporter/simple/project/Reporter.scala | 44 +++++ .../src/sbt-test/compilerReporter/simple/test | 1 + .../source-dependencies/abstract-override/A.scala | 3 + .../source-dependencies/abstract-override/B.scala | 3 + .../source-dependencies/abstract-override/C.scala | 3 + .../source-dependencies/abstract-override/D.scala | 1 + .../abstract-override/changes/C2.scala | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/abstract-override/test | 3 + .../abstract-type-override/build.sbt | 7 + .../abstract-type-override/changes/Bar1.scala | 4 + .../project/DottyInjectedPlugin.scala | 17 ++ .../src/main/scala/Bar.scala | 3 + .../src/main/scala/Foo.scala | 5 + .../src/main/scala/Impl.scala | 3 + .../abstract-type-override/test | 14 ++ .../source-dependencies/abstract-type/A.scala | 3 + .../source-dependencies/abstract-type/B.scala | 3 + .../abstract-type/changes/A.scala | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/abstract-type/test | 7 + .../source-dependencies/added/changes/A1.scala | 6 + .../source-dependencies/added/changes/A2.scala | 6 + .../source-dependencies/added/changes/A3.scala | 6 + .../source-dependencies/added/changes/B1.scala | 6 + .../source-dependencies/added/changes/B2.scala | 6 + .../added/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/added/test | 28 +++ .../source-dependencies/as-seen-from-a/A.scala | 6 + .../source-dependencies/as-seen-from-a/B.scala | 3 + .../source-dependencies/as-seen-from-a/C.scala | 1 + .../source-dependencies/as-seen-from-a/D.scala | 3 + .../as-seen-from-a/changes/B2.scala | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/as-seen-from-a/test | 3 + .../source-dependencies/as-seen-from-b/A.scala | 7 + .../source-dependencies/as-seen-from-b/B.scala | 3 + .../source-dependencies/as-seen-from-b/C.scala | 1 + .../source-dependencies/as-seen-from-b/D.scala | 3 + .../as-seen-from-b/changes/B2.scala | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/as-seen-from-b/test | 3 + .../backtick-quoted-names/A.scala | 3 + .../backtick-quoted-names/B.scala | 3 + .../backtick-quoted-names/build.sbt | 1 + .../backtick-quoted-names/changes/A.scala | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/backtick-quoted-names/test | 7 + .../source-dependencies/binary/changes/Break.scala | 1 + .../source-dependencies/binary/dep/A.scala | 3 + .../binary/project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/binary/project/P.scala | 10 ++ .../src/sbt-test/source-dependencies/binary/test | 6 + .../source-dependencies/binary/use/B.scala | 3 + .../sbt-test/source-dependencies/by-name/A.scala | 4 + .../sbt-test/source-dependencies/by-name/B.scala | 4 + .../source-dependencies/by-name/changes/A.scala | 4 + .../by-name/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/by-name/test | 7 + .../sbt-test/source-dependencies/canon/Use.scala | 3 + .../source-dependencies/canon/actual/A.java | 4 + .../source-dependencies/canon/actual/a.jar | Bin 0 -> 634 bytes .../sbt-test/source-dependencies/canon/build.sbt | 10 ++ .../sbt-test/source-dependencies/canon/lib/a.jar | 1 + .../canon/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/canon/test | 10 ++ .../source-dependencies/compactify/build.sbt | 9 + .../compactify/project/DottyInjectedPlugin.scala | 17 ++ .../compactify/src/main/scala/For.scala | 44 +++++ .../compactify/src/main/scala/Nested.scala | 41 +++++ .../sbt-test/source-dependencies/compactify/test | 8 + .../source-dependencies/constants/changes/A1.scala | 1 + .../source-dependencies/constants/changes/A2.scala | 1 + .../source-dependencies/constants/changes/B.scala | 4 + .../constants/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/constants/test | 12 ++ .../source-dependencies/default-params/A.scala | 5 + .../source-dependencies/default-params/B.scala | 4 + .../default-params/changes/A.scala | 5 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/default-params/test | 9 + .../source-dependencies/dup-class/changes/A.scala | 3 + .../source-dependencies/dup-class/changes/A2.scala | 3 + .../source-dependencies/dup-class/changes/B.scala | 3 + .../dup-class/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/dup-class/test | 6 + .../source-dependencies/empty-a/changes/A.scala | 6 + .../source-dependencies/empty-a/changes/A2.scala | 6 + .../source-dependencies/empty-a/changes/B.scala | 6 + .../empty-a/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/empty-a/test | 19 ++ .../empty-package/changes/Define1.scala | 3 + .../empty-package/changes/Define2.scala | 3 + .../empty-package/changes/Use.scala | 7 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/empty-package/test | 12 ++ .../sbt-test/source-dependencies/erasure/A.scala | 3 + .../sbt-test/source-dependencies/erasure/B.scala | 3 + .../source-dependencies/erasure/changes/A.scala | 3 + .../erasure/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/erasure/test | 4 + .../export-jars/changes/A1.scala | 1 + .../export-jars/changes/A2.scala | 1 + .../export-jars/changes/A3.scala | 1 + .../export-jars/changes/B.scala | 4 + .../export-jars/changes/build2.sbt | 1 + .../export-jars/project/Build.scala | 7 + .../export-jars/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/export-jars/test | 27 +++ .../src/sbt-test/source-dependencies/ext/A.scala | 5 + .../src/sbt-test/source-dependencies/ext/build.sbt | 9 + .../ext/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/ext/test | 7 + .../source-dependencies/false-error/A.scala | 4 + .../source-dependencies/false-error/B.scala | 3 + .../false-error/changes/A.scala | 4 + .../source-dependencies/false-error/pending | 5 + .../false-error/project/DottyInjectedPlugin.scala | 17 ++ .../fbounded-existentials/fbounds.scala | 10 ++ .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/fbounded-existentials/test | 1 + .../source-dependencies/implicit-params/A.scala | 6 + .../source-dependencies/implicit-params/B.scala | 4 + .../implicit-params/changes/A.scala | 6 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/implicit-params/test | 8 + .../changes/A1.scala | 2 + .../changes/A2.scala | 4 + .../changes/B.scala | 2 + .../changes/C.scala | 3 + .../changes/M.scala | 4 + .../project/DottyInjectedPlugin.scala | 17 ++ .../implicit-search-companion-scope/test | 12 ++ .../implicit-search/changes/A1.scala | 1 + .../implicit-search/changes/A2.scala | 3 + .../implicit-search/changes/B.scala | 4 + .../implicit-search/changes/C.scala | 6 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/implicit-search/test | 9 + .../sbt-test/source-dependencies/implicit/A.scala | 4 + .../sbt-test/source-dependencies/implicit/B.scala | 4 + .../source-dependencies/implicit/changes/A.scala | 4 + .../implicit/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/implicit/test | 7 + .../source-dependencies/import-class/A.scala | 3 + .../source-dependencies/import-class/B.scala | 1 + .../import-class/changes/A.scala | 1 + .../import-class/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/import-class/test | 8 + .../source-dependencies/import-package/A.scala | 1 + .../source-dependencies/import-package/B.scala | 1 + .../import-package/changes/A.scala | 1 + .../source-dependencies/import-package/pending | 8 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/inherited-deps-java/A.java | 1 + .../source-dependencies/inherited-deps-java/B.java | 11 ++ .../source-dependencies/inherited-deps-java/C.java | 1 + .../source-dependencies/inherited-deps-java/D.java | 1 + .../source-dependencies/inherited-deps-java/E.java | 1 + .../source-dependencies/inherited-deps-java/F.java | 3 + .../source-dependencies/inherited-deps-java/G.java | 3 + .../source-dependencies/inherited-deps-java/J.java | 1 + .../inherited-deps-java/build.sbt | 30 ++++ .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/inherited-deps-java/test | 1 + .../inherited_type_params/A.scala | 7 + .../inherited_type_params/build.sbt | 7 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/inherited_type_params/test | 1 + .../sbt-test/source-dependencies/inline/A.scala | 3 + .../sbt-test/source-dependencies/inline/C.scala | 5 + .../source-dependencies/inline/changes/B1.scala | 4 + .../source-dependencies/inline/changes/B2.scala | 4 + .../source-dependencies/inline/changes/B3.scala | 4 + .../inline/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/inline/test | 14 ++ .../source-dependencies/intermediate-error/A.scala | 6 + .../source-dependencies/intermediate-error/B.scala | 4 + .../intermediate-error/changes/A2.scala | 6 + .../intermediate-error/changes/A3.scala | 6 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/intermediate-error/test | 7 + .../java-analysis-serialization-error/Outer.java | 1 + .../java-analysis-serialization-error/build.sbt | 1 + .../project/DottyInjectedPlugin.scala | 17 ++ .../java-analysis-serialization-error/test | 1 + .../source-dependencies/java-basic/changes/A.java | 6 + .../source-dependencies/java-basic/changes/A2.java | 6 + .../source-dependencies/java-basic/changes/B1.java | 6 + .../source-dependencies/java-basic/changes/B2.java | 6 + .../source-dependencies/java-basic/changes/B3.java | 6 + .../java-basic/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/java-basic/test | 45 +++++ .../java-generic-workaround/A.java | 7 + .../DefaultTreeTableSorter.java | 15 ++ .../java-generic-workaround/TreeColumnModel.java | 1 + .../java-generic-workaround/TreeTableSorter.java | 5 + .../project/DottyInjectedPlugin.scala | 17 ++ .../java-generic-workaround/test | 3 + .../source-dependencies/java-mixed/JJ.java | 5 + .../source-dependencies/java-mixed/build.sbt | 1 + .../java-mixed/changes/S1.scala | 3 + .../java-mixed/changes/S2.scala | 3 + .../java-mixed/changes/build.sbt | 1 + .../java-mixed/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/java-mixed/test | 13 ++ .../java-static/changes/J1.java | 4 + .../java-static/changes/J2.java | 4 + .../java-static/changes/S.scala | 4 + .../java-static/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/java-static/test | 24 +++ .../sbt-test/source-dependencies/lazy-val/A.scala | 4 + .../sbt-test/source-dependencies/lazy-val/B.scala | 4 + .../source-dependencies/lazy-val/changes/A.scala | 4 + .../lazy-val/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/lazy-val/test | 6 + .../source-dependencies/less-inter-inv-java/A.java | 3 + .../source-dependencies/less-inter-inv-java/B.java | 1 + .../source-dependencies/less-inter-inv-java/C.java | 1 + .../source-dependencies/less-inter-inv-java/D.java | 4 + .../source-dependencies/less-inter-inv-java/E.java | 5 + .../less-inter-inv-java/build.sbt | 10 ++ .../less-inter-inv-java/changes/A2.java | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/less-inter-inv-java/test | 9 + .../source-dependencies/less-inter-inv/A.scala | 3 + .../source-dependencies/less-inter-inv/B.scala | 1 + .../source-dependencies/less-inter-inv/C.scala | 1 + .../source-dependencies/less-inter-inv/D.scala | 4 + .../source-dependencies/less-inter-inv/E.scala | 3 + .../source-dependencies/less-inter-inv/build.sbt | 10 ++ .../less-inter-inv/changes/A2.scala | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/less-inter-inv/test | 9 + .../source-dependencies/linearization/A.scala | 3 + .../source-dependencies/linearization/B.scala | 3 + .../source-dependencies/linearization/C.scala | 3 + .../source-dependencies/linearization/D.scala | 2 + .../source-dependencies/linearization/E.scala | 2 + .../source-dependencies/linearization/F.scala | 3 + .../linearization/changes/D.scala | 1 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/linearization/test | 13 ++ .../src/sbt-test/source-dependencies/named/A.scala | 3 + .../src/sbt-test/source-dependencies/named/B.scala | 7 + .../source-dependencies/named/changes/A.scala | 3 + .../named/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/named/test | 16 ++ .../nested-case-class/changes/A0.scala | 11 ++ .../nested-case-class/changes/A1.scala | 13 ++ .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/nested-case-class/test | 6 + .../new-cyclic/changes/A2.scala | 1 + .../source-dependencies/new-cyclic/pending | 4 + .../new-cyclic/project/DottyInjectedPlugin.scala | 17 ++ .../new-cyclic/src/main/scala/A.scala | 1 + .../new-cyclic/src/main/scala/B.scala | 1 + .../new-pkg-dep/changes/A1.java | 2 + .../new-pkg-dep/changes/B0.scala | 2 + .../new-pkg-dep/changes/B1.scala | 2 + .../new-pkg-dep/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/new-pkg-dep/test | 8 + .../sbt-test/source-dependencies/override/A.scala | 3 + .../sbt-test/source-dependencies/override/B.scala | 3 + .../sbt-test/source-dependencies/override/C.scala | 3 + .../sbt-test/source-dependencies/override/D.scala | 1 + .../source-dependencies/override/changes/B2.scala | 3 + .../override/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/override/test | 3 + .../source-dependencies/parent-change/W.scala | 5 + .../source-dependencies/parent-change/Y.scala | 5 + .../source-dependencies/parent-change/Z.scala | 1 + .../parent-change/changes/W.scala | 5 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/parent-change/test | 7 + .../parent-member-change/A.scala | 3 + .../parent-member-change/B.scala | 1 + .../parent-member-change/C.scala | 3 + .../parent-member-change/changes/A.scala | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/parent-member-change/test | 7 + .../source-dependencies/pkg-self/changes/A1.scala | 8 + .../source-dependencies/pkg-self/changes/A2.scala | 8 + .../source-dependencies/pkg-self/changes/B.scala | 5 + .../pkg-self/changes/package.scala | 3 + .../pkg-self/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/pkg-self/test | 14 ++ .../source-dependencies/qualified-access/A.scala | 10 ++ .../source-dependencies/qualified-access/B.scala | 6 + .../qualified-access/changes/A.scala | 6 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/qualified-access/test | 7 + .../relative-source-error/changes/absolute.sbt | 1 + .../relative-source-error/changes/relative.sbt | 1 + .../project/DottyInjectedPlugin.scala | 17 ++ .../relative-source-error/src/A.scala | 1 + .../source-dependencies/relative-source-error/test | 7 + .../remove-test-a/changes/1.scala | 6 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/remove-test-a/test | 7 + .../remove-test-b/changes/A2.scala | 6 + .../remove-test-b/changes/B3.scala | 6 + .../remove-test-b/changes/B4.scala | 5 + .../remove-test-b/changes/B5.scala | 5 + .../project/DottyInjectedPlugin.scala | 17 ++ .../remove-test-b/src/main/scala/A.scala | 5 + .../remove-test-b/src/main/scala/B.scala | 5 + .../source-dependencies/remove-test-b/test | 25 +++ .../repeated-parameters/A.scala | 4 + .../repeated-parameters/B.scala | 4 + .../repeated-parameters/changes/A.scala | 4 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/repeated-parameters/test | 7 + .../replace-test-a/changes/first.scala | 4 + .../replace-test-a/changes/second.scala | 4 + .../replace-test-a/project/Build.scala | 19 ++ .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/replace-test-a/test | 9 + .../source-dependencies/resident-java/build.sbt | 1 + .../resident-java/changes/A1.java | 5 + .../resident-java/changes/A2.java | 5 + .../resident-java/changes/B0.scala | 1 + .../resident-java/changes/B1.scala | 3 + .../resident-java/changes/B2.scala | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/resident-java/test | 10 ++ .../resident-package-object/changes/A.scala | 5 + .../resident-package-object/changes/package.scala | 3 + .../resident-package-object/changes/package2.scala | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../resident-package-object/test | 11 ++ .../source-dependencies/restore-classes/build.sbt | 12 ++ .../restore-classes/changes/A1.scala | 3 + .../restore-classes/changes/A2.scala | 5 + .../restore-classes/changes/B.scala | 4 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/restore-classes/test | 23 +++ .../same-file-used-names/A.scala | 8 + .../same-file-used-names/B.scala | 3 + .../same-file-used-names/build.sbt | 1 + .../same-file-used-names/changes/B.scala | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/same-file-used-names/test | 7 + .../sbt-test/source-dependencies/sealed/A.scala | 3 + .../sbt-test/source-dependencies/sealed/D.scala | 8 + .../source-dependencies/sealed/changes/A.scala | 4 + .../sbt-test/source-dependencies/sealed/pending | 11 ++ .../sealed/project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/signature-change/B.scala | 3 + .../signature-change/changes/A0.scala | 3 + .../signature-change/changes/A1.scala | 3 + .../signature-change/changes/A2.scala | 3 + .../signature-change/changes/A3.scala | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/signature-change/test | 20 +++ .../source-dependencies/specialized/A.scala | 4 + .../source-dependencies/specialized/B.scala | 7 + .../specialized/changes/A.scala | 4 + .../specialized/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/specialized/test | 15 ++ .../source-dependencies/stability-change/A.scala | 4 + .../source-dependencies/stability-change/B.scala | 5 + .../source-dependencies/stability-change/C.scala | 4 + .../stability-change/changes/A.scala | 4 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/stability-change/test | 6 + .../synthetic-companion/A.scala | 1 + .../synthetic-companion/B.scala | 3 + .../synthetic-companion/changes/A2.scala | 2 + .../synthetic-companion/dbg.sbt | 2 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/synthetic-companion/test | 4 + .../trait-member-modified/build.sbt | 27 +++ .../trait-member-modified/changes/A1.scala | 3 + .../project/DottyInjectedPlugin.scala | 17 ++ .../trait-member-modified/src/main/scala/A.scala | 1 + .../trait-member-modified/src/main/scala/B.scala | 1 + .../source-dependencies/trait-member-modified/test | 9 + .../trait-private-object/A.scala | 3 + .../trait-private-object/B.scala | 5 + .../trait-private-object/changes/A.scala | 4 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/trait-private-object/test | 5 + .../source-dependencies/trait-private-var/B.scala | 3 + .../trait-private-var/changes/A0.scala | 3 + .../trait-private-var/changes/A1.scala | 5 + .../trait-private-var/changes/A2.scala | 5 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/trait-private-var/test | 28 +++ .../source-dependencies/trait-super/A.scala | 6 + .../source-dependencies/trait-super/B.scala | 6 + .../source-dependencies/trait-super/Main.scala | 10 ++ .../trait-super/changes/B2.scala | 6 + .../trait-super/changes/B3.scala | 6 + .../trait-super/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/trait-super/test | 16 ++ .../transitive-a/changes/A2.scala | 4 + .../transitive-a/project/DottyInjectedPlugin.scala | 17 ++ .../transitive-a/src/main/scala/A.scala | 4 + .../transitive-a/src/main/scala/B.scala | 4 + .../transitive-a/src/main/scala/C.scala | 4 + .../sbt-test/source-dependencies/transitive-a/test | 4 + .../transitive-b/changes/A2.scala | 4 + .../transitive-b/project/DottyInjectedPlugin.scala | 17 ++ .../transitive-b/src/main/scala/A.scala | 4 + .../transitive-b/src/main/scala/B.scala | 1 + .../transitive-b/src/main/scala/C.scala | 4 + .../sbt-test/source-dependencies/transitive-b/test | 4 + .../transitive-inherit-java/A.java | 3 + .../transitive-inherit-java/B.java | 1 + .../transitive-inherit-java/C.java | 4 + .../transitive-inherit-java/changes/A2.java | 1 + .../project/DottyInjectedPlugin.scala | 17 ++ .../transitive-inherit-java/test | 4 + .../source-dependencies/transitive-inherit/A.scala | 1 + .../source-dependencies/transitive-inherit/B.scala | 1 + .../source-dependencies/transitive-inherit/C.scala | 4 + .../transitive-inherit/changes/A2.scala | 4 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/transitive-inherit/test | 4 + .../transitive-memberRef/build.sbt | 40 +++++ .../transitive-memberRef/changes/A1.scala | 5 + .../project/DottyInjectedPlugin.scala | 17 ++ .../transitive-memberRef/src/main/scala/A.scala | 3 + .../transitive-memberRef/src/main/scala/B.scala | 3 + .../transitive-memberRef/src/main/scala/C.scala | 3 + .../transitive-memberRef/src/main/scala/D.scala | 3 + .../transitive-memberRef/src/main/scala/X.scala | 5 + .../transitive-memberRef/src/main/scala/Y.scala | 5 + .../source-dependencies/transitive-memberRef/test | 11 ++ .../source-dependencies/type-alias/A.scala | 4 + .../source-dependencies/type-alias/B.scala | 3 + .../source-dependencies/type-alias/build.sbt | 3 + .../source-dependencies/type-alias/changes/A.scala | 3 + .../type-alias/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/type-alias/test | 7 + .../source-dependencies/type-parameter/A.scala | 1 + .../source-dependencies/type-parameter/B.scala | 1 + .../source-dependencies/type-parameter/C.scala | 3 + .../source-dependencies/type-parameter/D.scala | 3 + .../type-parameter/changes/A.scala | 1 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/type-parameter/test | 7 + .../source-dependencies/typeref-only/A.scala | 5 + .../source-dependencies/typeref-only/B.scala | 1 + .../source-dependencies/typeref-only/build.sbt | 5 + .../typeref-only/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/typeref-only/test | 7 + .../source-dependencies/typeref-return/A.scala | 4 + .../source-dependencies/typeref-return/B.scala | 3 + .../typeref-return/changes/A.scala | 4 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/typeref-return/test | 5 + .../types-in-used-names-a/A.scala | 1 + .../types-in-used-names-a/B.scala | 1 + .../types-in-used-names-a/C.scala | 3 + .../types-in-used-names-a/D.scala | 3 + .../types-in-used-names-a/changes/B2.scala | 1 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/types-in-used-names-a/test | 4 + .../types-in-used-names-b/A.scala | 5 + .../types-in-used-names-b/B.scala | 3 + .../types-in-used-names-b/changes/A2.scala | 5 + .../project/DottyInjectedPlugin.scala | 17 ++ .../source-dependencies/types-in-used-names-b/test | 4 + .../value-class-underlying/A.scala | 1 + .../value-class-underlying/B.scala | 3 + .../value-class-underlying/C.scala | 5 + .../value-class-underlying/build.sbt | 1 + .../value-class-underlying/changes/A2.scala | 1 + .../value-class-underlying/test | 3 + .../source-dependencies/value-class/build.sbt | 1 + .../value-class/changes/A0.scala | 1 + .../value-class/changes/A1.scala | 1 + .../value-class/changes/B0.scala | 3 + .../value-class/changes/B1.scala | 3 + .../value-class/changes/B2.scala | 3 + .../value-class/changes/C0.scala | 3 + .../value-class/changes/C1.scala | 3 + .../value-class/changes/C2.scala | 3 + .../value-class/project/DottyInjectedPlugin.scala | 17 ++ .../sbt-test/source-dependencies/value-class/test | 50 ++++++ .../src/sbt-test/source-dependencies/var/A.scala | 5 + .../src/sbt-test/source-dependencies/var/B.scala | 4 + .../source-dependencies/var/changes/A.scala | 4 + .../var/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/var/test | 6 + .../sbt-test/source-dependencies/variance/A.scala | 2 + .../sbt-test/source-dependencies/variance/C.scala | 3 + .../source-dependencies/variance/changes/A.scala | 2 + .../variance/project/DottyInjectedPlugin.scala | 17 ++ .../src/sbt-test/source-dependencies/variance/test | 6 + .../test/scala/xsbt/DependencySpecification.scala | 151 ++++++++++++++++ .../test/scala/xsbt/ExtractAPISpecification.scala | 45 +++++ .../scala/xsbt/ExtractUsedNamesSpecification.scala | 119 +++++++++++++ .../scala/xsbt/ScalaCompilerForUnitTesting.scala | 191 +++++++++++++++++++++ sbt-bridge/src/test/scala/xsbti/TestCallback.scala | 35 ++++ 1014 files changed, 4570 insertions(+), 4570 deletions(-) delete mode 100644 sbt-bridge/bridge/src/main/scala/xsbt/CompilerClassLoader.scala delete mode 100644 sbt-bridge/bridge/src/main/scala/xsbt/CompilerInterface.scala delete mode 100644 sbt-bridge/bridge/src/main/scala/xsbt/ConsoleInterface.scala delete mode 100644 sbt-bridge/bridge/src/main/scala/xsbt/DelegatingReporter.scala delete mode 100644 sbt-bridge/bridge/src/main/scala/xsbt/Log.scala delete mode 100644 sbt-bridge/bridge/src/main/scala/xsbt/Message.scala delete mode 100644 sbt-bridge/bridge/src/main/scala/xsbt/ScaladocInterface.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/Source.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/project/Reporter.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/D.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/changes/C2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/changes/Bar1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Bar.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Foo.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Impl.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/A3.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/B1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/B2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/added/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/added/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/D.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/changes/B2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/D.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/changes/B2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/changes/Break.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/dep/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/project/P.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/use/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/Use.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/actual/A.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/actual/a.jar delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/build.sbt delete mode 120000 sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/lib/a.jar delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/For.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/Nested.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/changes/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/changes/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/changes/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/changes/Define1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/changes/Define2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/changes/Use.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/A3.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/build2.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/project/Build.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/pending delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/fbounded-existentials/fbounds.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/fbounded-existentials/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/fbounded-existentials/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/M.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/pending delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/A.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/B.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/C.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/D.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/E.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/F.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/G.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/J.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/changes/B1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/changes/B2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/changes/B3.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A3.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/Outer.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/A.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/A2.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/B1.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/B2.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/B3.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/A.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/DefaultTreeTableSorter.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeColumnModel.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeTableSorter.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/JJ.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/changes/S1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/changes/S2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/changes/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/changes/J1.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/changes/J2.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/changes/S.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/A.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/B.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/C.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/D.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/E.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/changes/A2.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/D.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/E.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/D.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/E.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/F.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/changes/D.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/named/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/named/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/named/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/named/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/named/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A0.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/pending delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/A1.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B0.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/override/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/override/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/override/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/override/D.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/override/changes/B2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/override/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/override/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/W.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/Y.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/Z.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/changes/W.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/package.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/changes/absolute.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/changes/relative.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/src/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-a/changes/1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-a/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-a/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B3.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B4.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B5.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/changes/first.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/changes/second.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/project/Build.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/A1.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/A2.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/B0.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/B1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/B2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/changes/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/changes/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/D.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/pending delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A0.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A3.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/dbg.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A0.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/Main.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/changes/B2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/changes/B3.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/A.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/B.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/C.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/changes/A2.java delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/D.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/X.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/Y.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/D.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/D.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/changes/B2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/changes/A2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/build.sbt delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/A0.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/A1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/B0.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/B1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/B2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/C0.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/C1.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/C2.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/var/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/var/B.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/var/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/var/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/var/test delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/C.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/changes/A.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/project/DottyInjectedPlugin.scala delete mode 100644 sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/test delete mode 100644 sbt-bridge/bridge/src/test/scala/xsbt/DependencySpecification.scala delete mode 100644 sbt-bridge/bridge/src/test/scala/xsbt/ExtractAPISpecification.scala delete mode 100644 sbt-bridge/bridge/src/test/scala/xsbt/ExtractUsedNamesSpecification.scala delete mode 100644 sbt-bridge/bridge/src/test/scala/xsbt/ScalaCompilerForUnitTesting.scala delete mode 100644 sbt-bridge/bridge/src/test/scala/xsbti/TestCallback.scala create mode 100644 sbt-bridge/src/main/scala/xsbt/CompilerClassLoader.scala create mode 100644 sbt-bridge/src/main/scala/xsbt/CompilerInterface.scala create mode 100644 sbt-bridge/src/main/scala/xsbt/ConsoleInterface.scala create mode 100644 sbt-bridge/src/main/scala/xsbt/DelegatingReporter.scala create mode 100644 sbt-bridge/src/main/scala/xsbt/Log.scala create mode 100644 sbt-bridge/src/main/scala/xsbt/Message.scala create mode 100644 sbt-bridge/src/main/scala/xsbt/ScaladocInterface.scala create mode 100644 sbt-bridge/src/sbt-test/compilerReporter/simple/Source.scala create mode 100644 sbt-bridge/src/sbt-test/compilerReporter/simple/build.sbt create mode 100644 sbt-bridge/src/sbt-test/compilerReporter/simple/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/compilerReporter/simple/project/Reporter.scala create mode 100644 sbt-bridge/src/sbt-test/compilerReporter/simple/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-override/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-override/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-override/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-override/D.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-override/changes/C2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-override/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-override/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/changes/Bar1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Bar.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Foo.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Impl.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-type/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-type/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-type/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-type/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/abstract-type/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/added/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/added/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/added/changes/A3.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/added/changes/B1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/added/changes/B2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/added/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/added/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/D.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/changes/B2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/D.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/changes/B2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/binary/changes/Break.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/binary/dep/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/binary/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/binary/project/P.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/binary/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/binary/use/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/by-name/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/by-name/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/by-name/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/by-name/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/by-name/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/canon/Use.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/canon/actual/A.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/canon/actual/a.jar create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/canon/build.sbt create mode 120000 sbt-bridge/src/sbt-test/source-dependencies/canon/lib/a.jar create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/canon/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/canon/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/compactify/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/compactify/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/For.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/Nested.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/compactify/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/constants/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/constants/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/constants/changes/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/constants/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/constants/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/default-params/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/default-params/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/default-params/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/default-params/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/default-params/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/dup-class/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/dup-class/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/dup-class/changes/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/dup-class/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/dup-class/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/empty-a/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/empty-a/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/empty-a/changes/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/empty-a/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/empty-a/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/empty-package/changes/Define1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/empty-package/changes/Define2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/empty-package/changes/Use.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/empty-package/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/empty-package/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/erasure/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/erasure/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/erasure/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/erasure/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/erasure/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/A3.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/build2.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/export-jars/project/Build.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/export-jars/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/export-jars/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/ext/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/ext/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/ext/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/ext/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/false-error/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/false-error/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/false-error/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/false-error/pending create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/false-error/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/fbounded-existentials/fbounds.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/fbounded-existentials/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/fbounded-existentials/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-params/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-params/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-params/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-params/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-params/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/M.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit-search/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/implicit/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/import-class/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/import-class/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/import-class/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/import-class/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/import-class/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/import-package/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/import-package/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/import-package/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/import-package/pending create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/import-package/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/A.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/B.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/C.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/D.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/E.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/F.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/G.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/J.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inline/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inline/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inline/changes/B1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inline/changes/B2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inline/changes/B3.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inline/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/inline/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A3.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/Outer.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/A.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/A2.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/B1.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/B2.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/B3.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-basic/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-basic/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/A.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/DefaultTreeTableSorter.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeColumnModel.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeTableSorter.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-mixed/JJ.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-mixed/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-mixed/changes/S1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-mixed/changes/S2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-mixed/changes/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-mixed/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-mixed/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-static/changes/J1.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-static/changes/J2.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-static/changes/S.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-static/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/java-static/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/lazy-val/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/lazy-val/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/lazy-val/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/lazy-val/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/lazy-val/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/A.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/B.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/C.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/D.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/E.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/changes/A2.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/D.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/E.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/linearization/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/linearization/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/linearization/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/linearization/D.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/linearization/E.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/linearization/F.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/linearization/changes/D.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/linearization/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/linearization/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/named/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/named/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/named/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/named/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/named/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A0.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/pending create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/A1.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B0.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/override/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/override/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/override/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/override/D.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/override/changes/B2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/override/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/override/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/parent-change/W.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/parent-change/Y.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/parent-change/Z.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/parent-change/changes/W.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/parent-change/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/parent-change/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/package.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/pkg-self/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/pkg-self/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/qualified-access/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/qualified-access/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/qualified-access/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/qualified-access/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/qualified-access/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/changes/absolute.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/changes/relative.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/src/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/remove-test-a/changes/1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/remove-test-a/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/remove-test-a/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B3.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B4.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B5.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/changes/first.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/changes/second.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/project/Build.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-java/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/A1.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/A2.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/B0.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/B1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/B2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-java/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-java/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/restore-classes/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/restore-classes/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/restore-classes/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/restore-classes/changes/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/restore-classes/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/restore-classes/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/changes/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/sealed/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/sealed/D.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/sealed/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/sealed/pending create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/sealed/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/signature-change/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A0.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A3.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/signature-change/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/signature-change/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/specialized/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/specialized/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/specialized/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/specialized/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/specialized/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/stability-change/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/stability-change/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/stability-change/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/stability-change/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/stability-change/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/stability-change/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/dbg.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A0.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-super/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-super/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-super/Main.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-super/changes/B2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-super/changes/B3.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-super/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/trait-super/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-a/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-a/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-a/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-b/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-b/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-b/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/A.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/B.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/C.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/changes/A2.java create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/D.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/X.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/Y.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-alias/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-alias/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-alias/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-alias/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-alias/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-alias/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-parameter/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-parameter/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-parameter/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-parameter/D.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-parameter/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-parameter/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/type-parameter/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/typeref-only/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/typeref-only/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/typeref-only/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/typeref-only/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/typeref-only/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/typeref-return/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/typeref-return/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/typeref-return/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/typeref-return/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/typeref-return/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/D.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/changes/B2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/changes/A2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class/build.sbt create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/A0.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/A1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/B0.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/B1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/B2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/C0.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/C1.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/C2.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/value-class/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/var/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/var/B.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/var/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/var/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/var/test create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/variance/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/variance/C.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/variance/changes/A.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/variance/project/DottyInjectedPlugin.scala create mode 100644 sbt-bridge/src/sbt-test/source-dependencies/variance/test create mode 100644 sbt-bridge/src/test/scala/xsbt/DependencySpecification.scala create mode 100644 sbt-bridge/src/test/scala/xsbt/ExtractAPISpecification.scala create mode 100644 sbt-bridge/src/test/scala/xsbt/ExtractUsedNamesSpecification.scala create mode 100644 sbt-bridge/src/test/scala/xsbt/ScalaCompilerForUnitTesting.scala create mode 100644 sbt-bridge/src/test/scala/xsbti/TestCallback.scala (limited to 'sbt-bridge') diff --git a/sbt-bridge/bridge/src/main/scala/xsbt/CompilerClassLoader.scala b/sbt-bridge/bridge/src/main/scala/xsbt/CompilerClassLoader.scala deleted file mode 100644 index 3cb3f344f..000000000 --- a/sbt-bridge/bridge/src/main/scala/xsbt/CompilerClassLoader.scala +++ /dev/null @@ -1,90 +0,0 @@ -package xsbt - -import java.net.{URL, URLClassLoader} - -/** A classloader to run the compiler - * - * A CompilerClassLoader is constructed from a list of `urls` that need to be on - * the classpath to run the compiler and the classloader used by sbt. - * - * To understand why a custom classloader is needed for the compiler, let us - * describe some alternatives that wouldn't work. - * - `new URLClassLoader(urls)`: - * The compiler contains sbt phases that callback to sbt using the `xsbti.*` - * interfaces. If `urls` does not contain the sbt interfaces we'll get a - * `ClassNotFoundException` in the compiler when we try to use them, if - * `urls` does contain the interfaces we'll get a `ClassCastException` or a - * `LinkageError` because if the same class is loaded by two different - * classloaders, they are considered distinct by the JVM. - * - `new URLClassLoader(urls, sbtLoader)`: - * Because of the JVM delegation model, this means that we will only load - * a class from `urls` if it's not present in the parent `sbtLoader`, but - * sbt uses its own version of the scala compiler and scala library which - * is not the one we need to run the compiler. - * - * Our solution is to implement a subclass of URLClassLoader with no parent, instead - * we override `loadClass` to load the `xsbti.*` interfaces from `sbtLoader`. - */ -class CompilerClassLoader(urls: Array[URL], sbtLoader: ClassLoader) - extends URLClassLoader(urls, null) { - override def loadClass(className: String, resolve: Boolean): Class[_] = - if (className.startsWith("xsbti.")) { - // We can't use the loadClass overload with two arguments because it's - // protected, but we can do the same by hand (the classloader instance - // from which we call resolveClass does not matter). - val c = sbtLoader.loadClass(className) - if (resolve) - resolveClass(c) - c - } else { - super.loadClass(className, resolve) - } -} - -object CompilerClassLoader { - /** Fix the compiler bridge ClassLoader - * - * Soundtrack: https://www.youtube.com/watch?v=imamcajBEJs - * - * The classloader that we get from sbt looks like: - * - * URLClassLoader(bridgeURLs, - * DualLoader(scalaLoader, notXsbtiFilter, sbtLoader, xsbtiFilter)) - * - * DualLoader will load the `xsbti.*` interfaces using `sbtLoader` and - * everything else with `scalaLoader`. Once we have loaded the dotty Main - * class using `scalaLoader`, subsequent classes in the dotty compiler will - * also be loaded by `scalaLoader` and _not_ by the DualLoader. But the sbt - * compiler phases are part of dotty and still need access to the `xsbti.*` - * interfaces in `sbtLoader`, therefore DualLoader does not work for us - * (this issue is not present with scalac because the sbt phases are - * currently defined in the compiler bridge itself, not in scalac). - * - * CompilerClassLoader is a replacement for DualLoader. Until we can fix - * this in sbt proper, we need to use reflection to construct our own - * fixed classloader: - * - * URLClassLoader(bridgeURLs, - * CompilerClassLoader(scalaLoader.getURLs, sbtLoader)) - * - * @param bridgeLoader The classloader that sbt uses to load the compiler bridge - * @return A fixed classloader that works with dotty - */ - def fixBridgeLoader(bridgeLoader: ClassLoader) = bridgeLoader match { - case bridgeLoader: URLClassLoader => - val dualLoader = bridgeLoader.getParent - val dualLoaderClass = dualLoader.getClass - - // DualLoader#parentA and DualLoader#parentB are private - val parentAField = dualLoaderClass.getDeclaredField("parentA") - parentAField.setAccessible(true) - val parentBField = dualLoaderClass.getDeclaredField("parentB") - parentBField.setAccessible(true) - val scalaLoader = parentAField.get(dualLoader).asInstanceOf[URLClassLoader] - val sbtLoader = parentBField.get(dualLoader).asInstanceOf[URLClassLoader] - - val bridgeURLs = bridgeLoader.getURLs - new URLClassLoader(bridgeURLs, - new CompilerClassLoader(scalaLoader.getURLs, sbtLoader)) - } -} diff --git a/sbt-bridge/bridge/src/main/scala/xsbt/CompilerInterface.scala b/sbt-bridge/bridge/src/main/scala/xsbt/CompilerInterface.scala deleted file mode 100644 index bf1488dad..000000000 --- a/sbt-bridge/bridge/src/main/scala/xsbt/CompilerInterface.scala +++ /dev/null @@ -1,72 +0,0 @@ -/* sbt -- Simple Build Tool - * Copyright 2008, 2009 Mark Harrah - */ -package xsbt - -import xsbti.{ AnalysisCallback, Logger, Problem, Reporter, Severity, DependencyContext } -import xsbti.api.SourceAPI -import xsbti.compile._ -import Log.debug -import java.io.File - -import dotty.tools.dotc.core.Contexts.ContextBase -import dotty.tools.dotc.{ Main => DottyMain } -import dotty.tools.dotc.interfaces._ - -import java.net.URLClassLoader - -final class CompilerInterface { - def newCompiler(options: Array[String], output: Output, initialLog: Logger, - initialDelegate: Reporter, resident: Boolean): CachedCompiler = { - // The classloader that sbt uses to load the compiler bridge is broken - // (see CompilerClassLoader#fixBridgeLoader for details). To workaround - // this we construct our own ClassLoader and then run the following code - // with it: - // new CachedCompilerImpl(options, output, resident) - - val bridgeLoader = getClass.getClassLoader - val fixedLoader = CompilerClassLoader.fixBridgeLoader(bridgeLoader) - val cciClass = fixedLoader.loadClass("xsbt.CachedCompilerImpl") - cciClass.getConstructors.head - .newInstance(options, output, resident: java.lang.Boolean) - .asInstanceOf[CachedCompiler] - } - - def run(sources: Array[File], changes: DependencyChanges, callback: AnalysisCallback, log: Logger, - delegate: Reporter, progress: CompileProgress, cached: CachedCompiler): Unit = - cached.run(sources, changes, callback, log, delegate, progress) -} - -class CachedCompilerImpl(args: Array[String], output: Output, resident: Boolean) extends CachedCompiler { - val outputArgs = - output match { - case multi: MultipleOutput => - ??? - case single: SingleOutput => - List("-d", single.outputDirectory.getAbsolutePath.toString) - } - - def commandArguments(sources: Array[File]): Array[String] = - (outputArgs ++ args.toList ++ sources.map(_.getAbsolutePath).sortWith(_ < _)).toArray[String] - - def run(sources: Array[File], changes: DependencyChanges, callback: AnalysisCallback, log: Logger, delegate: Reporter, progress: CompileProgress): Unit = synchronized { - run(sources.toList, changes, callback, log, delegate, progress) - } - private[this] def run(sources: List[File], changes: DependencyChanges, callback: AnalysisCallback, log: Logger, delegate: Reporter, compileProgress: CompileProgress): Unit = { - debug(log, args.mkString("Calling Dotty compiler with arguments (CompilerInterface):\n\t", "\n\t", "")) - val ctx = (new ContextBase).initialCtx.fresh - .setSbtCallback(callback) - .setReporter(new DelegatingReporter(delegate)) - - val cl = getClass.getClassLoader.asInstanceOf[URLClassLoader] - - val reporter = DottyMain.process(commandArguments(sources.toArray), ctx) - if (reporter.hasErrors) { - throw new InterfaceCompileFailed(args, Array()) - } - } -} - -class InterfaceCompileFailed(override val arguments: Array[String], override val problems: Array[Problem]) extends xsbti.CompileFailed { - override val toString = "Compilation failed" -} diff --git a/sbt-bridge/bridge/src/main/scala/xsbt/ConsoleInterface.scala b/sbt-bridge/bridge/src/main/scala/xsbt/ConsoleInterface.scala deleted file mode 100644 index f56918113..000000000 --- a/sbt-bridge/bridge/src/main/scala/xsbt/ConsoleInterface.scala +++ /dev/null @@ -1,73 +0,0 @@ -/* sbt -- Simple Build Tool - * Copyright 2008, 2009 Mark Harrah - */ -package xsbt - -import xsbti.Logger -import scala.tools.nsc.{ GenericRunnerCommand, Interpreter, InterpreterLoop, ObjectRunner, Settings } -import scala.tools.nsc.interpreter.InteractiveReader -import scala.tools.nsc.reporters.Reporter -import scala.tools.nsc.util.ClassPath - -import dotty.tools.dotc.core.Contexts.Context -import dotty.tools.dotc.repl.REPL -import dotty.tools.dotc.repl.REPL.Config - -class ConsoleInterface { - def commandArguments( - args: Array[String], - bootClasspathString: String, - classpathString: String, - log: Logger - ): Array[String] = args - - def run(args: Array[String], - bootClasspathString: String, - classpathString: String, - initialCommands: String, - cleanupCommands: String, - loader: ClassLoader, - bindNames: Array[String], - bindValues: Array[Any], - log: Logger - ): Unit = { - val completeArgs = - args :+ - "-bootclasspath" :+ bootClasspathString :+ - "-classpath" :+ classpathString - - println("Starting dotty interpreter...") - val repl = ConsoleInterface.customRepl( - initialCommands :: Nil, - cleanupCommands :: Nil, - bindNames zip bindValues, - loader - ) - repl.process(completeArgs) - } -} - -object ConsoleInterface { - def customConfig( - initCmds: List[String], - cleanupCmds: List[String], - boundVals: Array[(String, Any)], - loader: ClassLoader - ) = new Config { - override val initialCommands: List[String] = initCmds - override val cleanupCommands: List[String] = cleanupCmds - override val boundValues: Array[(String, Any)] = boundVals - override val classLoader: Option[ClassLoader] = Option(loader) - } - - def customRepl(cfg: Config): REPL = new REPL { - override lazy val config = cfg - } - - def customRepl( - initCmds: List[String], - cleanupCmds: List[String], - boundVals: Array[(String, Any)], - loader: ClassLoader - ): REPL = customRepl(customConfig(initCmds, cleanupCmds, boundVals, loader)) -} diff --git a/sbt-bridge/bridge/src/main/scala/xsbt/DelegatingReporter.scala b/sbt-bridge/bridge/src/main/scala/xsbt/DelegatingReporter.scala deleted file mode 100644 index 770d6b2c7..000000000 --- a/sbt-bridge/bridge/src/main/scala/xsbt/DelegatingReporter.scala +++ /dev/null @@ -1,48 +0,0 @@ -/* sbt -- Simple Build Tool - * Copyright 2008, 2009 Mark Harrah - */ -package xsbt - -import dotty.tools._ -import dotc._ -import reporting._ -import reporting.diagnostic.MessageContainer -import reporting.diagnostic.messages -import core.Contexts._ -import xsbti.{Maybe, Position} - -final class DelegatingReporter(delegate: xsbti.Reporter) extends Reporter - with UniqueMessagePositions - with HideNonSensicalMessages - with MessageRendering { - import MessageContainer._ - - override def printSummary(implicit ctx: Context): Unit = delegate.printSummary() - - def doReport(cont: MessageContainer)(implicit ctx: Context): Unit = { - val severity = - cont match { - case _: messages.Error => xsbti.Severity.Error - case _: messages.Warning => xsbti.Severity.Warn - case _ => xsbti.Severity.Info - } - - val position = new Position { - def line: Maybe[Integer] = Maybe.nothing() - def lineContent: String = "" - def offset: Maybe[Integer] = Maybe.nothing() - def pointer: Maybe[Integer] = Maybe.nothing() - def pointerSpace: Maybe[String] = Maybe.nothing() - def sourceFile: Maybe[java.io.File] = Maybe.nothing() - def sourcePath: Maybe[String] = Maybe.nothing() - } - - val sb = new StringBuilder() - sb.append(messageAndPos(cont.contained, cont.pos, diagnosticLevel(cont))) - if (ctx.shouldExplain(cont) && cont.contained.explanation.nonEmpty) { - sb.append(explanation(cont.contained)) - } - - delegate.log(position, sb.toString(), severity) - } -} diff --git a/sbt-bridge/bridge/src/main/scala/xsbt/Log.scala b/sbt-bridge/bridge/src/main/scala/xsbt/Log.scala deleted file mode 100644 index e514d7abb..000000000 --- a/sbt-bridge/bridge/src/main/scala/xsbt/Log.scala +++ /dev/null @@ -1,10 +0,0 @@ -/* sbt -- Simple Build Tool - * Copyright 2008, 2009 Mark Harrah - */ -package xsbt - -object Log { - def debug(log: xsbti.Logger, msg: => String) = log.debug(Message(msg)) - def settingsError(log: xsbti.Logger): String => Unit = - s => log.error(Message(s)) -} diff --git a/sbt-bridge/bridge/src/main/scala/xsbt/Message.scala b/sbt-bridge/bridge/src/main/scala/xsbt/Message.scala deleted file mode 100644 index 48f24f533..000000000 --- a/sbt-bridge/bridge/src/main/scala/xsbt/Message.scala +++ /dev/null @@ -1,8 +0,0 @@ -/* sbt -- Simple Build Tool - * Copyright 2008, 2009 Mark Harrah - */ -package xsbt - -object Message { - def apply[T](s: => T) = new xsbti.F0[T] { def apply() = s } -} diff --git a/sbt-bridge/bridge/src/main/scala/xsbt/ScaladocInterface.scala b/sbt-bridge/bridge/src/main/scala/xsbt/ScaladocInterface.scala deleted file mode 100644 index 3ad9c7941..000000000 --- a/sbt-bridge/bridge/src/main/scala/xsbt/ScaladocInterface.scala +++ /dev/null @@ -1,72 +0,0 @@ -/* sbt -- Simple Build Tool - * Copyright 2008, 2009 Mark Harrah - */ -package xsbt - -import xsbti.Logger -import dotty.tools.dottydoc.api.scala.Dottydoc -import java.net.URL - -class ScaladocInterface { - def run(args: Array[String], log: Logger, delegate: xsbti.Reporter) = - (new DottydocRunner(args, log, delegate)).run() -} - -class DottydocRunner(args: Array[String], log: Logger, delegate: xsbti.Reporter) extends Dottydoc { - def run(): Unit = getOutputFolder(args).map { outputFolder => - val index = createIndex(args) - val resources = getResources(args) - val template = getTemplate(resources) - - template.fold(writeJson(index, outputFolder)) { tpl => - buildDocs(outputFolder, tpl, resources, index) - } - } getOrElse { - delegate.log( - NoPosition, - "No output folder set for API documentation (\"-d\" parameter should be passed to the documentation tool)", - xsbti.Severity.Error - ) - } - - private[this] val NoPosition = new xsbti.Position { - val line = xsbti.Maybe.nothing[Integer] - val lineContent = "" - val offset = xsbti.Maybe.nothing[Integer] - val sourcePath = xsbti.Maybe.nothing[String] - val sourceFile = xsbti.Maybe.nothing[java.io.File] - val pointer = xsbti.Maybe.nothing[Integer] - val pointerSpace = xsbti.Maybe.nothing[String] - } - - private def getStringSetting(name: String): Option[String] = - args find (_.startsWith(name)) map (_.drop(name.length)) - - private def getOutputFolder(args: Array[String]): Option[String] = - args sliding(2) find { case Array(x, _) => x == "-d" } map (_.tail.head.trim) - - private def getTemplate(resources: List[URL]): Option[URL] = - resources.find(_.getFile.endsWith("template.html")) - - private def getResources(args: Array[String]): List[URL] = { - val cp = args sliding (2) find { case Array(x, _) => x == "-classpath" } map (_.tail.head.trim) getOrElse "" - - cp.split(":").find(_.endsWith("dottydoc-client.jar")).map { resourceJar => - import java.util.jar.JarFile - val jarEntries = (new JarFile(resourceJar)).entries - var entries: List[URL] = Nil - - while (jarEntries.hasMoreElements) { - val entry = jarEntries.nextElement() - - if (!entry.isDirectory()) { - val path = s"jar:file:$resourceJar!/${entry.getName}" - val url = new URL(path) - entries = url :: entries - } - } - - entries - } getOrElse (Nil) - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/Source.scala b/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/Source.scala deleted file mode 100644 index 6f0678599..000000000 --- a/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/Source.scala +++ /dev/null @@ -1,10 +0,0 @@ -trait A -trait B - -trait Wr { - val z: A with B -} - -object Er { - val a = er1 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/build.sbt b/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/build.sbt deleted file mode 100644 index 017846f5e..000000000 --- a/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/build.sbt +++ /dev/null @@ -1 +0,0 @@ -Reporter.checkSettings \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/project/Reporter.scala b/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/project/Reporter.scala deleted file mode 100644 index c0a56ec82..000000000 --- a/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/project/Reporter.scala +++ /dev/null @@ -1,44 +0,0 @@ -import sbt._ -import Keys._ -import KeyRanks.DTask - -object Reporter { - import xsbti.{Reporter, Problem, Position, Severity, Maybe} - - lazy val check = TaskKey[Unit]("check", "make sure compilation info are forwared to sbt") - - // compilerReporter is marked private in sbt - lazy val compilerReporter = TaskKey[Option[xsbti.Reporter]]("compilerReporter", "Experimental hook to listen (or send) compilation failure messages.", DTask) - - lazy val reporter = - Some(new xsbti.Reporter { - private val buffer = collection.mutable.ArrayBuffer.empty[Problem] - def reset(): Unit = buffer.clear() - def hasErrors: Boolean = buffer.exists(_.severity == Severity.Error) - def hasWarnings: Boolean = buffer.exists(_.severity == Severity.Warn) - def printSummary(): Unit = println(problems.mkString(System.lineSeparator)) - def problems: Array[Problem] = buffer.toArray - def log(pos: Position, msg: String, sev: Severity): Unit = { - object MyProblem extends Problem { - def category: String = null - def severity: Severity = sev - def message: String = msg - def position: Position = pos - override def toString = s"custom: $position:$severity: $message" - } - buffer.append(MyProblem) - } - def comment(pos: xsbti.Position, msg: String): Unit = () - }) - - lazy val checkSettings = Seq( - compilerReporter in (Compile, compile) := reporter, - check <<= (compile in Compile).mapFailure( _ => { - val problems = reporter.get.problems - println(problems.toList) - assert(problems.size == 2) - assert(problems.count(_.severity == Severity.Error) == 1) // not found: er1, - assert(problems.count(_.severity == Severity.Warn) == 1) // `with' as a type operator has been deprecated; use `&' instead, - }) - ) -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/test b/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/test deleted file mode 100644 index a5912a391..000000000 --- a/sbt-bridge/bridge/src/sbt-test/compilerReporter/simple/test +++ /dev/null @@ -1 +0,0 @@ -> check \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/A.scala deleted file mode 100644 index 43b95b9e9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait A { - def x: Int -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/B.scala deleted file mode 100644 index c7569ba51..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait B extends A { - override def x = 2 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/C.scala deleted file mode 100644 index 24d656d4a..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/C.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait C extends A { - def x = 5 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/D.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/D.scala deleted file mode 100644 index 1f0d0a274..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/D.scala +++ /dev/null @@ -1 +0,0 @@ -trait D extends C with B \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/changes/C2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/changes/C2.scala deleted file mode 100644 index 5cb6be980..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/changes/C2.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait C extends A { - abstract override def x = super.x + 5 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/test deleted file mode 100644 index 8021d5ce2..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-override/test +++ /dev/null @@ -1,3 +0,0 @@ -> compile -$ copy-file changes/C2.scala C.scala --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/build.sbt deleted file mode 100644 index 92d209377..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/build.sbt +++ /dev/null @@ -1,7 +0,0 @@ -InputKey[Unit]("check-number-of-compiler-iterations") <<= inputTask { (argTask: TaskKey[Seq[String]]) => - (argTask, compile in Compile) map { (args: Seq[String], a: sbt.inc.Analysis) => - assert(args.size == 1) - val expectedIterationsNumber = args(0).toInt - assert(a.compilations.allCompilations.size == expectedIterationsNumber, "a.compilations.allCompilations.size = %d (expected %d)".format(a.compilations.allCompilations.size, expectedIterationsNumber)) - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/changes/Bar1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/changes/Bar1.scala deleted file mode 100644 index fb8320f6e..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/changes/Bar1.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Bar { - def bar: Outer.TypeInner = null - // comment to trigger recompilation -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Bar.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Bar.scala deleted file mode 100644 index 93e2de3bc..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Bar.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Bar { - def bar: Outer.TypeInner = null -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Foo.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Foo.scala deleted file mode 100644 index 44e7145e1..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Foo.scala +++ /dev/null @@ -1,5 +0,0 @@ -object Outer { - class Inner { type Xyz } - - type TypeInner = Inner { type Xyz = Int } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Impl.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Impl.scala deleted file mode 100644 index b691898dd..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Impl.scala +++ /dev/null @@ -1,3 +0,0 @@ -class Impl { - def bleep = Bar.bar -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/test deleted file mode 100644 index b0bec415e..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type-override/test +++ /dev/null @@ -1,14 +0,0 @@ -# Test for separate compilation and proper value of -# the OVERRIDE flag when abstract types, type alias -# and structural type are involved -# See https://github.com/sbt/sbt/issues/726 for details - -# introduces first compile iteration -> compile -# this change adds a comment and does not change api so introduces -# only one additional compile iteration -$ copy-file changes/Bar1.scala src/main/scala/Bar.scala -# second iteration -#> compile -# check if there are only two compile iterations performed -> check-number-of-compiler-iterations 2 diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/A.scala deleted file mode 100644 index 08c21e380..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait A { - type S[_] -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/B.scala deleted file mode 100644 index c6fa33d89..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait B extends A { - type F = S[Int] -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/changes/A.scala deleted file mode 100644 index 7d5c095b4..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/changes/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait A { - type S -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/test deleted file mode 100644 index 3f5a5c7e3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/abstract-type/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -# remove type arguments from S -$ copy-file changes/A.scala A.scala - -# Both A.scala and B.scala should be recompiled, producing a compile error --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/A1.scala deleted file mode 100644 index a58c253c0..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/A1.scala +++ /dev/null @@ -1,6 +0,0 @@ -package example - -object A -{ - val x: Int = 3 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/A2.scala deleted file mode 100644 index 48ac8e5b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/A2.scala +++ /dev/null @@ -1,6 +0,0 @@ -package example - -object A -{ - val x: Int = B.y -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/A3.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/A3.scala deleted file mode 100644 index ec450b67e..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/A3.scala +++ /dev/null @@ -1,6 +0,0 @@ -package example - -object A -{ - val x: String = B.y -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/B1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/B1.scala deleted file mode 100644 index 9b5cc4ee9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/B1.scala +++ /dev/null @@ -1,6 +0,0 @@ -package example - -object B -{ - val y: String = "4" -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/B2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/B2.scala deleted file mode 100644 index fc8c53c9c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/changes/B2.scala +++ /dev/null @@ -1,6 +0,0 @@ -package example - -object B -{ - val y: Int = 5 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/test deleted file mode 100644 index a1ab31849..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/added/test +++ /dev/null @@ -1,28 +0,0 @@ -# This test checks that when a source file included in a partial recompilation adds a dependency on -# a file not included in the partial recompilation, the dependency is properly recorded. - -# B and A are independent, so both should compile successfully -$ copy-file changes/A1.scala src/main/scala/A.scala -$ copy-file changes/B1.scala src/main/scala/B.scala -> compile - - -# A now depends on B and to check that it was recompiled, we mismatch the types, which should fail -$ copy-file changes/A2.scala src/main/scala/A.scala --> compile - - -# We now correct the type so that it compiles successfully and this should introduce a dependency from A to B -$ copy-file changes/A3.scala src/main/scala/A.scala -> compile - - -# If the dependency from A to B was properly introduced, changing the type of B.y to Int should make -# the following statement in A a compiler error: -# val x: String = B.y -$ copy-file changes/B2.scala src/main/scala/B.scala --> compile - -# verify this was the correct result by doing a clean+compile -> clean --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/A.scala deleted file mode 100644 index fe6a784a4..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/A.scala +++ /dev/null @@ -1,6 +0,0 @@ -abstract class A { - type T - object X { - def foo(x: T): T = x - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/B.scala deleted file mode 100644 index 60059966f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -class B extends A { - type T = Int -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/C.scala deleted file mode 100644 index 3753dbeec..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/C.scala +++ /dev/null @@ -1 +0,0 @@ -object C extends B diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/D.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/D.scala deleted file mode 100644 index ace241491..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/D.scala +++ /dev/null @@ -1,3 +0,0 @@ -object D { - C.X.foo(12) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/changes/B2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/changes/B2.scala deleted file mode 100644 index 18f3eefdd..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/changes/B2.scala +++ /dev/null @@ -1,3 +0,0 @@ -class B extends A { - type T = String -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/test deleted file mode 100644 index 176a86399..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-a/test +++ /dev/null @@ -1,3 +0,0 @@ -> compile -$ copy-file changes/B2.scala B.scala --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/A.scala deleted file mode 100644 index f4ae0b78d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/A.scala +++ /dev/null @@ -1,7 +0,0 @@ -abstract class A { - type T <: S - type S - object X { - def foo: T = null.asInstanceOf[T] - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/B.scala deleted file mode 100644 index f97007480..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -class B extends A { - type S <: Int -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/C.scala deleted file mode 100644 index 3753dbeec..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/C.scala +++ /dev/null @@ -1 +0,0 @@ -object C extends B diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/D.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/D.scala deleted file mode 100644 index ec333ca60..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/D.scala +++ /dev/null @@ -1,3 +0,0 @@ -object D { - val x: Int = C.X.foo -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/changes/B2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/changes/B2.scala deleted file mode 100644 index f8fa3ad03..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/changes/B2.scala +++ /dev/null @@ -1,3 +0,0 @@ -class B extends A { - type S <: String -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/test deleted file mode 100644 index 176a86399..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/as-seen-from-b/test +++ /dev/null @@ -1,3 +0,0 @@ -> compile -$ copy-file changes/B2.scala B.scala --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/A.scala deleted file mode 100644 index 1d3a976a8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - def `=` = 3 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/B.scala deleted file mode 100644 index 03d8769fd..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B extends dotty.runtime.LegacyApp { - println(A.`=`) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/build.sbt deleted file mode 100644 index 8a38ef414..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/build.sbt +++ /dev/null @@ -1 +0,0 @@ -incOptions := incOptions.value.withNameHashing(true) diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/changes/A.scala deleted file mode 100644 index b473714fa..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/changes/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - def asdf = 3 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/test deleted file mode 100644 index d4d386615..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/backtick-quoted-names/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -# rename def with symbolic name (`=`) -$ copy-file changes/A.scala A.scala - -# Both A.scala and B.scala should be recompiled, producing a compile error --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/changes/Break.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/changes/Break.scala deleted file mode 100644 index 88d8ef9a3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/changes/Break.scala +++ /dev/null @@ -1 +0,0 @@ -object Break \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/dep/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/dep/A.scala deleted file mode 100644 index 91d3855f6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/dep/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - val x = 3 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/project/P.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/project/P.scala deleted file mode 100644 index d5d84e5a4..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/project/P.scala +++ /dev/null @@ -1,10 +0,0 @@ -import sbt._ -import Keys._ - -object B extends Build -{ - lazy val dep = Project("dep", file("dep")) - lazy val use = Project("use", file("use")) settings( - unmanagedJars in Compile <+= packageBin in (dep, Compile) map Attributed.blank - ) -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/test deleted file mode 100644 index 058c5492c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/test +++ /dev/null @@ -1,6 +0,0 @@ -# done this way because last modified times often have ~1s resolution -> use/package -$ sleep 2000 - -$ copy-file changes/Break.scala dep/A.scala --> use/compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/use/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/use/B.scala deleted file mode 100644 index 5f371ab41..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/binary/use/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { - val y = A.x -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/A.scala deleted file mode 100644 index 46ec286ff..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A -{ - def x(i: => String) = () -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/B.scala deleted file mode 100644 index a06f3a186..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B -{ - val x = A.x("3") -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/changes/A.scala deleted file mode 100644 index 0d12dd477..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/changes/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A -{ - def x(i: Function0[String]) = () -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/test deleted file mode 100644 index 4306d3bcc..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/by-name/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -# change => Int to Function0 -$ copy-file changes/A.scala A.scala - -# Both A.scala and B.scala need to be recompiled because the type has changed --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/Use.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/Use.scala deleted file mode 100644 index fe9e21714..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/Use.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Use { - val x = A.x -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/actual/A.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/actual/A.java deleted file mode 100644 index 693c5b932..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/actual/A.java +++ /dev/null @@ -1,4 +0,0 @@ -// this is the source for the compiled class in a.jar -public class A { - public static final int x = 3; -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/actual/a.jar b/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/actual/a.jar deleted file mode 100644 index 5c63ca5e9..000000000 Binary files a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/actual/a.jar and /dev/null differ diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/build.sbt deleted file mode 100644 index d23dff705..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/build.sbt +++ /dev/null @@ -1,10 +0,0 @@ -import complete.DefaultParsers._ - -val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") - -checkIterations := { - val expected: Int = (Space ~> NatBasic).parsed - val actual: Int = (compile in Compile).value.compilations.allCompilations.size - assert(expected == actual, s"Expected $expected compilations, got $actual") -} - diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/lib/a.jar b/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/lib/a.jar deleted file mode 120000 index 9fa4156a8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/lib/a.jar +++ /dev/null @@ -1 +0,0 @@ -../actual/a.jar \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/test deleted file mode 100644 index 13caf4871..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/canon/test +++ /dev/null @@ -1,10 +0,0 @@ -# Tests that classpath entries that are different than their canonical representation are -# handled properly. In particular, a symlink from lib/a.jar to lib/../actual/a.jar.0 is -# available on the classpath and read by scalac. scalac 2.10.x does not interpret .jar.0 -# as a jar, so if sbt passes the canonical path, it will not be read. -# This also verifies that compilation does not get repeatedly triggered by a mismatch in -# paths. - -> compile -> compile -> checkIterations 1 \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/build.sbt deleted file mode 100644 index f44ca0862..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/build.sbt +++ /dev/null @@ -1,9 +0,0 @@ -TaskKey[Unit]("output-empty") <<= classDirectory in Configurations.Compile map { outputDirectory => - def classes = (outputDirectory ** "*.class").get - if(!classes.isEmpty) sys.error("Classes existed:\n\t" + classes.mkString("\n\t")) else () -} - -// apparently Travis CI stopped allowing long file names -// it fails with the default setting of 255 characters so -// we have to set lower limit ourselves -scalacOptions ++= Seq("-Xmax-classfile-name", "240") diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/For.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/For.scala deleted file mode 100644 index 5d1b8c4db..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/For.scala +++ /dev/null @@ -1,44 +0,0 @@ -package somereallylongpackagenamethatwilltestsbtsanalyzer_somereallylongpackagenamethatwilltestsbtsanalyzer.somereallylongpackagenamethatwilltestsbtsanalyzer - -object T -{ - val y = List(3) - for(a <- y; - b <- y; - c <- y; - d <- y; - e <- y; - f <- y; - g <- y; - h <- y; - i <- y; - j <- y; - k <- y; - l <- y; - m <- y; - n <- y; - o <- y; - p <- y; - q <- y; - r <- y; - s <- y; - t <- y; - u <- y; - v <- y; - w <- y; - x <- y; - yx <- y; - z <- y; - aa <- y; - bb <- y; - cc <- y; - dd <- y; - ee <- y; - ff <- y; - gg <- y; - hh<- y; - ii <- y; - jj <- y; - kk <- y - ) yield a + b + c + d + e -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/Nested.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/Nested.scala deleted file mode 100644 index 798868d72..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/Nested.scala +++ /dev/null @@ -1,41 +0,0 @@ -package test - -object TopLevelModule1 -{ - object InnerModule1 - { - object InnerModule2 - { - trait Z { def q = 3 } - def x = 3 - } - } - class InnerClass1 - { - class InnerClass2 - { - val z = new TopLevelModule1.InnerClass2 - } - object InnerModule3 - { - val y = new TopLevel1 with InnerModule1.InnerModule2.Z { val x = 4 } - } - } - class InnerClass2 -} -class TopLevel1 -{ - object Inner1_1 -} -object TopLevel1 -{ - class Inner1_2 - object Inner1_2 -} - -object TopLevel2 -class TopLevel2 - -object TopLevel3 - -class TopLevel4 \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/test deleted file mode 100644 index e2abf578b..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/compactify/test +++ /dev/null @@ -1,8 +0,0 @@ -# Marked pending due to https://github.com/sbt/sbt/issues/1553 - -> output-empty -> compile --> output-empty -$ delete src/main/scala/For.scala src/main/scala/Nested.scala -> compile -> output-empty \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/changes/A1.scala deleted file mode 100644 index f67b6f474..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/changes/A1.scala +++ /dev/null @@ -1 +0,0 @@ -object A { final val x = 1 } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/changes/A2.scala deleted file mode 100644 index 4f9396f13..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/changes/A2.scala +++ /dev/null @@ -1 +0,0 @@ -object A { final val x = 2 } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/changes/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/changes/B.scala deleted file mode 100644 index 058527993..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/changes/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B -{ - def main(args: Array[String]) = assert(args(0).toInt == A.x ) -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/test deleted file mode 100644 index 7a5ae5879..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/constants/test +++ /dev/null @@ -1,12 +0,0 @@ -# Marked as pending, see https://github.com/sbt/sbt/issues/1543 -# Tests if source dependencies are tracked properly -# for compile-time constants (like final vals in top-level objects) -# see https://issues.scala-lang.org/browse/SI-7173 for details -# why compile-time constants can be tricky to track due to early inlining - -$ copy-file changes/B.scala B.scala - -$ copy-file changes/A1.scala A.scala -> run 1 -$ copy-file changes/A2.scala A.scala -> run 2 diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/A.scala deleted file mode 100644 index 50baa662f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/A.scala +++ /dev/null @@ -1,5 +0,0 @@ -object A -{ - def x(f: String, g: Int): Int = g - def x(f: Int, g: Int = 3): Int = g -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/B.scala deleted file mode 100644 index 59a7159f9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B -{ - val y = A.x(5) -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/changes/A.scala deleted file mode 100644 index b59015306..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/changes/A.scala +++ /dev/null @@ -1,5 +0,0 @@ -object A -{ - def x(f: String, g: Int = 3): Int = g - def x(f: Int, g: Int): Int = g -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/test deleted file mode 100644 index 1e674f8f6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/default-params/test +++ /dev/null @@ -1,9 +0,0 @@ -> compile - -# switch which 'x' method has a default for the second parameter in A -# this change is selected because of the encoding of default method names -$ copy-file changes/A.scala A.scala - -# Both A.scala and B.scala need to be recompiled because the parameter needs to be explicitly provided -# and it should be a compile error --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/changes/A.scala deleted file mode 100644 index 264775513..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/changes/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -package clear - -object A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/changes/A2.scala deleted file mode 100644 index 264775513..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/changes/A2.scala +++ /dev/null @@ -1,3 +0,0 @@ -package clear - -object A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/changes/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/changes/B.scala deleted file mode 100644 index 50df7082c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/changes/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -package clear - -object B diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/test deleted file mode 100644 index 531553bb5..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/dup-class/test +++ /dev/null @@ -1,6 +0,0 @@ -$ copy-file changes/A.scala A.scala -> compile -$ copy-file changes/A2.scala B.scala --> compile -$ copy-file changes/B.scala B.scala -> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/changes/A.scala deleted file mode 100644 index 0c52ad165..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/changes/A.scala +++ /dev/null @@ -1,6 +0,0 @@ -package a - -object A -{ - def x = "A" -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/changes/A2.scala deleted file mode 100644 index 2e85f9808..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/changes/A2.scala +++ /dev/null @@ -1,6 +0,0 @@ -/*package a - -object A -{ - def x = "A" -}*/ \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/changes/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/changes/B.scala deleted file mode 100644 index 7865ddcec..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/changes/B.scala +++ /dev/null @@ -1,6 +0,0 @@ -package a - -class B -{ - def x = A.x -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/test deleted file mode 100644 index d0f0b25a8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-a/test +++ /dev/null @@ -1,19 +0,0 @@ -$ copy-file changes/A.scala src/main/scala/A.scala -> compile - -$ copy-file changes/A2.scala src/main/scala/A.scala -> compile - -$ copy-file changes/B.scala src/main/scala/B.scala --> compile - -$ copy-file changes/A.scala src/main/scala/A.scala -> compile - -$ delete src/main/scala/B.scala -$ copy-file changes/A2.scala src/main/scala/A.scala -> compile - -$ copy-file changes/A.scala src/main/scala/A.scala -$ copy-file changes/B.scala src/main/scala/B.scala -> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/changes/Define1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/changes/Define1.scala deleted file mode 100644 index 9317a8425..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/changes/Define1.scala +++ /dev/null @@ -1,3 +0,0 @@ -package a.pkgName - -object Test diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/changes/Define2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/changes/Define2.scala deleted file mode 100644 index ed2d7ae8a..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/changes/Define2.scala +++ /dev/null @@ -1,3 +0,0 @@ -package pkgName - -object Test diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/changes/Use.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/changes/Use.scala deleted file mode 100644 index b4d87c711..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/changes/Use.scala +++ /dev/null @@ -1,7 +0,0 @@ -package a - -import pkgName.Test - -object Use { - val x = Test -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/test deleted file mode 100644 index 718e7f125..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/empty-package/test +++ /dev/null @@ -1,12 +0,0 @@ -$ copy-file changes/Define1.scala Define.scala -$ copy-file changes/Use.scala Use.scala -> compile - -$ copy-file changes/Define2.scala Define.scala -> compile - -$ delete Define.scala --> compile - -$ copy-file changes/Define1.scala Define.scala -> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/A.scala deleted file mode 100644 index 63b240ac6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - def x: List[Int] = List(3) -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/B.scala deleted file mode 100644 index 1c636101f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { - val y: List[Int] = A.x -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/changes/A.scala deleted file mode 100644 index c1bceae79..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/changes/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - def x: List[String] = List("3") -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/test deleted file mode 100644 index aaca5a2e3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/erasure/test +++ /dev/null @@ -1,4 +0,0 @@ -> compile - -$ copy-file changes/A.scala A.scala --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/A1.scala deleted file mode 100644 index 210adf865..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/A1.scala +++ /dev/null @@ -1 +0,0 @@ -object A { val x = 1 } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/A2.scala deleted file mode 100644 index 799400c8c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/A2.scala +++ /dev/null @@ -1 +0,0 @@ -object A { val x = 2 } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/A3.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/A3.scala deleted file mode 100644 index 25fb93965..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/A3.scala +++ /dev/null @@ -1 +0,0 @@ -object A { def x = 3 } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/B.scala deleted file mode 100644 index 058527993..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B -{ - def main(args: Array[String]) = assert(args(0).toInt == A.x ) -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/build2.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/build2.sbt deleted file mode 100644 index 0f5735bc8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/changes/build2.sbt +++ /dev/null @@ -1 +0,0 @@ -exportJars := true \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/project/Build.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/project/Build.scala deleted file mode 100644 index 4a783acbe..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/project/Build.scala +++ /dev/null @@ -1,7 +0,0 @@ -import sbt._ - -object Build extends Build -{ - lazy val root = Project("root", file(".")) dependsOn(a) - lazy val a = Project("a", file("a")) -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/test deleted file mode 100644 index e06ce1ee5..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/export-jars/test +++ /dev/null @@ -1,27 +0,0 @@ -$ copy-file changes/B.scala B.scala - -$ copy-file changes/A1.scala a/A.scala -> run 1 -$ copy-file changes/A2.scala a/A.scala - -# done this way because last modified times often have ~1s resolution -$ sleep 2000 -> run 2 -$ copy-file changes/A3.scala a/A.scala - -$ sleep 2000 -> run 3 - -$ copy-file changes/build2.sbt build.sbt -> reload - -$ copy-file changes/A1.scala a/A.scala -> run 1 -$ copy-file changes/A2.scala a/A.scala - -$ sleep 2000 -> run 2 -$ copy-file changes/A3.scala a/A.scala - -$ sleep 2000 -> run 3 diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/A.scala deleted file mode 100644 index ad9931075..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/A.scala +++ /dev/null @@ -1,5 +0,0 @@ -import sun.net.spi.nameservice.dns.DNSNameService - -object A { - val x = new DNSNameService -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/build.sbt deleted file mode 100644 index 8aaec76ec..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/build.sbt +++ /dev/null @@ -1,9 +0,0 @@ -import complete.DefaultParsers._ - -val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") - -checkIterations := { - val expected: Int = (Space ~> NatBasic).parsed - val actual: Int = (compile in Compile).value.compilations.allCompilations.size - assert(expected == actual, s"Expected $expected compilations, got $actual") -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/test deleted file mode 100644 index 2b01a3de7..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/ext/test +++ /dev/null @@ -1,7 +0,0 @@ -# initial compilation -> checkIterations 1 - -# no further compilation should be necessary, since nothing changed -# previously, a dependency on a jar in lib/ext/ would -# always force recompilation -> checkIterations 1 \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/A.scala deleted file mode 100644 index 64675b5e3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A { - val x = 3 - val z: Int = B.y -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/B.scala deleted file mode 100644 index 756aeacf6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { - val y = A.x -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/changes/A.scala deleted file mode 100644 index b2c9dfb26..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/changes/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A { - val x = "3" - val z: String = B.y -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/pending b/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/pending deleted file mode 100644 index 80c8ec9bf..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/pending +++ /dev/null @@ -1,5 +0,0 @@ -> compile - -$ copy-file changes/A.scala A.scala - -> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/false-error/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/fbounded-existentials/fbounds.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/fbounded-existentials/fbounds.scala deleted file mode 100644 index 60fe40879..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/fbounded-existentials/fbounds.scala +++ /dev/null @@ -1,10 +0,0 @@ -class Dep { - // The API representation for `bla`'s result type contains a cycle - // (an existential's type variable's bound is the existential type itself) - // This results in a stack overflow while showing the API diff. - // Note that the actual result type in the compiler is not cyclic - // (the f-bounded existential for Comparable is truncated) - def bla(c: Boolean) = if (c) new Value else "bla" -} - -class Value extends java.lang.Comparable[Value] { def compareTo(that: Value): Int = 1 } \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/fbounded-existentials/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/fbounded-existentials/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/fbounded-existentials/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/fbounded-existentials/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/fbounded-existentials/test deleted file mode 100644 index 5df2af1f3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/fbounded-existentials/test +++ /dev/null @@ -1 +0,0 @@ -> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/A.scala deleted file mode 100644 index 598d266d4..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/A.scala +++ /dev/null @@ -1,6 +0,0 @@ -class A -{ - implicit def e: E = new E - def x(i: Int)(implicit y: E): String = "" -} -class E \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/B.scala deleted file mode 100644 index 3273cdceb..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B extends A -{ - val y = x(3) -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/changes/A.scala deleted file mode 100644 index 2de2c62ee..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/changes/A.scala +++ /dev/null @@ -1,6 +0,0 @@ -class A -{ - implicit def e: E = new E - def x(i: Int)(y: E): String = "" -} -class E \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/test deleted file mode 100644 index 5a2bcc0f4..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-params/test +++ /dev/null @@ -1,8 +0,0 @@ -> compile - -# make implicit parameters in A.x be explicit -$ copy-file changes/A.scala A.scala - -# Both A.scala and B.scala need to be recompiled because the parameter section is no longer implicit -# and it should be a compile error --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A1.scala deleted file mode 100644 index 5a58c097b..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A1.scala +++ /dev/null @@ -1,2 +0,0 @@ -trait A -object A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A2.scala deleted file mode 100644 index 8a0b629bc..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A2.scala +++ /dev/null @@ -1,4 +0,0 @@ -trait A -object A { - implicit def m[A]: M[A] = ??? -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/B.scala deleted file mode 100644 index c49ed55ad..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/B.scala +++ /dev/null @@ -1,2 +0,0 @@ - -trait B extends A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/C.scala deleted file mode 100644 index 7fd803222..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/C.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test { - implicitly[M[B]] -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/M.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/M.scala deleted file mode 100644 index 9464f4238..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/M.scala +++ /dev/null @@ -1,4 +0,0 @@ -class M[A](a: A) -object M { - implicit def m[A]: M[A] = ??? -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/test deleted file mode 100644 index 701b2c9a5..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/test +++ /dev/null @@ -1,12 +0,0 @@ -# Tests if dependencies on implicit scope are tracked properly -$ copy-file changes/A1.scala A.scala -$ copy-file changes/B.scala B.scala -$ copy-file changes/M.scala M.scala -$ copy-file changes/C.scala C.scala -> compile - -$ copy-file changes/A2.scala A.scala --> compile - -> clean --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/A1.scala deleted file mode 100644 index 7aa91d096..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/A1.scala +++ /dev/null @@ -1 +0,0 @@ -object A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/A2.scala deleted file mode 100644 index 45930d594..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/A2.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - val x = 1 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/B.scala deleted file mode 100644 index 3e5db4c7e..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B { - implicit val x: Ordering[Int] = ??? -} - diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/C.scala deleted file mode 100644 index bdf19dd1d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/changes/C.scala +++ /dev/null @@ -1,6 +0,0 @@ -object C { - import A._, B._ - implicitly[Ordering[Int]] - - def main(args: Array[String]): Unit = () -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/test deleted file mode 100644 index 1b73c1fe6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit-search/test +++ /dev/null @@ -1,9 +0,0 @@ -$ copy-file changes/A1.scala A.scala -$ copy-file changes/B.scala B.scala -$ copy-file changes/C.scala C.scala -> compile --> run - -$ copy-file changes/A2.scala A.scala -> compile --> run diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/A.scala deleted file mode 100644 index 765f66013..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -class A -{ - implicit def x(i: Int): String = i.toString -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/B.scala deleted file mode 100644 index ec0200dfa..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B extends A -{ - val x: String = 3 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/changes/A.scala deleted file mode 100644 index 24f8e4069..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/changes/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -class A -{ - def x(i: Int): String = i.toString -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/test deleted file mode 100644 index 73aaab1d9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/implicit/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -# change A.x to be implicit -$ copy-file changes/A.scala A.scala - -# Both A.scala and B.scala need to be recompiled because a new implicit is available --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/A.scala deleted file mode 100644 index a93bbe535..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -package a - -class A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/B.scala deleted file mode 100644 index 0489f4a26..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/B.scala +++ /dev/null @@ -1 +0,0 @@ -import a.A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/changes/A.scala deleted file mode 100644 index 2a93cdef5..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/changes/A.scala +++ /dev/null @@ -1 +0,0 @@ -package a diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/test deleted file mode 100644 index 7679ba52c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-class/test +++ /dev/null @@ -1,8 +0,0 @@ -> 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-bridge/bridge/src/sbt-test/source-dependencies/import-package/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/A.scala deleted file mode 100644 index 1c94ccf3a..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/A.scala +++ /dev/null @@ -1 +0,0 @@ -package a.b \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/B.scala deleted file mode 100644 index 10ee10d82..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/B.scala +++ /dev/null @@ -1 +0,0 @@ -import a.b \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/changes/A.scala deleted file mode 100644 index d63f93ea4..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/changes/A.scala +++ /dev/null @@ -1 +0,0 @@ -package a \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/pending b/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/pending deleted file mode 100644 index 5dc9851d5..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/pending +++ /dev/null @@ -1,8 +0,0 @@ -> compile - -# shorten the package defined in A from 'a.b' to 'a'. -$ copy-file changes/A.scala A.scala - -# 'import a.b' should now fail in B.scala -# succeeds because scalac doesn't track this dependency --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/import-package/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/A.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/A.java deleted file mode 100644 index 894125a7e..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/A.java +++ /dev/null @@ -1 +0,0 @@ -class A implements B.T, E {} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/B.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/B.java deleted file mode 100644 index 6b54edc7d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/B.java +++ /dev/null @@ -1,11 +0,0 @@ -public class B { - static interface T extends C {} - - // not public, so this shouldn't be tracked as an inherited dependency - private class Q implements E {} - - public void x(int i) { - // not public, not an inherited dependency - D j = new D() {}; - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/C.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/C.java deleted file mode 100644 index 6c06f4033..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/C.java +++ /dev/null @@ -1 +0,0 @@ -interface C extends D {} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/D.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/D.java deleted file mode 100644 index 9455ef5b0..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/D.java +++ /dev/null @@ -1 +0,0 @@ -interface D extends G.P {} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/E.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/E.java deleted file mode 100644 index d5e4d6517..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/E.java +++ /dev/null @@ -1 +0,0 @@ -public interface E {} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/F.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/F.java deleted file mode 100644 index e205778d5..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/F.java +++ /dev/null @@ -1,3 +0,0 @@ -public class F { - public C q() { return null; } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/G.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/G.java deleted file mode 100644 index ed3429f8c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/G.java +++ /dev/null @@ -1,3 +0,0 @@ -public class G { - static interface P extends J {} -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/J.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/J.java deleted file mode 100644 index 8aeeb05b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/J.java +++ /dev/null @@ -1 +0,0 @@ -public interface J {} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/build.sbt deleted file mode 100644 index c25b54921..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/build.sbt +++ /dev/null @@ -1,30 +0,0 @@ -// this test is specific to the old incremental compilation algorithm -incOptions := incOptions.value.withNameHashing(false) - -lazy val verifyDeps = taskKey[Unit]("verify inherited dependencies are properly extracted") - -verifyDeps := { - val a = compile.in(Compile).value - same(a.relations.publicInherited.internal.forwardMap, expectedDeps.forwardMap) -} - -lazy val expected = Seq( - "A" -> Seq("C", "D", "E", "G", "J"), - "B" -> Seq("C", "D", "G", "J"), - "C" -> Seq("D", "G", "J"), - "D" -> Seq("G", "J"), - "E" -> Seq(), - "F" -> Seq(), - "G" -> Seq("J"), - "J" -> Seq() -) -lazy val pairs = - expected.map { case (from,tos) => - (toFile(from), tos.map(toFile)) - } -lazy val expectedDeps = (Relation.empty[File,File] /: pairs) { case (r, (x,ys)) => r + (x,ys) } -def toFile(s: String) = file(s + ".java").getAbsoluteFile - -def same[T](x: T, y: T): Unit = { - assert(x == y, s"\nActual: $x, \nExpected: $y") -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/test deleted file mode 100644 index e5d477601..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited-deps-java/test +++ /dev/null @@ -1 +0,0 @@ -> verifyDeps diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/A.scala deleted file mode 100644 index 9de61dd5f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/A.scala +++ /dev/null @@ -1,7 +0,0 @@ - -trait Equal[-A] { - def equal(a1: A, a2: A): Boolean -} -object Test { - implicit def TraversableEqual[CC[X] <: collection.TraversableLike[X, CC[X]] with Traversable[X], A: Equal]: Equal[CC[A]] = error("") -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/build.sbt deleted file mode 100644 index a5982f901..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/build.sbt +++ /dev/null @@ -1,7 +0,0 @@ -name := "test" - -TaskKey[Unit]("check-same") <<= compile in Configurations.Compile map { analysis => - analysis.apis.internal foreach { case (_, api) => - assert( xsbt.api.SameAPI(api.api, api.api) ) - } -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/test deleted file mode 100644 index 8434347c5..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inherited_type_params/test +++ /dev/null @@ -1 +0,0 @@ -> check-same \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/A.scala deleted file mode 100644 index e889eef79..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - def get: Int = 1 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/C.scala deleted file mode 100644 index caeb61535..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/C.scala +++ /dev/null @@ -1,5 +0,0 @@ -object C { - def main(args: Array[String]): Unit = { - val i: Int = B.getInline - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/changes/B1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/changes/B1.scala deleted file mode 100644 index 5685152b3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/changes/B1.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B { - @inline def getInline: Int = - A.get -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/changes/B2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/changes/B2.scala deleted file mode 100644 index 1de104357..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/changes/B2.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B { - @inline def getInline: Double = - A.get -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/changes/B3.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/changes/B3.scala deleted file mode 100644 index 991bd17b8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/changes/B3.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B { - @inline def getInline: Int = - sys.error("This is an expected failure when running C") -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/test deleted file mode 100644 index 56fdb0486..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/inline/test +++ /dev/null @@ -1,14 +0,0 @@ -$ copy-file changes/B1.scala B.scala -> compile - -$ copy-file changes/B2.scala B.scala -# Compilation of C.scala should fail because B.getInline now has type Double instead of Int --> compile - -$ copy-file changes/B1.scala B.scala -> run - -$ copy-file changes/B3.scala B.scala -# The body of B.getInline was changed so C.scala should be recompiled -# If it was recompiled, run should fail since B.getInline now throws an exception --> run diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/A.scala deleted file mode 100644 index 392db0805..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/A.scala +++ /dev/null @@ -1,6 +0,0 @@ -object A -{ - def x = 3 - //def x: String = 3 - //def x: String = "3" -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/B.scala deleted file mode 100644 index 1a1e0c06f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B -{ - val y: Int = A.x -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A2.scala deleted file mode 100644 index ba9953954..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A2.scala +++ /dev/null @@ -1,6 +0,0 @@ -object A -{ - //def x = 3 - def x: String = 3 - //def x: String = "3" -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A3.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A3.scala deleted file mode 100644 index f020041ea..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A3.scala +++ /dev/null @@ -1,6 +0,0 @@ -object A -{ - //def x = 3 - //def x: String = 3 - def x: String = "3" -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/test deleted file mode 100644 index e3016a9c6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/intermediate-error/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -$ copy-file changes/A2.scala A.scala --> compile - -$ copy-file changes/A3.scala A.scala --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/Outer.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/Outer.java deleted file mode 100644 index 0cf8276a9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/Outer.java +++ /dev/null @@ -1 +0,0 @@ -public class Outer { private class T extends Thread {} } \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/build.sbt deleted file mode 100644 index 1b1ddefb9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/build.sbt +++ /dev/null @@ -1 +0,0 @@ -incOptions := incOptions.value.withNameHashing(true).withApiDebug(true) diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/test deleted file mode 100644 index 5df2af1f3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/test +++ /dev/null @@ -1 +0,0 @@ -> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/A.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/A.java deleted file mode 100644 index c84f997f4..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/A.java +++ /dev/null @@ -1,6 +0,0 @@ -package a; - -public class A -{ - public static int x() { return 3; } -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/A2.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/A2.java deleted file mode 100644 index 36270f805..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/A2.java +++ /dev/null @@ -1,6 +0,0 @@ -package a.b; - -public class A -{ - public static int x() { return 3; } -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/B1.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/B1.java deleted file mode 100644 index ec9a67e1a..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/B1.java +++ /dev/null @@ -1,6 +0,0 @@ -package a.b; - -public class B -{ - public int y() { return 3; } -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/B2.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/B2.java deleted file mode 100644 index 551900114..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/B2.java +++ /dev/null @@ -1,6 +0,0 @@ -package a.b; - -public class B -{ - public int y() { return a.A.x(); } -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/B3.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/B3.java deleted file mode 100644 index 1ec729b74..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/changes/B3.java +++ /dev/null @@ -1,6 +0,0 @@ -package a.b; - -public class B -{ - public static void main(String[] args) {} -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/test deleted file mode 100644 index 9dac40735..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-basic/test +++ /dev/null @@ -1,45 +0,0 @@ -# Basic test for Java dependency tracking -> 'eval System.setProperty("xsbt.inc.debug", "true")' - -# A is a basic Java file with no dependencies. Just a basic check for Java compilation -$ copy-file changes/A.java src/main/java/a/A.java -> compile - -# A2 is a basic Java file with no dependencies. This is added to verify -# that classes are properly mapped back to their source. -# (There are two files named A.java now, one in a/ and one in a/b) -$ copy-file changes/A2.java src/main/java/a/b/A.java -> compile - -# This adds B, another basic Java file with no dependencies -$ copy-file changes/B1.java src/main/java/a/b/B.java -> compile - -# Now, modify B so that it depends on a.A -# This ensures that dependencies on a source not included in the compilation -# (a/A.java has not changed) are tracked -$ copy-file changes/B2.java src/main/java/a/b/B.java -> compile - -# Remove a.b.A and there should be no problem compiling, since B should -# have recorded a dependency on a.A and not a.b.A -$ delete src/main/java/a/b/A.java -> compile - -# Remove a.A and B should be recompiled if the dependency on a.A was properly -# recorded. This should be a compile error, since we haven't updated B to not -# depend on A -$ delete src/main/java/a/A.java --> compile - -# Replace B with a new B that doesn't depend on a.A and so it should compile -# It shouldn't run though, because it doesn't have a main method -$ copy-file changes/B1.java src/main/java/a/b/B.java -> compile --> run - - -# Replace B with a new B that has a main method and should therefore run -# if the main method was properly detected -$ copy-file changes/B3.java src/main/java/a/b/B.java -> run \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/A.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/A.java deleted file mode 100644 index 7ac3d1a41..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/A.java +++ /dev/null @@ -1,7 +0,0 @@ - -public class A { - class B { - class C { - } - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/DefaultTreeTableSorter.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/DefaultTreeTableSorter.java deleted file mode 100644 index eec11ccea..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/DefaultTreeTableSorter.java +++ /dev/null @@ -1,15 +0,0 @@ -import javax.swing.DefaultRowSorter; -import javax.swing.tree.TreeModel; -import javax.swing.tree.TreePath; - -public class DefaultTreeTableSorter - implements TreeTableSorter, TreeTableSorter.SortCycle { - - public class NodeSorter extends DefaultRowSorter implements SortCycle { - - protected TreeTableWrapper getTreeTableModelWrapper() { - return (TreeTableWrapper)getModelWrapper(); - } - protected abstract class TreeTableWrapper extends ModelWrapper {} - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeColumnModel.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeColumnModel.java deleted file mode 100644 index bd66a91b8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeColumnModel.java +++ /dev/null @@ -1 +0,0 @@ -public interface TreeColumnModel {} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeTableSorter.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeTableSorter.java deleted file mode 100644 index 08b9f38f5..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeTableSorter.java +++ /dev/null @@ -1,5 +0,0 @@ -import javax.swing.tree.TreeModel; - -public interface TreeTableSorter { - public interface SortCycle {} -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/test deleted file mode 100644 index 125967284..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-generic-workaround/test +++ /dev/null @@ -1,3 +0,0 @@ -# generic signatures fails to parse due to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6476261 -# tests workaround for https://github.com/sbt/sbt/issues/1035 -> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/JJ.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/JJ.java deleted file mode 100644 index 18d52ae30..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/JJ.java +++ /dev/null @@ -1,5 +0,0 @@ -public class JJ { - public static void main(String[] args) { - new S().foo("ahoy"); - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/build.sbt deleted file mode 100644 index 522224a38..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/build.sbt +++ /dev/null @@ -1 +0,0 @@ -compileOrder := CompileOrder.Mixed \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/changes/S1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/changes/S1.scala deleted file mode 100644 index 486f40262..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/changes/S1.scala +++ /dev/null @@ -1,3 +0,0 @@ -class S { - def foo(s:String): Unit = println("I am foo") -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/changes/S2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/changes/S2.scala deleted file mode 100644 index 63bc37d77..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/changes/S2.scala +++ /dev/null @@ -1,3 +0,0 @@ -class S { - def foo2(s:String): Unit = println("I am foo") -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/changes/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/changes/build.sbt deleted file mode 100644 index f4f9b5bf7..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/changes/build.sbt +++ /dev/null @@ -1 +0,0 @@ -compileOrder := CompileOrder.ScalaThenJava \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/test deleted file mode 100644 index 60402f1e6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-mixed/test +++ /dev/null @@ -1,13 +0,0 @@ -$ copy-file changes/S1.scala S.scala -> compile -$ copy-file changes/S2.scala S.scala --> compile - -> clean -$ copy-file changes/build.sbt build.sbt -> reload - -$ copy-file changes/S1.scala S.scala -> compile -$ copy-file changes/S2.scala S.scala --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/changes/J1.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/changes/J1.java deleted file mode 100644 index cf042ce22..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/changes/J1.java +++ /dev/null @@ -1,4 +0,0 @@ -public class J -{ - public static final Integer x = 3; -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/changes/J2.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/changes/J2.java deleted file mode 100644 index 8ff2e24c6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/changes/J2.java +++ /dev/null @@ -1,4 +0,0 @@ -public class J -{ - public static final String x = "3"; -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/changes/S.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/changes/S.scala deleted file mode 100644 index 45436972b..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/changes/S.scala +++ /dev/null @@ -1,4 +0,0 @@ -object S -{ - val y: Int = J.x -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/test deleted file mode 100644 index 42890ca74..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/java-static/test +++ /dev/null @@ -1,24 +0,0 @@ -# When a Java class is loaded from a class file and not parsed from a source file, scalac reports -# the statics as an object without a file and so the Analyzer must know to look for the -# object's linked class. -# This test verifies this happens. -# The test compiles a Java class with a static field. -# It then adds a Scala object that references the static field. Because the object only depends on a -# static member and because the Java source is not included in the compilation (since it didn't change), -# this triggers the special case above. - -# add and compile the Java source -$ copy-file changes/J1.java src/main/java/J.java -> compile - -# add and compile the Scala source -$ copy-file changes/S.scala src/main/scala/S.scala -> compile - -# change the Java source so that a compile error should occur if S.scala is also recompiled (which will happen if the dependency was properly recorded) -$ copy-file changes/J2.java src/main/java/J.java --> compile - -# verify it should have failed by doing a full recompilation -> clean --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/A.scala deleted file mode 100644 index fc3870856..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -class A -{ - val x = 3 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/B.scala deleted file mode 100644 index 3ddfddb61..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -class B extends A -{ - override val x = 3 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/changes/A.scala deleted file mode 100644 index 805901802..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/changes/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -class A -{ - lazy val x = 3 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/test deleted file mode 100644 index f870aaef3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/lazy-val/test +++ /dev/null @@ -1,6 +0,0 @@ -> compile - -# replace val x with lazy val x -$ copy-file changes/A.scala A.scala - --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/A.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/A.java deleted file mode 100644 index 2bce1ee78..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/A.java +++ /dev/null @@ -1,3 +0,0 @@ -public class A { - public Integer x() { return 3; } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/B.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/B.java deleted file mode 100644 index 7e9bb5574..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/B.java +++ /dev/null @@ -1 +0,0 @@ -public class B extends A {} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/C.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/C.java deleted file mode 100644 index 042c2b2a3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/C.java +++ /dev/null @@ -1 +0,0 @@ -public class C extends B {} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/D.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/D.java deleted file mode 100644 index 03e6ad740..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/D.java +++ /dev/null @@ -1,4 +0,0 @@ -public class D { - public static final C c = new C(); - public static String x() { return c.x().toString(); } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/E.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/E.java deleted file mode 100644 index d28336ed5..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/E.java +++ /dev/null @@ -1,5 +0,0 @@ -public class E { - public static void main(String[] args) { - assert(D.x() == "3"); - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/build.sbt deleted file mode 100644 index d23dff705..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/build.sbt +++ /dev/null @@ -1,10 +0,0 @@ -import complete.DefaultParsers._ - -val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") - -checkIterations := { - val expected: Int = (Space ~> NatBasic).parsed - val actual: Int = (compile in Compile).value.compilations.allCompilations.size - assert(expected == actual, s"Expected $expected compilations, got $actual") -} - diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/changes/A2.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/changes/A2.java deleted file mode 100644 index 610c20407..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/changes/A2.java +++ /dev/null @@ -1,3 +0,0 @@ -public class A { - public String x() { return "3"; } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/test deleted file mode 100644 index 85a7c97e9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv-java/test +++ /dev/null @@ -1,9 +0,0 @@ -# 1 iteration from initial full compile -> run -$ copy-file changes/A2.java A.java - -# 1 iteration for the initial changes -# 1 iteration to recompile all descendents and direct dependencies -# no further iteration, because APIs of directs don't change -> run -> checkIterations 3 diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/A.scala deleted file mode 100644 index a4f92f4fa..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -class A { - def x = 3 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/B.scala deleted file mode 100644 index a18aec3db..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/B.scala +++ /dev/null @@ -1 +0,0 @@ -class B extends A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/C.scala deleted file mode 100644 index f6f5bb28f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/C.scala +++ /dev/null @@ -1 +0,0 @@ -class C extends B diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/D.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/D.scala deleted file mode 100644 index 55959c2a9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/D.scala +++ /dev/null @@ -1,4 +0,0 @@ -object D { - val c = new C - def x: String = c.x.toString -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/E.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/E.scala deleted file mode 100644 index 23e0805a0..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/E.scala +++ /dev/null @@ -1,3 +0,0 @@ -object E extends dotty.runtime.LegacyApp { - assert(D.x == "3") -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/build.sbt deleted file mode 100644 index d23dff705..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/build.sbt +++ /dev/null @@ -1,10 +0,0 @@ -import complete.DefaultParsers._ - -val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") - -checkIterations := { - val expected: Int = (Space ~> NatBasic).parsed - val actual: Int = (compile in Compile).value.compilations.allCompilations.size - assert(expected == actual, s"Expected $expected compilations, got $actual") -} - diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/changes/A2.scala deleted file mode 100644 index acab4a1ae..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/changes/A2.scala +++ /dev/null @@ -1,3 +0,0 @@ -class A { - def x = "3" -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/test deleted file mode 100644 index c6df5698e..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/less-inter-inv/test +++ /dev/null @@ -1,9 +0,0 @@ -# 1 iteration from initial full compile -> run -$ copy-file changes/A2.scala A.scala - -# 1 iteration for the initial changes -# 1 iteration to recompile all descendents and direct dependencies -# no further iteration, because APIs of directs don't change -> run -> checkIterations 3 diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/A.scala deleted file mode 100644 index 69399d3fb..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait A { - def x = 3 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/B.scala deleted file mode 100644 index 608b53052..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait B extends A { - override def x = super.x * 2 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/C.scala deleted file mode 100644 index 3fbd747e0..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/C.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait C extends A { - override def x = super.x + 5 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/D.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/D.scala deleted file mode 100644 index 7b46ebf97..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/D.scala +++ /dev/null @@ -1,2 +0,0 @@ -// define the order -trait D extends C with B \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/E.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/E.scala deleted file mode 100644 index f69ea1d51..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/E.scala +++ /dev/null @@ -1,2 +0,0 @@ -// put a level in between D and its concrete class -trait E extends D diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/F.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/F.scala deleted file mode 100644 index 6dda903f5..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/F.scala +++ /dev/null @@ -1,3 +0,0 @@ -object F extends E { - def main(args: Array[String]) = assert(x == args(0).toInt, x) -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/changes/D.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/changes/D.scala deleted file mode 100644 index 84c173887..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/changes/D.scala +++ /dev/null @@ -1 +0,0 @@ -trait D extends B with C diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/test deleted file mode 100644 index e6078ebfb..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/linearization/test +++ /dev/null @@ -1,13 +0,0 @@ -> compile - -# the value of F.x should be 16 -> run 16 - -# modify D.scala so that the linearization changes -$ copy-file changes/D.scala D.scala -# F.x becomes 11 -> compile - -# if F is recompiled, the value of x should be 11, otherwise it will still be 16 -# and this will fail -> run 11 \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/A.scala deleted file mode 100644 index 42afb874d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - def x(zz: Int, yy: Int) = yy - zz -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/B.scala deleted file mode 100644 index 5699c4db8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/B.scala +++ /dev/null @@ -1,7 +0,0 @@ -object B { - def main(args: Array[String]): Unit = - { - val result = A.x(zz = 3, yy = 4) - assert(result == args(0).toInt, result) - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/changes/A.scala deleted file mode 100644 index 04b150525..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/changes/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - def x(yy: Int, zz: Int) = yy - zz -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/test deleted file mode 100644 index 28f1c58d3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/named/test +++ /dev/null @@ -1,16 +0,0 @@ -# named parameters are only in 2.8 -#> ++2.8.0 - -> compile - -# result should be 1 -> run 1 - -# change order of arguments in A.x -$ copy-file changes/A.scala A.scala - -# Recompile -> compile - -# Should still get 1 and not -1 -> run 1 diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A0.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A0.scala deleted file mode 100644 index cc6a53b6a..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A0.scala +++ /dev/null @@ -1,11 +0,0 @@ -package example - -class A { - case class B(x: Int) - def c = B -} -object A { - def main(args: Array[String]): Unit = { - (new A).c - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A1.scala deleted file mode 100644 index e71b1ef17..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A1.scala +++ /dev/null @@ -1,13 +0,0 @@ -package example - -class VC(val self: Int) extends AnyVal - -class A { - case class B(x: VC) - def c = B -} -object A { - def main(args: Array[String]): Unit = { - (new A).c - } -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/test deleted file mode 100644 index 28ed70321..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/nested-case-class/test +++ /dev/null @@ -1,6 +0,0 @@ -$ copy-file changes/A0.scala A.scala -> run - -# The same test case, but involving value classes -$ copy-file changes/A1.scala A.scala -> run diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/changes/A2.scala deleted file mode 100644 index c530efeb4..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/changes/A2.scala +++ /dev/null @@ -1 +0,0 @@ -trait A { val x = (new B).y } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/pending b/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/pending deleted file mode 100644 index 82b078e7d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/pending +++ /dev/null @@ -1,4 +0,0 @@ -> compile - -$ copy-file changes/A2.scala src/main/scala/A.scala --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/A.scala deleted file mode 100644 index d6d4ebdd9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/A.scala +++ /dev/null @@ -1 +0,0 @@ -trait A { val x = "hello" } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/B.scala deleted file mode 100644 index 4fa74512d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/B.scala +++ /dev/null @@ -1 +0,0 @@ -class B extends A { val y = x } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/A1.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/A1.java deleted file mode 100644 index b448538ae..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/A1.java +++ /dev/null @@ -1,2 +0,0 @@ -package a; -public class A { public static final int x = 3; } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B0.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B0.scala deleted file mode 100644 index ddeafd32d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B0.scala +++ /dev/null @@ -1,2 +0,0 @@ -package b -object B { val x = 3 } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B1.scala deleted file mode 100644 index 6f0f9f967..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B1.scala +++ /dev/null @@ -1,2 +0,0 @@ -package b -object B { val x = a.A.x } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/test deleted file mode 100644 index 89251bcec..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/new-pkg-dep/test +++ /dev/null @@ -1,8 +0,0 @@ -$ copy-file changes/B0.scala B.scala -> compile - -$ copy-file changes/A1.java A.java -> compile - -$ copy-file changes/B1.scala B.scala -> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/A.scala deleted file mode 100644 index 43b95b9e9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait A { - def x: Int -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/B.scala deleted file mode 100644 index c7569ba51..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait B extends A { - override def x = 2 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/C.scala deleted file mode 100644 index 24d656d4a..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/C.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait C extends A { - def x = 5 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/D.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/D.scala deleted file mode 100644 index 1f0d0a274..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/D.scala +++ /dev/null @@ -1 +0,0 @@ -trait D extends C with B \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/changes/B2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/changes/B2.scala deleted file mode 100644 index f314e6a46..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/changes/B2.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait B extends A { - def x = 2 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/test deleted file mode 100644 index 43f805d4e..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/override/test +++ /dev/null @@ -1,3 +0,0 @@ -> compile -$ copy-file changes/B2.scala B.scala --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/W.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/W.scala deleted file mode 100644 index 527676b6d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/W.scala +++ /dev/null @@ -1,5 +0,0 @@ -class W -{ - def x = 3 -} -class V extends W \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/Y.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/Y.scala deleted file mode 100644 index 9379ee7b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/Y.scala +++ /dev/null @@ -1,5 +0,0 @@ -object Y -{ - def main(args: Array[String]) = - println( (new Z).x ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/Z.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/Z.scala deleted file mode 100644 index 0f7c79a40..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/Z.scala +++ /dev/null @@ -1 +0,0 @@ -class Z extends V diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/changes/W.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/changes/W.scala deleted file mode 100644 index f2e4dc28f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/changes/W.scala +++ /dev/null @@ -1,5 +0,0 @@ -class W -{ - def x = 3 -} -class V \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/test deleted file mode 100644 index 9a80ffae6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-change/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -# modify V to no longer extend W -$ copy-file changes/W.scala W.scala - -# Should recompile Y.scala and report an error: "value x is not a member of Z" --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/A.scala deleted file mode 100644 index d6f828508..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -class A { - def x(i: Int) = i+"3" -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/B.scala deleted file mode 100644 index 26e47fd25..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/B.scala +++ /dev/null @@ -1 +0,0 @@ -class B extends A \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/C.scala deleted file mode 100644 index 6985a0d2f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/C.scala +++ /dev/null @@ -1,3 +0,0 @@ -class C extends B { - def x(s: String) = s+"5" -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/changes/A.scala deleted file mode 100644 index 949655f41..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/changes/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -class A { - def x(i: String) = i+"3" -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/test deleted file mode 100644 index 95ba12295..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/parent-member-change/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -# modify A.scala so that the signature of its method changes to be identical to -# that of the method in its descendant in C.scala -$ copy-file changes/A.scala A.scala -# Should recompile C.scala and report this error, failing the compile --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A1.scala deleted file mode 100644 index f804b5b3e..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A1.scala +++ /dev/null @@ -1,8 +0,0 @@ -package demo.sub - -class A { - implicit def x(i: Int): C = new C(i) -} -class C(i: Int) { - def y = i + 1 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A2.scala deleted file mode 100644 index 288698e5d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A2.scala +++ /dev/null @@ -1,8 +0,0 @@ -package demo.sub - -class A { - implicit def x(i: Int): C = new C(i) -} -class C(i: Int) { - def y = i + 2 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/B.scala deleted file mode 100644 index 54ffd4574..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/B.scala +++ /dev/null @@ -1,5 +0,0 @@ -package demo - -object B { - 3.y -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/package.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/package.scala deleted file mode 100644 index 3c01ff4e4..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/changes/package.scala +++ /dev/null @@ -1,3 +0,0 @@ -package object demo extends sub.A { - val y = 9 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/test deleted file mode 100644 index 595138bba..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/pkg-self/test +++ /dev/null @@ -1,14 +0,0 @@ -# Here we have a package object (demo) that extends a class in a subpackage (demo.sub.A) -# demo.sub.A provides an implicit used by demo.B -$ copy-file changes/package.scala src/main/scala/demo/package.scala -$ copy-file changes/A1.scala src/main/scala/demo/sub/A.scala -$ copy-file changes/B.scala src/main/scala/demo/B.scala -> compile - -# When recompiling A, we delete the class files for A -# When the demo package object is loaded, scalac complains it can't -# find the class files for A. Presumably this occurs because -# package object loading occurs early and doesn't see the new A -# from source. -$ copy-file changes/A2.scala src/main/scala/demo/sub/A.scala -> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/A.scala deleted file mode 100644 index b1ff88af7..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/A.scala +++ /dev/null @@ -1,10 +0,0 @@ -package a -{ - package b - { - object A - { - private[a] def x = 3 - } - } -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/B.scala deleted file mode 100644 index d709285f5..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/B.scala +++ /dev/null @@ -1,6 +0,0 @@ -package a - -object B -{ - val y = b.A.x -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/changes/A.scala deleted file mode 100644 index ef50d0ef9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/changes/A.scala +++ /dev/null @@ -1,6 +0,0 @@ -package a.b - -object A -{ - private[b] def x = 3 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/test deleted file mode 100644 index 2cc575f6b..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/qualified-access/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -# change access of A.x -$ copy-file changes/A.scala A.scala - -# Should force recompilation of B.scala because access changed and B's access is now invalid. --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/changes/absolute.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/changes/absolute.sbt deleted file mode 100644 index a5f2d007a..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/changes/absolute.sbt +++ /dev/null @@ -1 +0,0 @@ -scalaSource in Compile := baseDirectory.value / "src" \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/changes/relative.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/changes/relative.sbt deleted file mode 100644 index 8e898fe02..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/changes/relative.sbt +++ /dev/null @@ -1 +0,0 @@ -scalaSource in Compile := file("src") \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/src/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/src/A.scala deleted file mode 100644 index 528ffce71..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/src/A.scala +++ /dev/null @@ -1 +0,0 @@ -object A \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/test deleted file mode 100644 index fb8e9dce8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/relative-source-error/test +++ /dev/null @@ -1,7 +0,0 @@ -$ copy-file changes/relative.sbt build.sbt -> reload --> compile - -$ copy-file changes/absolute.sbt build.sbt -> reload -> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-a/changes/1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-a/changes/1.scala deleted file mode 100644 index 1444a85e8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-a/changes/1.scala +++ /dev/null @@ -1,6 +0,0 @@ -package test - -object TestScriptTest -{ - val x: Int = "" -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-a/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-a/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-a/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-a/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-a/test deleted file mode 100644 index ea5cc469c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-a/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -$ copy-file changes/1.scala src/main/scala/1.scala --> compile - -$ delete src/main/scala/1.scala -> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/A2.scala deleted file mode 100644 index b971413bf..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/A2.scala +++ /dev/null @@ -1,6 +0,0 @@ -package test - -object A -{ - def test = B.length -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B3.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B3.scala deleted file mode 100644 index c5a1267df..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B3.scala +++ /dev/null @@ -1,6 +0,0 @@ -package test - -object B -{ - def length: Int = 5 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B4.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B4.scala deleted file mode 100644 index 86a6cb4b9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B4.scala +++ /dev/null @@ -1,5 +0,0 @@ -package test - -object B -{ -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B5.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B5.scala deleted file mode 100644 index 8829a8f73..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B5.scala +++ /dev/null @@ -1,5 +0,0 @@ -/*package test - -object B -{ -}*/ \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/A.scala deleted file mode 100644 index af481a935..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/A.scala +++ /dev/null @@ -1,5 +0,0 @@ -package test - -object A -{ -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/B.scala deleted file mode 100644 index 86a6cb4b9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/B.scala +++ /dev/null @@ -1,5 +0,0 @@ -package test - -object B -{ -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/test deleted file mode 100644 index 79a6db6c8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/remove-test-b/test +++ /dev/null @@ -1,25 +0,0 @@ -> compile - -$ copy-file changes/A2.scala src/main/scala/A.scala --> compile - -$ copy-file changes/B3.scala src/main/scala/B.scala -> compile - -$ delete src/main/scala/B.scala --> compile - -$ copy-file changes/B3.scala src/main/scala/B.scala -> compile - -$ copy-file changes/B4.scala src/main/scala/B.scala --> compile - -$ copy-file changes/B3.scala src/main/scala/B.scala -> compile - -$ copy-file changes/B5.scala src/main/scala/B.scala --> compile - -$ copy-file changes/B3.scala src/main/scala/B.scala -> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/A.scala deleted file mode 100644 index df798a859..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A -{ - def x(i: String*) = () -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/B.scala deleted file mode 100644 index a06f3a186..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B -{ - val x = A.x("3") -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/changes/A.scala deleted file mode 100644 index 6de960644..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/changes/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A -{ - def x(i: Seq[String]) = () -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/test deleted file mode 100644 index 4964ab5a8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/repeated-parameters/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -# change repeated parameters to Seq -$ copy-file changes/A.scala A.scala - -# B.scala needs recompiling because the type has changed --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/changes/first.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/changes/first.scala deleted file mode 100644 index 9e12604c2..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/changes/first.scala +++ /dev/null @@ -1,4 +0,0 @@ -object First -{ - def main(args: Array[String]): Unit = () -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/changes/second.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/changes/second.scala deleted file mode 100644 index 45ce49a65..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/changes/second.scala +++ /dev/null @@ -1,4 +0,0 @@ -object Second -{ - def main(args: Array[String]): Unit = () -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/project/Build.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/project/Build.scala deleted file mode 100644 index 9c2678540..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/project/Build.scala +++ /dev/null @@ -1,19 +0,0 @@ -import sbt._ -import Keys._ -import java.net.URLClassLoader - -object B extends Build -{ - lazy val root = Project("root", file(".")) settings( ss : _*) - - def ss = Seq( - TaskKey[Unit]("check-first") <<= checkTask("First"), - TaskKey[Unit]("check-second") <<= checkTask("Second") - ) - private def checkTask(className: String) = - fullClasspath in Configurations.Runtime map { runClasspath => - val cp = runClasspath.map(_.data.toURI.toURL).toArray - Class.forName(className, false, new URLClassLoader(cp)) - () - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/test deleted file mode 100644 index 4b4ad3a2b..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/replace-test-a/test +++ /dev/null @@ -1,9 +0,0 @@ -$ copy-file changes/first.scala src/main/scala/A.scala -> compile -> check-first --> check-second - -$ copy-file changes/second.scala src/main/scala/A.scala -> compile --> check-first -> check-second \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/build.sbt deleted file mode 100644 index 619622832..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/build.sbt +++ /dev/null @@ -1 +0,0 @@ -compileOrder := CompileOrder.JavaThenScala diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/A1.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/A1.java deleted file mode 100644 index bdf223afb..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/A1.java +++ /dev/null @@ -1,5 +0,0 @@ -package example; - -public class A { - public final int x = 3; -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/A2.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/A2.java deleted file mode 100644 index 3b67c58d2..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/A2.java +++ /dev/null @@ -1,5 +0,0 @@ -package example; - -public class A { - public final String x = "a"; -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/B0.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/B0.scala deleted file mode 100644 index 251ef7397..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/B0.scala +++ /dev/null @@ -1 +0,0 @@ -object B diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/B1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/B1.scala deleted file mode 100644 index 9d9a60c87..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/B1.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { - val x: Int = (new example.A).x -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/B2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/B2.scala deleted file mode 100644 index ec5fd2cf3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/changes/B2.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { - val x: String = (new example.A).x -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/test deleted file mode 100644 index 6987c7df0..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-java/test +++ /dev/null @@ -1,10 +0,0 @@ -$ copy-file changes/B0.scala B.scala -> compile - -$ copy-file changes/A1.java src/main/java/example/A.java -$ copy-file changes/B1.scala B.scala -> compile - -$ copy-file changes/A2.java src/main/java/example/A.java -$ copy-file changes/B2.scala B.scala -> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/changes/A.scala deleted file mode 100644 index da058d2d9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/changes/A.scala +++ /dev/null @@ -1,5 +0,0 @@ -package example - -object A { - val x: Int = green -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package.scala deleted file mode 100644 index 9fd811040..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package.scala +++ /dev/null @@ -1,3 +0,0 @@ -package object example { - val green = 3 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package2.scala deleted file mode 100644 index 22c1afd15..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package2.scala +++ /dev/null @@ -1,3 +0,0 @@ -package object example { - val green = "asdf" -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/test deleted file mode 100644 index e83d2578d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/resident-package-object/test +++ /dev/null @@ -1,11 +0,0 @@ -$ copy-file changes/package.scala src/main/scala/example/package.scala -> compile - -$ copy-file changes/A.scala src/main/scala/example/A.scala -> compile - -$ copy-file changes/package2.scala src/main/scala/example/package.scala --> compile - -$ copy-file changes/package.scala src/main/scala/example/package.scala -> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/build.sbt deleted file mode 100644 index 2231204ea..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/build.sbt +++ /dev/null @@ -1,12 +0,0 @@ -import complete.DefaultParsers._ - -crossTarget in Compile := target.value - -val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") - -checkIterations := { - val expected: Int = (Space ~> NatBasic).parsed - val actual: Int = (compile in Compile).value.compilations.allCompilations.size - assert(expected == actual, s"Expected $expected compilations, got $actual") -} - diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/changes/A1.scala deleted file mode 100644 index 2a499fa7b..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/changes/A1.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - val x = 3 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/changes/A2.scala deleted file mode 100644 index 10d738255..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/changes/A2.scala +++ /dev/null @@ -1,5 +0,0 @@ -object A { - val x = "a" -} - -class C diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/changes/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/changes/B.scala deleted file mode 100644 index 945e97bb3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/changes/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B { - val y: Int = A.x -} - diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/test deleted file mode 100644 index 028d6226c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/restore-classes/test +++ /dev/null @@ -1,23 +0,0 @@ -$ copy-file changes/A1.scala A.scala -$ copy-file changes/B.scala B.scala -# B depends on A -# 1 iteration -> compile - -$ copy-file changes/A2.scala A.scala - -# will successfully compile A.scala in the first step but fail to compile B.scala in the second -# because type of A.x changed. The original classes should be restored after this failure. -# 2 iterations, but none are recorded in the Analysis --> compile - -# the class file for C should be deleted: -# it was only added by A2, but compilation hasn't succeeded yet -$ absent target/classes/C.class - - -$ copy-file changes/A1.scala A.scala -# if the classes were correctly restored, another compilation shouldn't be necessary -> compile -# so, there should only be the original 1 iteration recorded in the Analysis -> checkIterations 1 diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/A.scala deleted file mode 100644 index d91afb5ca..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/A.scala +++ /dev/null @@ -1,8 +0,0 @@ -object A { - def x = 3 - - def y = { - import B._ - x - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/B.scala deleted file mode 100644 index 5e34efa4d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { -// def x = 3 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/build.sbt deleted file mode 100644 index 8a38ef414..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/build.sbt +++ /dev/null @@ -1 +0,0 @@ -incOptions := incOptions.value.withNameHashing(true) diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/changes/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/changes/B.scala deleted file mode 100644 index 4bf188fb2..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/changes/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { - def x = 3 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/test deleted file mode 100644 index 781b4aafb..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/same-file-used-names/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -# uncomment definition of `x` that leads to ambiguity error in A -$ copy-file changes/B.scala B.scala - -# Both A.scala and B.scala should be recompiled, producing a compile error --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/A.scala deleted file mode 100644 index d185a50a9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -sealed trait A -class B extends A -class C extends A \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/D.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/D.scala deleted file mode 100644 index 1f49e9d61..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/D.scala +++ /dev/null @@ -1,8 +0,0 @@ - -object D { -def x(a: A) = - a match { - case _: B => () - case _: C => () - } -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/changes/A.scala deleted file mode 100644 index f00e9c127..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/changes/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -sealed trait A -class B extends A -class C extends A -class E extends A \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/pending b/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/pending deleted file mode 100644 index 69c8ebe98..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/pending +++ /dev/null @@ -1,11 +0,0 @@ -> 'set scalacOptions += "-Xfatal-warnings"' - -> compile - -# have new class E extend A -$ copy-file changes/A.scala A.scala - -# D.scala needs recompiling because the pattern match in D -# is no longer exhaustive, which should be a warning -# there is no way to make warnings errors, so this has to be manually checked --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/sealed/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/B.scala deleted file mode 100644 index e049b23b0..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { - val x: Int = A.f1[Any](1) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A0.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A0.scala deleted file mode 100644 index 6cf6a62c2..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A0.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - def f1[T](x: Int): Int = 1 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A1.scala deleted file mode 100644 index d10bcbadc..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A1.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - def f1[T](x: String): Int = 1 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A2.scala deleted file mode 100644 index 029dc28d7..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A2.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - def f1[T](x: Int): String = "" -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A3.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A3.scala deleted file mode 100644 index 69463721f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/changes/A3.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - def f1[T <: Int](x: Int): Int = 1 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/test deleted file mode 100644 index 03ad663ab..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/signature-change/test +++ /dev/null @@ -1,20 +0,0 @@ -# Case 1: parameter type changed -$ copy-file changes/A0.scala A.scala -> compile -$ copy-file changes/A1.scala A.scala -# Compilation of B.scala should fail because the signature of f changed --> compile - -# Case 2: return type changed -$ copy-file changes/A0.scala A.scala -> compile -$ copy-file changes/A2.scala A.scala -# Compilation of B.scala should fail because the signature of f changed --> compile - -# Case 3: type parameter bounds changed -$ copy-file changes/A0.scala A.scala -> compile -$ copy-file changes/A3.scala A.scala -# Compilation of B.scala should fail because the signature of f changed --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/A.scala deleted file mode 100644 index a9b5e6818..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -class A -{ - def x[T](t: T) = t -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/B.scala deleted file mode 100644 index 387a85019..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/B.scala +++ /dev/null @@ -1,7 +0,0 @@ -object B -{ - def main(args: Array[String]): Unit = { - val a = new A - a.x(3) - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/changes/A.scala deleted file mode 100644 index 76ac39400..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/changes/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -class A -{ - def x[@specialized T](t: T) = t -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/test deleted file mode 100644 index b9e1ad09c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/specialized/test +++ /dev/null @@ -1,15 +0,0 @@ -# -Yspecialize is 2.8 only -> compile - -# verify that erased A.x can be called normally and reflectively -> run false - -# make A.x specialized -$ copy-file changes/A.scala A.scala - -# B.scala needs recompiling so that B.y calls the specialized version of A.x -> compile - -# verify that specialized A.x can be called normally and reflectively -# NOTE: this test doesn't actually work correctly: have to check the output to see that B.scala was recompiled -> run true \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/A.scala deleted file mode 100644 index e9b4d7aa6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A -{ - val x = new C -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/B.scala deleted file mode 100644 index fce3e99cf..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/B.scala +++ /dev/null @@ -1,5 +0,0 @@ -object B -{ - import A.x.y - val z = y -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/C.scala deleted file mode 100644 index 9b2e3741a..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/C.scala +++ /dev/null @@ -1,4 +0,0 @@ -class C -{ - val y = 4 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/changes/A.scala deleted file mode 100644 index 1b6e8d65a..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/changes/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A -{ - def x = new C -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/test deleted file mode 100644 index 887778d24..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/stability-change/test +++ /dev/null @@ -1,6 +0,0 @@ -> compile - -# replace val x with var x, invalidating the import in B -$ copy-file changes/A.scala A.scala - --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/A.scala deleted file mode 100644 index 9917b2d98..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/A.scala +++ /dev/null @@ -1 +0,0 @@ -case class A(x: Int) diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/B.scala deleted file mode 100644 index be302fe40..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { - A(0) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/changes/A2.scala deleted file mode 100644 index 3d35a445f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/changes/A2.scala +++ /dev/null @@ -1,2 +0,0 @@ -case class A(x: Int) -private object A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/dbg.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/dbg.sbt deleted file mode 100644 index 1ac0e14e9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/dbg.sbt +++ /dev/null @@ -1,2 +0,0 @@ -logLevel := Level.Debug -incOptions ~= { _.copy(apiDebug = true, relationsDebug = true) } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/test deleted file mode 100644 index f3a023810..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/synthetic-companion/test +++ /dev/null @@ -1,4 +0,0 @@ -> compile -$ copy-file changes/A2.scala A.scala -# Compilation of B.scala should fail because object A does not extend `Int => A` anymore --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/build.sbt deleted file mode 100644 index 949d78231..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/build.sbt +++ /dev/null @@ -1,27 +0,0 @@ -/* Performs checks related to compilations: - * a) checks in which compilation given set of files was recompiled - * b) checks overall number of compilations performed - */ -TaskKey[Unit]("check-compilations") := { - val analysis = (compile in Compile).value - val srcDir = (scalaSource in Compile).value - def relative(f: java.io.File): java.io.File = f.relativeTo(srcDir) getOrElse f - val allCompilations = analysis.compilations.allCompilations - val recompiledFiles: Seq[Set[java.io.File]] = allCompilations map { c => - val recompiledFiles = analysis.apis.internal.collect { - case (file, api) if api.compilation.startTime == c.startTime => relative(file) - } - recompiledFiles.toSet - } - def recompiledFilesInIteration(iteration: Int, fileNames: Set[String]) = { - val files = fileNames.map(new java.io.File(_)) - assert(recompiledFiles(iteration) == files, "%s != %s".format(recompiledFiles(iteration), files)) - } - assert(allCompilations.size == 2) - // B.scala is just compiled at the beginning - recompiledFilesInIteration(0, Set("B.scala")) - // A.scala is changed and recompiled - recompiledFilesInIteration(1, Set("A.scala")) -} - -logLevel := Level.Debug diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/changes/A1.scala deleted file mode 100644 index 57a1f34c6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/changes/A1.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait A { - def foo: Int = 12 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/A.scala deleted file mode 100644 index 0eab80adc..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/A.scala +++ /dev/null @@ -1 +0,0 @@ -trait A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/B.scala deleted file mode 100644 index c4d3f7e97..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/B.scala +++ /dev/null @@ -1 +0,0 @@ -class B(a: A) diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/test deleted file mode 100644 index f8f7cb076..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-member-modified/test +++ /dev/null @@ -1,9 +0,0 @@ -# Test if adding a member to a trait affects classes that refer to that trait -# by a member reference -> compile -# add `foo` method to `A` -$ copy-file changes/A1.scala src/main/scala/A.scala -# only A.scala should be recompiled -> compile -# check if there are only two compile iterations performed -> check-compilations diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/A.scala deleted file mode 100644 index cbcda3176..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait A { - val foo = 0 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/B.scala deleted file mode 100644 index 5da0f8a71..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/B.scala +++ /dev/null @@ -1,5 +0,0 @@ -object B extends A { - def main(args: Array[String]): Unit = { - println(foo) - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/changes/A.scala deleted file mode 100644 index 63ca671b7..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/changes/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -trait A { - val foo = 0 + X.a - private object X { val a = 1 } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/test deleted file mode 100644 index 5aab7a143..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-object/test +++ /dev/null @@ -1,5 +0,0 @@ -> run - -$ copy-file changes/A.scala A.scala - -> run \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/B.scala deleted file mode 100644 index a0bb35627..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B extends A { - def main(args: Array[String]): Unit = println(bar) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A0.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A0.scala deleted file mode 100644 index cf57bdb33..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A0.scala +++ /dev/null @@ -1,3 +0,0 @@ -trait A { - def bar: Int = 0 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A1.scala deleted file mode 100644 index 3eb53d77c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A1.scala +++ /dev/null @@ -1,5 +0,0 @@ -trait A { - private var foo = 12 - // we need to access foo to trigger AbstractMethodError - def bar: Int = foo -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A2.scala deleted file mode 100644 index 60641457d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A2.scala +++ /dev/null @@ -1,5 +0,0 @@ -trait A { - private val foo = 12 - // we need to access foo to trigger AbstractMethodError - def bar: Int = foo -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/test deleted file mode 100644 index c120697d8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-private-var/test +++ /dev/null @@ -1,28 +0,0 @@ -$ copy-file changes/A0.scala A.scala - -# compile and run for the first time to verify that everything works -> run - -# introduce private var and refer to it in a trait that we inherit from -# there'll be pair of getters and setters generated for private var that -# has to be implemented by a class (where you can declare corresponding field) -$ copy-file changes/A1.scala A.scala - -# If the introduction of a private var did not trigger the recompilation of B, -# then this will fail with AbstractMethodError because the getters and setters -# for the private var have not been generated. -> run - -# Try again with a private val -> clean - -$ copy-file changes/A0.scala A.scala - -# compile and run a clean project to verify that everything works -> run - -# introduce a private val in the trait -$ copy-file changes/A2.scala A.scala - -# Verify that B has been recompiled and that everything runs fine. -> run diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/A.scala deleted file mode 100644 index 52ad7e6a0..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/A.scala +++ /dev/null @@ -1,6 +0,0 @@ -trait A { - def x: Int -} -class E extends A { - def x = 19 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/B.scala deleted file mode 100644 index cba4cc427..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/B.scala +++ /dev/null @@ -1,6 +0,0 @@ -trait B extends A { - abstract override def x = 1 -} -trait C extends A { - abstract override def x = 3 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/Main.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/Main.scala deleted file mode 100644 index 37d821d9d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/Main.scala +++ /dev/null @@ -1,10 +0,0 @@ -class X extends E with C with B - -object Main { - - def main(args: Array[String]): Unit = { - val x = new X - val expected = args(0).toInt - assert(x.x == expected, "Expected " + expected + ", got " + x.x) - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/changes/B2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/changes/B2.scala deleted file mode 100644 index c89acd3ae..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/changes/B2.scala +++ /dev/null @@ -1,6 +0,0 @@ -trait B extends A { - abstract override def x = super.x + 2 -} -trait C extends A { - abstract override def x = 3 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/changes/B3.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/changes/B3.scala deleted file mode 100644 index 2a7ba55ec..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/changes/B3.scala +++ /dev/null @@ -1,6 +0,0 @@ -trait B extends A { - abstract override def x = super.x + 2 -} -trait C extends A { - abstract override def x = super.x -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/test deleted file mode 100644 index b14d5dc76..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/trait-super/test +++ /dev/null @@ -1,16 +0,0 @@ -# Dotty: This test has been disabled because super accessors are introduced -# in PostTyper but the sbt phase is run before PostTyper so that tests like -# "constants" succeed. - -# This test verifies that adding/removing calls to super in traits properly -# recompiles subclasses. super calls introduce accessors that are not in -# the public API, so this is not picked up by the usual API change detection. - -> run 1 - -$ copy-file changes/B2.scala B.scala -> run 5 - -$ copy-file changes/B3.scala B.scala -> run 21 - diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/changes/A2.scala deleted file mode 100644 index 8811bc83d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/changes/A2.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A -{ - val x = 5 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/A.scala deleted file mode 100644 index a0121ded0..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A -{ - val x = "a" -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/B.scala deleted file mode 100644 index da3e21492..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -object B -{ - val y = A.x -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/C.scala deleted file mode 100644 index 0c2345e0f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/C.scala +++ /dev/null @@ -1,4 +0,0 @@ -object C -{ - val z = B.y.length -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/test deleted file mode 100644 index 774b014aa..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-a/test +++ /dev/null @@ -1,4 +0,0 @@ -> compile - -$ copy-file changes/A2.scala src/main/scala/A.scala --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/changes/A2.scala deleted file mode 100644 index 3a0001416..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/changes/A2.scala +++ /dev/null @@ -1,4 +0,0 @@ -trait A -{ - val x = 5 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/A.scala deleted file mode 100644 index d49070e79..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -trait A -{ - val x = "a" -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/B.scala deleted file mode 100644 index 310eb5b60..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/B.scala +++ /dev/null @@ -1 +0,0 @@ -trait B extends A \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/C.scala deleted file mode 100644 index da117fc3f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/C.scala +++ /dev/null @@ -1,4 +0,0 @@ -trait C extends B -{ - val z = x.length -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/test deleted file mode 100644 index 774b014aa..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-b/test +++ /dev/null @@ -1,4 +0,0 @@ -> compile - -$ copy-file changes/A2.scala src/main/scala/A.scala --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/A.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/A.java deleted file mode 100644 index 96b1a01a7..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/A.java +++ /dev/null @@ -1,3 +0,0 @@ -public class A { - public int x() { return 5; } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/B.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/B.java deleted file mode 100644 index 7e9bb5574..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/B.java +++ /dev/null @@ -1 +0,0 @@ -public class B extends A {} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/C.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/C.java deleted file mode 100644 index a5a7716ea..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/C.java +++ /dev/null @@ -1,4 +0,0 @@ -public class C extends B -{ - public int x() { return super.x() + 3; } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/changes/A2.java b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/changes/A2.java deleted file mode 100644 index 9f4b93d84..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/changes/A2.java +++ /dev/null @@ -1 +0,0 @@ -public class A {} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/test deleted file mode 100644 index 387cbae45..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit-java/test +++ /dev/null @@ -1,4 +0,0 @@ -> compile - -$ copy-file changes/A2.java A.java --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/A.scala deleted file mode 100644 index 0eab80adc..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/A.scala +++ /dev/null @@ -1 +0,0 @@ -trait A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/B.scala deleted file mode 100644 index 310eb5b60..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/B.scala +++ /dev/null @@ -1 +0,0 @@ -trait B extends A \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/C.scala deleted file mode 100644 index 9e7708627..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/C.scala +++ /dev/null @@ -1,4 +0,0 @@ -trait C extends B -{ - def x = 3 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/changes/A2.scala deleted file mode 100644 index 609031a44..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/changes/A2.scala +++ /dev/null @@ -1,4 +0,0 @@ -trait A -{ - def x = 5 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/test deleted file mode 100644 index 74fa79ef9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-inherit/test +++ /dev/null @@ -1,4 +0,0 @@ -> compile - -$ copy-file changes/A2.scala A.scala --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt deleted file mode 100644 index d24e304b1..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt +++ /dev/null @@ -1,40 +0,0 @@ -logLevel := Level.Debug - -incOptions := incOptions.value.withNameHashing(true) - -// disable sbt's heauristic which recompiles everything in case -// some fraction (e.g. 50%) of files is scheduled to be recompiled -// in this test we want precise information about recompiled files -// which that heuristic would distort -incOptions := incOptions.value.copy(recompileAllFraction = 1.0) - -/* Performs checks related to compilations: - * a) checks in which compilation given set of files was recompiled - * b) checks overall number of compilations performed - */ -TaskKey[Unit]("check-compilations") := { - val analysis = (compile in Compile).value - val srcDir = (scalaSource in Compile).value - def relative(f: java.io.File): java.io.File = f.relativeTo(srcDir) getOrElse f - val allCompilations = analysis.compilations.allCompilations - val recompiledFiles: Seq[Set[java.io.File]] = allCompilations map { c => - val recompiledFiles = analysis.apis.internal.collect { - case (file, api) if api.compilation.startTime == c.startTime => relative(file) - } - recompiledFiles.toSet - } - def recompiledFilesInIteration(iteration: Int, fileNames: Set[String]) = { - val files = fileNames.map(new java.io.File(_)) - assert(recompiledFiles(iteration) == files, "%s != %s".format(recompiledFiles(iteration), files)) - } - // Y.scala is compiled only at the beginning as changes to A.scala do not affect it - recompiledFilesInIteration(0, Set("X.scala", "Y.scala")) - // A.scala is changed and recompiled - recompiledFilesInIteration(1, Set("A.scala")) - // change in A.scala causes recompilation of B.scala, C.scala, D.scala which depend on transtiviely - // and by inheritance on A.scala - // X.scala is also recompiled because it depends by member reference on B.scala - // Note that Y.scala is not recompiled because it depends just on X through member reference dependency - recompiledFilesInIteration(2, Set("B.scala", "C.scala", "D.scala")) - assert(allCompilations.size == 3) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/changes/A1.scala deleted file mode 100644 index 63a2739e1..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/changes/A1.scala +++ /dev/null @@ -1,5 +0,0 @@ -package test - -class A { - def foo: Int = 23 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/A.scala deleted file mode 100644 index 1b0178fd9..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -package test - -class A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/B.scala deleted file mode 100644 index b9913245b..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -package test - -class B extends A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/C.scala deleted file mode 100644 index 4ce04f8bf..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/C.scala +++ /dev/null @@ -1,3 +0,0 @@ -package test - -class C extends B diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/D.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/D.scala deleted file mode 100644 index eff328ce5..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/D.scala +++ /dev/null @@ -1,3 +0,0 @@ -package test - -class D extends C diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/X.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/X.scala deleted file mode 100644 index 8c0d9edf8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/X.scala +++ /dev/null @@ -1,5 +0,0 @@ -package test - -class X { - def bar(b: B) = b -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/Y.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/Y.scala deleted file mode 100644 index df53c3c5c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/Y.scala +++ /dev/null @@ -1,5 +0,0 @@ -package test - -class Y { - def baz(x: X) = x -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/test deleted file mode 100644 index 395f90229..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/transitive-memberRef/test +++ /dev/null @@ -1,11 +0,0 @@ -# introduces first compile iteration -> compile -# adds a new method to A which will cause transitive invalidation -# of all source files that inherit from it -# also, all direct dependencies of files that inherit from A will -# be invalidated (in our case that's X.scala) -$ copy-file changes/A1.scala src/main/scala/A.scala -# second iteration -> compile -# check in which compile iteration given source file got recompiled -> check-compilations diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/A.scala deleted file mode 100644 index c0c8794a7..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A { - type X = Option[Int] -} - diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/B.scala deleted file mode 100644 index 81640ed8d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { - def y: A.X = Option(3) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/build.sbt deleted file mode 100644 index c5a1099aa..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/build.sbt +++ /dev/null @@ -1,3 +0,0 @@ -logLevel in compile := Level.Debug - -incOptions := incOptions.value.withNameHashing(true) diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/changes/A.scala deleted file mode 100644 index 53aee1626..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/changes/A.scala +++ /dev/null @@ -1,3 +0,0 @@ -object A { - type X = Int -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/test deleted file mode 100644 index f0a7fe8a1..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-alias/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -# change type alias -$ copy-file changes/A.scala A.scala - -# Both A.scala and B.scala should be recompiled, producing a compile error --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/A.scala deleted file mode 100644 index d712f6feb..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/A.scala +++ /dev/null @@ -1 +0,0 @@ -trait A[T] diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/B.scala deleted file mode 100644 index 0f996cdc3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/B.scala +++ /dev/null @@ -1 +0,0 @@ -trait B[T] extends A[T] diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/C.scala deleted file mode 100644 index 505a83aa6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/C.scala +++ /dev/null @@ -1,3 +0,0 @@ -object C { - new A[Int] {} -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/D.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/D.scala deleted file mode 100644 index 51273ad98..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/D.scala +++ /dev/null @@ -1,3 +0,0 @@ -object D { - def x[T](a: A[T]) = a -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/changes/A.scala deleted file mode 100644 index 0eab80adc..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/changes/A.scala +++ /dev/null @@ -1 +0,0 @@ -trait A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/test deleted file mode 100644 index 2063e9e1b..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/type-parameter/test +++ /dev/null @@ -1,7 +0,0 @@ -> compile - -# remove type parameter from A -$ copy-file changes/A.scala A.scala - -# should get compile error because B, C, D reference A without a type parameter --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/A.scala deleted file mode 100644 index 3b274e4a8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/A.scala +++ /dev/null @@ -1,5 +0,0 @@ -class A[T] - -abstract class C { - def foo: A[B] -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/B.scala deleted file mode 100644 index 179f0d275..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/B.scala +++ /dev/null @@ -1 +0,0 @@ -class B diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/build.sbt deleted file mode 100644 index 02813797f..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/build.sbt +++ /dev/null @@ -1,5 +0,0 @@ -logLevel := Level.Debug - -// disable recompile all which causes full recompile which -// makes it more difficult to test dependency tracking -incOptions ~= { _.copy(recompileAllFraction = 1.0) } diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/test deleted file mode 100644 index fb314fd7b..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-only/test +++ /dev/null @@ -1,7 +0,0 @@ -# test case for dependency tracking in case given type (`B` in our case) -# mentioned only in type ref (as a type argument) -> compile - -$ delete B.scala - --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/A.scala deleted file mode 100644 index 0407cb687..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A { - type I = Int - def x: I = sys.error("not important") -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/B.scala deleted file mode 100644 index afb1169fc..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { - val y: Int = A.x -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/changes/A.scala deleted file mode 100644 index dfac84abb..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/changes/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -object A { - type I = String - def x: I = sys.error("Not important") -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/test deleted file mode 100644 index 751cde01b..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/typeref-return/test +++ /dev/null @@ -1,5 +0,0 @@ -> compile - -$ copy-file changes/A.scala A.scala - --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/A.scala deleted file mode 100644 index 83d15dc73..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/A.scala +++ /dev/null @@ -1 +0,0 @@ -class A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/B.scala deleted file mode 100644 index a18aec3db..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/B.scala +++ /dev/null @@ -1 +0,0 @@ -class B extends A diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/C.scala deleted file mode 100644 index d8c306253..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/C.scala +++ /dev/null @@ -1,3 +0,0 @@ -object C { - val listb: List[B] = List(new B) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/D.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/D.scala deleted file mode 100644 index fa8f13a1b..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/D.scala +++ /dev/null @@ -1,3 +0,0 @@ -object D { - val lista: List[A] = C.listb -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/changes/B2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/changes/B2.scala deleted file mode 100644 index 179f0d275..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/changes/B2.scala +++ /dev/null @@ -1 +0,0 @@ -class B diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/test deleted file mode 100644 index 134321021..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-a/test +++ /dev/null @@ -1,4 +0,0 @@ -> compile -$ copy-file changes/B2.scala B.scala -# Compilation of D.scala should fail because B is no longer a subtype of A --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/A.scala deleted file mode 100644 index 301b546cb..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/A.scala +++ /dev/null @@ -1,5 +0,0 @@ -class A { - type T <: S - type S <: Int - def foo: T = null.asInstanceOf[T] -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/B.scala deleted file mode 100644 index edfe2e6a8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { - val x: Int = (new A).foo -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/changes/A2.scala deleted file mode 100644 index bbe60f206..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/changes/A2.scala +++ /dev/null @@ -1,5 +0,0 @@ -class A { - type T <: S - type S <: String - def foo: T = null.asInstanceOf[T] -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/test deleted file mode 100644 index 97902bd42..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/types-in-used-names-b/test +++ /dev/null @@ -1,4 +0,0 @@ -> compile -$ copy-file changes/A2.scala A.scala -# Compilation of B.scala should fail because A#S is no longer a subtype of Int --> compile diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/A.scala deleted file mode 100644 index dbaa1c3f0..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/A.scala +++ /dev/null @@ -1 +0,0 @@ -class A(val x: Int) extends AnyVal diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/B.scala deleted file mode 100644 index 7d5a86a95..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/B.scala +++ /dev/null @@ -1,3 +0,0 @@ -object B { - def foo: A = new A(0) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/C.scala deleted file mode 100644 index 1a9a42bde..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/C.scala +++ /dev/null @@ -1,5 +0,0 @@ -object C { - def main(args: Array[String]): Unit = { - val x = B.foo - } -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/build.sbt deleted file mode 100644 index 6448c246c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/build.sbt +++ /dev/null @@ -1 +0,0 @@ -logLevel := Level.Debug diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/changes/A2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/changes/A2.scala deleted file mode 100644 index 94d868a92..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/changes/A2.scala +++ /dev/null @@ -1 +0,0 @@ -class A(val x: Double) extends AnyVal diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/test deleted file mode 100644 index a42fd2d71..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class-underlying/test +++ /dev/null @@ -1,3 +0,0 @@ -> run -$ copy-file changes/A2.scala A.scala -> run diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/build.sbt b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/build.sbt deleted file mode 100644 index 77cf9f18c..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/build.sbt +++ /dev/null @@ -1 +0,0 @@ -incOptions := incOptions.value.withRecompileAllFraction(1.0) diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/A0.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/A0.scala deleted file mode 100644 index ad5bf4c56..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/A0.scala +++ /dev/null @@ -1 +0,0 @@ -class A(val x: Int) diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/A1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/A1.scala deleted file mode 100644 index dbaa1c3f0..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/A1.scala +++ /dev/null @@ -1 +0,0 @@ -class A(val x: Int) extends AnyVal diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/B0.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/B0.scala deleted file mode 100644 index 0dba978c3..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/B0.scala +++ /dev/null @@ -1,3 +0,0 @@ -class B { - def foo(a: A): Int = 1 -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/B1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/B1.scala deleted file mode 100644 index c7b689c5e..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/B1.scala +++ /dev/null @@ -1,3 +0,0 @@ -class B { - def bar: A = new A(0) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/B2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/B2.scala deleted file mode 100644 index fe1136389..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/B2.scala +++ /dev/null @@ -1,3 +0,0 @@ -class B { - def bar(dummy: String)(dummy2: String): A = new A(0) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/C0.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/C0.scala deleted file mode 100644 index 1fed7a120..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/C0.scala +++ /dev/null @@ -1,3 +0,0 @@ -object C extends dotty.runtime.LegacyApp { - println(new B().foo(null)) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/C1.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/C1.scala deleted file mode 100644 index f10fe2d16..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/C1.scala +++ /dev/null @@ -1,3 +0,0 @@ -object C extends dotty.runtime.LegacyApp { - println(new B().bar.x) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/C2.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/C2.scala deleted file mode 100644 index a0c5c6972..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/changes/C2.scala +++ /dev/null @@ -1,3 +0,0 @@ -object C extends dotty.runtime.LegacyApp { - println(new B().bar("")("").x) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/test deleted file mode 100644 index 268274bf6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/value-class/test +++ /dev/null @@ -1,50 +0,0 @@ -## Case 1: value class as parameter of method -$ copy-file changes/A0.scala src/main/scala/A.scala -$ copy-file changes/B0.scala src/main/scala/B.scala -$ copy-file changes/C0.scala src/main/scala/C.scala - -# A is a normal class. B.foo accepts a parameter of type A. C calls B.foo, giving it `null`. -> compile -> run - -# Make A a value class. -$ copy-file changes/A1.scala src/main/scala/A.scala - -# The code no longer compiles because B.foo no longer accepts `null` as an argument. -# This means that we have invalidated C.scala, as expected! --> compile - - -## Case 2: value class as return type of method with no parameter lists -$ copy-file changes/A0.scala src/main/scala/A.scala -$ copy-file changes/B1.scala src/main/scala/B.scala -$ copy-file changes/C1.scala src/main/scala/C.scala - -# A is a normal class. B.bar takes no arguments and returns an instance of A. C calls B.bar. -> compile -> run - -# Make A a value class. -$ copy-file changes/A1.scala src/main/scala/A.scala - -# The code compiles. It will run iff C is recompiled because the signature of B.bar has changed, -# because A is now a value class. -> run - - -## Case 3: value class as return type of method with multiple parameter lists -$ copy-file changes/A0.scala src/main/scala/A.scala -$ copy-file changes/B2.scala src/main/scala/B.scala -$ copy-file changes/C2.scala src/main/scala/C.scala - -# A is a normal class. B.bar takes two dummy arguments and returns an instance of A. C calls B.bar("")(""). -> compile -> run - -# Make A a value class. -$ copy-file changes/A1.scala src/main/scala/A.scala - -# The code compiles. It will run iff C is recompiled because the signature of B.bar has changed, -# because A is now a value class. -> run - diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/A.scala deleted file mode 100644 index 1c5d96e09..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/A.scala +++ /dev/null @@ -1,5 +0,0 @@ -class A -{ - def x = 3 - def x_=(x$1: Int) = () -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/B.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/B.scala deleted file mode 100644 index 3ee290f84..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/B.scala +++ /dev/null @@ -1,4 +0,0 @@ -class B extends A -{ - override var x = 3 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/changes/A.scala deleted file mode 100644 index d1c251596..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/changes/A.scala +++ /dev/null @@ -1,4 +0,0 @@ -class A -{ - var x = 3 -} \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/test deleted file mode 100644 index 1da88684d..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/var/test +++ /dev/null @@ -1,6 +0,0 @@ -> compile - -# replace var x with def x, def x_= -$ copy-file changes/A.scala A.scala - --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/A.scala deleted file mode 100644 index 4581bfec8..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/A.scala +++ /dev/null @@ -1,2 +0,0 @@ -class A[+T] - \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/C.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/C.scala deleted file mode 100644 index 8b526d9af..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/C.scala +++ /dev/null @@ -1,3 +0,0 @@ -object C { - val a: A[Any] = new A[Int] -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/changes/A.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/changes/A.scala deleted file mode 100644 index e9c64dff6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/changes/A.scala +++ /dev/null @@ -1,2 +0,0 @@ -class A[T] - \ No newline at end of file diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/project/DottyInjectedPlugin.scala b/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/project/DottyInjectedPlugin.scala deleted file mode 100644 index 3433779b6..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/project/DottyInjectedPlugin.scala +++ /dev/null @@ -1,17 +0,0 @@ -import sbt._ -import Keys._ - -object DottyInjectedPlugin extends AutoPlugin { - override def requires = plugins.JvmPlugin - override def trigger = allRequirements - - override val projectSettings = Seq( - scalaVersion := "0.1-SNAPSHOT", - scalaOrganization := "ch.epfl.lamp", - scalacOptions += "-language:Scala2", - scalaBinaryVersion := "2.11", - autoScalaLibrary := false, - libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), - scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() - ) -} diff --git a/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/test b/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/test deleted file mode 100644 index d74e441e7..000000000 --- a/sbt-bridge/bridge/src/sbt-test/source-dependencies/variance/test +++ /dev/null @@ -1,6 +0,0 @@ -> compile - -# make T invariant -$ copy-file changes/A.scala A.scala - --> compile \ No newline at end of file diff --git a/sbt-bridge/bridge/src/test/scala/xsbt/DependencySpecification.scala b/sbt-bridge/bridge/src/test/scala/xsbt/DependencySpecification.scala deleted file mode 100644 index 60545091b..000000000 --- a/sbt-bridge/bridge/src/test/scala/xsbt/DependencySpecification.scala +++ /dev/null @@ -1,151 +0,0 @@ -/** Adapted from https://github.com/sbt/sbt/blob/0.13/compile/interface/src/test/scala/xsbt/DependencySpecification.scala */ -package xsbt - -import org.junit.runner.RunWith -import xsbti.api.ClassLike -import xsbti.api.Def -import xsbt.api.SameAPI -import org.specs2.mutable.Specification -import org.specs2.runner.JUnitRunner - -import ScalaCompilerForUnitTesting.ExtractedSourceDependencies - -@RunWith(classOf[JUnitRunner]) -class DependencySpecification extends Specification { - - "Extracted source dependencies from public members" in { - val sourceDependencies = extractSourceDependenciesPublic - val memberRef = sourceDependencies.memberRef - val inheritance = sourceDependencies.inheritance - memberRef('A) === Set.empty - inheritance('A) === Set.empty - memberRef('B) === Set('A, 'D) - inheritance('B) === Set('D) - memberRef('C) === Set('A) - inheritance('C) === Set.empty - memberRef('D) === Set.empty - inheritance('D) === Set.empty - memberRef('E) === Set.empty - inheritance('E) === Set.empty - memberRef('F) === Set('A, 'B, 'C, 'D, 'E, 'G) - inheritance('F) === Set('A, 'E) - memberRef('H) === Set('B, 'E, 'G) - // aliases and applied type constructors are expanded so we have inheritance dependency on B - inheritance('H) === Set('B, 'E) - } - - "Extracted source dependencies from private members" in { - val sourceDependencies = extractSourceDependenciesPrivate - val memberRef = sourceDependencies.memberRef - val inheritance = sourceDependencies.inheritance - memberRef('A) === Set.empty - inheritance('A) === Set.empty - memberRef('B) === Set.empty - inheritance('B) === Set.empty - memberRef('C) === Set('A) - inheritance('C) === Set('A) - memberRef('D) === Set('B) - inheritance('D) === Set('B) - } - - "Extracted source dependencies with trait as first parent" in { - val sourceDependencies = extractSourceDependenciesTraitAsFirstPatent - val memberRef = sourceDependencies.memberRef - val inheritance = sourceDependencies.inheritance - memberRef('A) === Set.empty - inheritance('A) === Set.empty - memberRef('B) === Set('A) - inheritance('B) === Set('A) - // verify that memberRef captures the oddity described in documentation of `Relations.inheritance` - // we are mainly interested whether dependency on A is captured in `memberRef` relation so - // the invariant that says that memberRef is superset of inheritance relation is preserved - memberRef('C) === Set('A, 'B) - inheritance('C) === Set('A, 'B) - // same as above but indirect (C -> B -> A), note that only A is visible here - memberRef('D) === Set('A, 'C) - inheritance('D) === Set('A, 'C) - } - - /* - "Extracted source dependencies from macro arguments" in { - val sourceDependencies = extractSourceDependenciesFromMacroArgument - val memberRef = sourceDependencies.memberRef - val inheritance = sourceDependencies.inheritance - - memberRef('A) === Set('B, 'C) - inheritance('A) === Set.empty - memberRef('B) === Set.empty - inheritance('B) === Set.empty - memberRef('C) === Set.empty - inheritance('C) === Set.empty - } - */ - - private def extractSourceDependenciesPublic: ExtractedSourceDependencies = { - val srcA = "class A" - val srcB = "class B extends D[A]" - val srcC = """|class C { - | def a: A = null - |}""".stripMargin - val srcD = "class D[T]" - val srcE = "trait E[T]" - val srcF = "trait F extends A with E[D[B]] { self: G.MyC => }" - val srcG = "object G { type T[x] = B ; type MyC = C }" - // T is a type constructor [x]B - // B extends D - // E verifies the core type gets pulled out - val srcH = "trait H extends G.T[Int] with (E[Int] @unchecked)" - - val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) - val sourceDependencies = compilerForTesting.extractDependenciesFromSrcs('A -> srcA, 'B -> srcB, 'C -> srcC, - 'D -> srcD, 'E -> srcE, 'F -> srcF, 'G -> srcG, 'H -> srcH) - sourceDependencies - } - - private def extractSourceDependenciesPrivate: ExtractedSourceDependencies = { - val srcA = "class A" - val srcB = "class B" - val srcC = "class C { private class Inner1 extends A }" - val srcD = "class D { def foo: Unit = { class Inner2 extends B } }" - - val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) - val sourceDependencies = - compilerForTesting.extractDependenciesFromSrcs('A -> srcA, 'B -> srcB, 'C -> srcC, 'D -> srcD) - sourceDependencies - } - - private def extractSourceDependenciesTraitAsFirstPatent: ExtractedSourceDependencies = { - val srcA = "class A" - val srcB = "trait B extends A" - val srcC = "trait C extends B" - val srcD = "class D extends C" - - val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) - val sourceDependencies = - compilerForTesting.extractDependenciesFromSrcs('A -> srcA, 'B -> srcB, 'C -> srcC, 'D -> srcD) - sourceDependencies - } - - /* - private def extractSourceDependenciesFromMacroArgument: ExtractedSourceDependencies = { - val srcA = "class A { println(B.printTree(C.foo)) }" - val srcB = """ - |import scala.language.experimental.macros - |import scala.reflect.macros._ - |object B { - | def printTree(arg: Any) = macro printTreeImpl - | def printTreeImpl(c: Context)(arg: c.Expr[Any]): c.Expr[String] = { - | val argStr = arg.tree.toString - | val literalStr = c.universe.Literal(c.universe.Constant(argStr)) - | c.Expr[String](literalStr) - | } - |}""".stripMargin - val srcC = "object C { val foo = 1 }" - - val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) - val sourceDependencies = - compilerForTesting.extractDependenciesFromSrcs(List(Map('B -> srcB, 'C -> srcC), Map('A -> srcA))) - sourceDependencies - } - */ -} diff --git a/sbt-bridge/bridge/src/test/scala/xsbt/ExtractAPISpecification.scala b/sbt-bridge/bridge/src/test/scala/xsbt/ExtractAPISpecification.scala deleted file mode 100644 index f5af67e45..000000000 --- a/sbt-bridge/bridge/src/test/scala/xsbt/ExtractAPISpecification.scala +++ /dev/null @@ -1,45 +0,0 @@ -/** Adapted from https://github.com/sbt/sbt/blob/0.13/compile/interface/src/test/scala/xsbt/ExtractAPISpecification.scala */ -package xsbt - -import org.junit.runner.RunWith -import xsbti.api.ClassLike -import xsbti.api.Def -import xsbt.api.ShowAPI -import org.specs2.mutable.Specification -import org.specs2.runner.JUnitRunner - -@RunWith(classOf[JUnitRunner]) -class ExtractAPISpecification extends Specification { - - "Existential types in method signatures" should { - "have stable names" in { stableExistentialNames } - } - - def stableExistentialNames: Boolean = { - def compileAndGetFooMethodApi(src: String): Def = { - val compilerForTesting = new ScalaCompilerForUnitTesting - val sourceApi = compilerForTesting.extractApiFromSrc(src) - val FooApi = sourceApi.definitions().find(_.name() == "Foo").get.asInstanceOf[ClassLike] - val fooMethodApi = FooApi.structure().declared().find(_.name == "foo").get - fooMethodApi.asInstanceOf[Def] - } - val src1 = """ - |class Box[T] - |class Foo { - | def foo: Box[_] = null - | - }""".stripMargin - val fooMethodApi1 = compileAndGetFooMethodApi(src1) - val src2 = """ - |class Box[T] - |class Foo { - | def bar: Box[_] = null - | def foo: Box[_] = null - | - }""".stripMargin - val fooMethodApi2 = compileAndGetFooMethodApi(src2) - fooMethodApi1 == fooMethodApi2 - // Fails because xsbt.api is compiled with Scala 2.10 - // SameAPI.apply(fooMethodApi1, fooMethodApi2) - } -} diff --git a/sbt-bridge/bridge/src/test/scala/xsbt/ExtractUsedNamesSpecification.scala b/sbt-bridge/bridge/src/test/scala/xsbt/ExtractUsedNamesSpecification.scala deleted file mode 100644 index ed463a3e6..000000000 --- a/sbt-bridge/bridge/src/test/scala/xsbt/ExtractUsedNamesSpecification.scala +++ /dev/null @@ -1,119 +0,0 @@ -/** Adapted from https://github.com/sbt/sbt/blob/0.13/compile/interface/src/test/scala/xsbt/ExtractUsedNamesSpecification.scala */ -package xsbt - -import org.junit.runner.RunWith -import xsbti.api.ClassLike -import xsbti.api.Def -import xsbti.api.Package -import xsbt.api.SameAPI -import org.junit.runners.JUnit4 - -import org.specs2.mutable.Specification - -@RunWith(classOf[JUnit4]) -class ExtractUsedNamesSpecification extends Specification { - - /** - * Standard names that appear in every compilation unit that has any class - * definition. - */ - private val standardNames = Set( - // All class extend Object - "Object", - // All class have a default constructor called - "", - // the return type of the default constructor is Unit - "Unit" - ) - - "imported name" in { - val src = """ - |package a { class A } - |package b { - | import a.{A => A2} - |}""".stripMargin - val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) - val usedNames = compilerForTesting.extractUsedNamesFromSrc(src) - val expectedNames = standardNames ++ Set("a", "A", "A2", "b") - usedNames === expectedNames - } - - // test covers https://github.com/gkossakowski/sbt/issues/6 - "names in type tree" in { - val srcA = """| - |package a { - | class A { - | class C { class D } - | } - | class B[T] - | class BB - |}""".stripMargin - val srcB = """| - |package b { - | abstract class X { - | def foo: a.A#C#D - | def bar: a.B[a.BB] - | } - |}""".stripMargin - val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) - val usedNames = compilerForTesting.extractUsedNamesFromSrc(srcA, srcB) - // DOTTY: unlike the scalac sbt phase, this does not contain "X", I believe this is safe - // TODO: report issue against sbt suggesting that they do the same - val expectedNames = standardNames ++ Set("a", "A", "B", "C", "D", "b", "BB") - usedNames === expectedNames - } - - // test for https://github.com/gkossakowski/sbt/issues/5 - "symbolic names" in { - val srcA = """| - |class A { - | def `=`: Int = 3 - |}""".stripMargin - val srcB = """| - |class B { - | def foo(a: A) = a.`=` - |}""".stripMargin - val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) - val usedNames = compilerForTesting.extractUsedNamesFromSrc(srcA, srcB) - // DOTTY TODO: "Int" is not actually used, but we collect it because - // it's the inferred return type so it appears in a TypeTree - // We could avoid this by checking if the untyped tree has a return type - // but is it worth it? Revisit this after https://github.com/sbt/sbt/issues/1104 - // has landed. - val expectedNames = standardNames ++ Set("A", "a", "$eq", "Int") - usedNames === expectedNames - } - - // test for https://github.com/gkossakowski/sbt/issues/3 - "used names from the same compilation unit" in { - val src = "class A { def foo: Int = 0; def bar: Int = foo }" - val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) - val usedNames = compilerForTesting.extractUsedNamesFromSrc(src) - val expectedNames = standardNames ++ Set("A", "foo", "Int") - usedNames === expectedNames - } - - // pending test for https://issues.scala-lang.org/browse/SI-7173 - "names of constants" in { - val src = "class A { final val foo = 12; def bar: Int = foo }" - val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) - val usedNames = compilerForTesting.extractUsedNamesFromSrc(src) - val expectedNames = standardNames ++ Set("A", "foo", "Int") - usedNames === expectedNames - } - - // pending test for https://github.com/gkossakowski/sbt/issues/4 - // TODO: we should fix it by having special treatment of `selectDynamic` and `applyDynamic` calls - "names from method calls on Dynamic" in { - val srcA = """|import scala.language.dynamics - |class A extends Dynamic { - | def selectDynamic(name: String): Int = name.length - |}""".stripMargin - val srcB = "class B { def foo(a: A): Int = a.bla }" - val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) - val usedNames = compilerForTesting.extractUsedNamesFromSrc(srcA, srcB) - val expectedNames = standardNames ++ Set("B", "A", "a", "Int", "selectDynamic", "bla") - usedNames === expectedNames - }.pendingUntilFixed("Call to Dynamic is desugared in type checker so Select nodes is turned into string literal.") - -} diff --git a/sbt-bridge/bridge/src/test/scala/xsbt/ScalaCompilerForUnitTesting.scala b/sbt-bridge/bridge/src/test/scala/xsbt/ScalaCompilerForUnitTesting.scala deleted file mode 100644 index db037effe..000000000 --- a/sbt-bridge/bridge/src/test/scala/xsbt/ScalaCompilerForUnitTesting.scala +++ /dev/null @@ -1,191 +0,0 @@ -/** Adapted from https://github.com/sbt/sbt/blob/0.13/compile/interface/src/test/scala/xsbt/ScalaCompilerForUnitTesting.scala */ -package xsbt - -import xsbti.compile.SingleOutput -import java.io.File -import _root_.scala.tools.nsc.reporters.ConsoleReporter -import _root_.scala.tools.nsc.Settings -import xsbti._ -import xsbti.api.SourceAPI -import sbt.IO.withTemporaryDirectory -import xsbti.api.ClassLike -import xsbti.api.Definition -import xsbti.api.Def -import xsbt.api.SameAPI -import sbt.ConsoleLogger -import xsbti.DependencyContext._ - -import ScalaCompilerForUnitTesting.ExtractedSourceDependencies - -/** - * Provides common functionality needed for unit tests that require compiling - * source code using Scala compiler. - */ -class ScalaCompilerForUnitTesting(nameHashing: Boolean = false) { - - /** - * Compiles given source code using Scala compiler and returns API representation - * extracted by ExtractAPI class. - */ - def extractApiFromSrc(src: String): SourceAPI = { - val (Seq(tempSrcFile), analysisCallback) = compileSrcs(src) - analysisCallback.apis(tempSrcFile) - } - - def extractUsedNamesFromSrc(src: String): Set[String] = { - val (Seq(tempSrcFile), analysisCallback) = compileSrcs(src) - analysisCallback.usedNames(tempSrcFile) - } - - /** - * Extract used names from src provided as the second argument. - * - * The purpose of the first argument is to define names that the second - * source is going to refer to. Both files are compiled in the same compiler - * Run but only names used in the second src file are returned. - */ - def extractUsedNamesFromSrc(definitionSrc: String, actualSrc: String): Set[String] = { - // we drop temp src file corresponding to the definition src file - val (Seq(_, tempSrcFile), analysisCallback) = compileSrcs(definitionSrc, actualSrc) - analysisCallback.usedNames(tempSrcFile) - } - - /** - * Compiles given source code snippets (passed as Strings) using Scala compiler and returns extracted - * dependencies between snippets. Source code snippets are identified by symbols. Each symbol should - * be associated with one snippet only. - * - * Snippets can be grouped to be compiled together in the same compiler run. This is - * useful to compile macros, which cannot be used in the same compilation run that - * defines them. - * - * Symbols are used to express extracted dependencies between source code snippets. This way we have - * file system-independent way of testing dependencies between source code "files". - */ - def extractDependenciesFromSrcs(srcs: List[Map[Symbol, String]]): ExtractedSourceDependencies = { - val rawGroupedSrcs = srcs.map(_.values.toList) - val symbols = srcs.flatMap(_.keys) - val (tempSrcFiles, testCallback) = compileSrcs(rawGroupedSrcs) - val fileToSymbol = (tempSrcFiles zip symbols).toMap - - val memberRefFileDeps = testCallback.sourceDependencies collect { - // false indicates that those dependencies are not introduced by inheritance - case (target, src, DependencyByMemberRef) => (src, target) - } - val inheritanceFileDeps = testCallback.sourceDependencies collect { - // true indicates that those dependencies are introduced by inheritance - case (target, src, DependencyByInheritance) => (src, target) - } - def toSymbols(src: File, target: File): (Symbol, Symbol) = (fileToSymbol(src), fileToSymbol(target)) - val memberRefDeps = memberRefFileDeps map { case (src, target) => toSymbols(src, target) } - val inheritanceDeps = inheritanceFileDeps map { case (src, target) => toSymbols(src, target) } - def pairsToMultiMap[A, B](pairs: Seq[(A, B)]): Map[A, Set[B]] = { - import scala.collection.mutable.{ HashMap, MultiMap } - val emptyMultiMap = new HashMap[A, scala.collection.mutable.Set[B]] with MultiMap[A, B] - val multiMap = pairs.foldLeft(emptyMultiMap) { - case (acc, (key, value)) => - acc.addBinding(key, value) - } - // convert all collections to immutable variants - multiMap.toMap.mapValues(_.toSet).withDefaultValue(Set.empty) - } - - ExtractedSourceDependencies(pairsToMultiMap(memberRefDeps), pairsToMultiMap(inheritanceDeps)) - } - - def extractDependenciesFromSrcs(srcs: (Symbol, String)*): ExtractedSourceDependencies = { - val symbols = srcs.map(_._1) - assert(symbols.distinct.size == symbols.size, - s"Duplicate symbols for srcs detected: $symbols") - extractDependenciesFromSrcs(List(srcs.toMap)) - } - - /** - * Compiles given source code snippets written to temporary files. Each snippet is - * written to a separate temporary file. - * - * Snippets can be grouped to be compiled together in the same compiler run. This is - * useful to compile macros, which cannot be used in the same compilation run that - * defines them. - * - * The sequence of temporary files corresponding to passed snippets and analysis - * callback is returned as a result. - */ - private def compileSrcs(groupedSrcs: List[List[String]]): (Seq[File], TestCallback) = { - withTemporaryDirectory { temp => - val analysisCallback = new TestCallback(nameHashing) - val classesDir = new File(temp, "classes") - classesDir.mkdir() - - // val (compiler, ctx) = prepareCompiler(classesDir, analysisCallback, classesDir.toString) - - val files = for ((compilationUnit, unitId) <- groupedSrcs.zipWithIndex) yield { - val (compiler, ctx) = prepareCompiler(classesDir, analysisCallback, classesDir.toString) - val run = compiler.newRun(ctx) - val srcFiles = compilationUnit.toSeq.zipWithIndex map { - case (src, i) => - val fileName = s"Test-$unitId-$i.scala" - prepareSrcFile(temp, fileName, src) - } - val srcFilePaths = srcFiles.map(srcFile => srcFile.getAbsolutePath).toList - - run.compile(srcFilePaths) - - srcFilePaths.foreach(f => new File(f).delete) - srcFiles - } - (files.flatten.toSeq, analysisCallback) - } - } - - private def compileSrcs(srcs: String*): (Seq[File], TestCallback) = { - compileSrcs(List(srcs.toList)) - } - - private def prepareSrcFile(baseDir: File, fileName: String, src: String): File = { - val srcFile = new File(baseDir, fileName) - sbt.IO.write(srcFile, src) - srcFile - } - - private def prepareCompiler(outputDir: File, analysisCallback: AnalysisCallback, classpath: String = ".") = { - val args = Array.empty[String] - object output extends SingleOutput { - def outputDirectory: File = outputDir - override def toString = s"SingleOutput($outputDirectory)" - } - - import dotty.tools.dotc._ - import dotty.tools.dotc.core.Contexts._ - - val driver = new Driver { - - protected def newCompiler(implicit ctx: Context): Compiler = new Compiler - - override protected def sourcesRequired = false - - def getCompiler(args: Array[String], rootCtx: Context) = { - val (fileNames, ctx) = setup(args, rootCtx) - (newCompiler(ctx), ctx) - } - } - val ctx = (new ContextBase).initialCtx.fresh.setSbtCallback(analysisCallback) - driver.getCompiler(Array("-classpath", classpath, "-usejavacp"), ctx) - } - - private object ConsoleReporter extends Reporter { - def reset(): Unit = () - def hasErrors: Boolean = false - def hasWarnings: Boolean = false - def printWarnings(): Unit = () - def problems: Array[Problem] = Array.empty - def log(pos: Position, msg: String, sev: Severity): Unit = println(msg) - def comment(pos: Position, msg: String): Unit = () - def printSummary(): Unit = () - } - -} - -object ScalaCompilerForUnitTesting { - case class ExtractedSourceDependencies(memberRef: Map[Symbol, Set[Symbol]], inheritance: Map[Symbol, Set[Symbol]]) -} diff --git a/sbt-bridge/bridge/src/test/scala/xsbti/TestCallback.scala b/sbt-bridge/bridge/src/test/scala/xsbti/TestCallback.scala deleted file mode 100644 index b849e1a80..000000000 --- a/sbt-bridge/bridge/src/test/scala/xsbti/TestCallback.scala +++ /dev/null @@ -1,35 +0,0 @@ -/** Copied from https://github.com/sbt/sbt/blob/0.13/interface/src/test/scala/xsbti/TestCallback.scala */ -package xsbti - -import java.io.File -import scala.collection.mutable.ArrayBuffer -import xsbti.api.SourceAPI -import xsbti.DependencyContext._ - -class TestCallback(override val nameHashing: Boolean = false) extends AnalysisCallback -{ - val sourceDependencies = new ArrayBuffer[(File, File, DependencyContext)] - val binaryDependencies = new ArrayBuffer[(File, String, File, DependencyContext)] - val products = new ArrayBuffer[(File, File, String)] - val usedNames = scala.collection.mutable.Map.empty[File, Set[String]].withDefaultValue(Set.empty) - val apis: scala.collection.mutable.Map[File, SourceAPI] = scala.collection.mutable.Map.empty - - def sourceDependency(dependsOn: File, source: File, inherited: Boolean): Unit = { - val context = if(inherited) DependencyByInheritance else DependencyByMemberRef - sourceDependency(dependsOn, source, context) - } - def sourceDependency(dependsOn: File, source: File, context: DependencyContext): Unit = { sourceDependencies += ((dependsOn, source, context)) } - def binaryDependency(binary: File, name: String, source: File, inherited: Boolean): Unit = { - val context = if(inherited) DependencyByInheritance else DependencyByMemberRef - binaryDependency(binary, name, source, context) - } - def binaryDependency(binary: File, name: String, source: File, context: DependencyContext): Unit = { binaryDependencies += ((binary, name, source, context)) } - def generatedClass(source: File, module: File, name: String): Unit = { products += ((source, module, name)) } - - def usedName(source: File, name: String): Unit = { usedNames(source) += name } - def api(source: File, sourceAPI: SourceAPI): Unit = { - assert(!apis.contains(source), s"The `api` method should be called once per source file: $source") - apis(source) = sourceAPI - } - def problem(category: String, pos: xsbti.Position, message: String, severity: xsbti.Severity, reported: Boolean): Unit = () -} diff --git a/sbt-bridge/src/main/scala/xsbt/CompilerClassLoader.scala b/sbt-bridge/src/main/scala/xsbt/CompilerClassLoader.scala new file mode 100644 index 000000000..3cb3f344f --- /dev/null +++ b/sbt-bridge/src/main/scala/xsbt/CompilerClassLoader.scala @@ -0,0 +1,90 @@ +package xsbt + +import java.net.{URL, URLClassLoader} + +/** A classloader to run the compiler + * + * A CompilerClassLoader is constructed from a list of `urls` that need to be on + * the classpath to run the compiler and the classloader used by sbt. + * + * To understand why a custom classloader is needed for the compiler, let us + * describe some alternatives that wouldn't work. + * - `new URLClassLoader(urls)`: + * The compiler contains sbt phases that callback to sbt using the `xsbti.*` + * interfaces. If `urls` does not contain the sbt interfaces we'll get a + * `ClassNotFoundException` in the compiler when we try to use them, if + * `urls` does contain the interfaces we'll get a `ClassCastException` or a + * `LinkageError` because if the same class is loaded by two different + * classloaders, they are considered distinct by the JVM. + * - `new URLClassLoader(urls, sbtLoader)`: + * Because of the JVM delegation model, this means that we will only load + * a class from `urls` if it's not present in the parent `sbtLoader`, but + * sbt uses its own version of the scala compiler and scala library which + * is not the one we need to run the compiler. + * + * Our solution is to implement a subclass of URLClassLoader with no parent, instead + * we override `loadClass` to load the `xsbti.*` interfaces from `sbtLoader`. + */ +class CompilerClassLoader(urls: Array[URL], sbtLoader: ClassLoader) + extends URLClassLoader(urls, null) { + override def loadClass(className: String, resolve: Boolean): Class[_] = + if (className.startsWith("xsbti.")) { + // We can't use the loadClass overload with two arguments because it's + // protected, but we can do the same by hand (the classloader instance + // from which we call resolveClass does not matter). + val c = sbtLoader.loadClass(className) + if (resolve) + resolveClass(c) + c + } else { + super.loadClass(className, resolve) + } +} + +object CompilerClassLoader { + /** Fix the compiler bridge ClassLoader + * + * Soundtrack: https://www.youtube.com/watch?v=imamcajBEJs + * + * The classloader that we get from sbt looks like: + * + * URLClassLoader(bridgeURLs, + * DualLoader(scalaLoader, notXsbtiFilter, sbtLoader, xsbtiFilter)) + * + * DualLoader will load the `xsbti.*` interfaces using `sbtLoader` and + * everything else with `scalaLoader`. Once we have loaded the dotty Main + * class using `scalaLoader`, subsequent classes in the dotty compiler will + * also be loaded by `scalaLoader` and _not_ by the DualLoader. But the sbt + * compiler phases are part of dotty and still need access to the `xsbti.*` + * interfaces in `sbtLoader`, therefore DualLoader does not work for us + * (this issue is not present with scalac because the sbt phases are + * currently defined in the compiler bridge itself, not in scalac). + * + * CompilerClassLoader is a replacement for DualLoader. Until we can fix + * this in sbt proper, we need to use reflection to construct our own + * fixed classloader: + * + * URLClassLoader(bridgeURLs, + * CompilerClassLoader(scalaLoader.getURLs, sbtLoader)) + * + * @param bridgeLoader The classloader that sbt uses to load the compiler bridge + * @return A fixed classloader that works with dotty + */ + def fixBridgeLoader(bridgeLoader: ClassLoader) = bridgeLoader match { + case bridgeLoader: URLClassLoader => + val dualLoader = bridgeLoader.getParent + val dualLoaderClass = dualLoader.getClass + + // DualLoader#parentA and DualLoader#parentB are private + val parentAField = dualLoaderClass.getDeclaredField("parentA") + parentAField.setAccessible(true) + val parentBField = dualLoaderClass.getDeclaredField("parentB") + parentBField.setAccessible(true) + val scalaLoader = parentAField.get(dualLoader).asInstanceOf[URLClassLoader] + val sbtLoader = parentBField.get(dualLoader).asInstanceOf[URLClassLoader] + + val bridgeURLs = bridgeLoader.getURLs + new URLClassLoader(bridgeURLs, + new CompilerClassLoader(scalaLoader.getURLs, sbtLoader)) + } +} diff --git a/sbt-bridge/src/main/scala/xsbt/CompilerInterface.scala b/sbt-bridge/src/main/scala/xsbt/CompilerInterface.scala new file mode 100644 index 000000000..bf1488dad --- /dev/null +++ b/sbt-bridge/src/main/scala/xsbt/CompilerInterface.scala @@ -0,0 +1,72 @@ +/* sbt -- Simple Build Tool + * Copyright 2008, 2009 Mark Harrah + */ +package xsbt + +import xsbti.{ AnalysisCallback, Logger, Problem, Reporter, Severity, DependencyContext } +import xsbti.api.SourceAPI +import xsbti.compile._ +import Log.debug +import java.io.File + +import dotty.tools.dotc.core.Contexts.ContextBase +import dotty.tools.dotc.{ Main => DottyMain } +import dotty.tools.dotc.interfaces._ + +import java.net.URLClassLoader + +final class CompilerInterface { + def newCompiler(options: Array[String], output: Output, initialLog: Logger, + initialDelegate: Reporter, resident: Boolean): CachedCompiler = { + // The classloader that sbt uses to load the compiler bridge is broken + // (see CompilerClassLoader#fixBridgeLoader for details). To workaround + // this we construct our own ClassLoader and then run the following code + // with it: + // new CachedCompilerImpl(options, output, resident) + + val bridgeLoader = getClass.getClassLoader + val fixedLoader = CompilerClassLoader.fixBridgeLoader(bridgeLoader) + val cciClass = fixedLoader.loadClass("xsbt.CachedCompilerImpl") + cciClass.getConstructors.head + .newInstance(options, output, resident: java.lang.Boolean) + .asInstanceOf[CachedCompiler] + } + + def run(sources: Array[File], changes: DependencyChanges, callback: AnalysisCallback, log: Logger, + delegate: Reporter, progress: CompileProgress, cached: CachedCompiler): Unit = + cached.run(sources, changes, callback, log, delegate, progress) +} + +class CachedCompilerImpl(args: Array[String], output: Output, resident: Boolean) extends CachedCompiler { + val outputArgs = + output match { + case multi: MultipleOutput => + ??? + case single: SingleOutput => + List("-d", single.outputDirectory.getAbsolutePath.toString) + } + + def commandArguments(sources: Array[File]): Array[String] = + (outputArgs ++ args.toList ++ sources.map(_.getAbsolutePath).sortWith(_ < _)).toArray[String] + + def run(sources: Array[File], changes: DependencyChanges, callback: AnalysisCallback, log: Logger, delegate: Reporter, progress: CompileProgress): Unit = synchronized { + run(sources.toList, changes, callback, log, delegate, progress) + } + private[this] def run(sources: List[File], changes: DependencyChanges, callback: AnalysisCallback, log: Logger, delegate: Reporter, compileProgress: CompileProgress): Unit = { + debug(log, args.mkString("Calling Dotty compiler with arguments (CompilerInterface):\n\t", "\n\t", "")) + val ctx = (new ContextBase).initialCtx.fresh + .setSbtCallback(callback) + .setReporter(new DelegatingReporter(delegate)) + + val cl = getClass.getClassLoader.asInstanceOf[URLClassLoader] + + val reporter = DottyMain.process(commandArguments(sources.toArray), ctx) + if (reporter.hasErrors) { + throw new InterfaceCompileFailed(args, Array()) + } + } +} + +class InterfaceCompileFailed(override val arguments: Array[String], override val problems: Array[Problem]) extends xsbti.CompileFailed { + override val toString = "Compilation failed" +} diff --git a/sbt-bridge/src/main/scala/xsbt/ConsoleInterface.scala b/sbt-bridge/src/main/scala/xsbt/ConsoleInterface.scala new file mode 100644 index 000000000..f56918113 --- /dev/null +++ b/sbt-bridge/src/main/scala/xsbt/ConsoleInterface.scala @@ -0,0 +1,73 @@ +/* sbt -- Simple Build Tool + * Copyright 2008, 2009 Mark Harrah + */ +package xsbt + +import xsbti.Logger +import scala.tools.nsc.{ GenericRunnerCommand, Interpreter, InterpreterLoop, ObjectRunner, Settings } +import scala.tools.nsc.interpreter.InteractiveReader +import scala.tools.nsc.reporters.Reporter +import scala.tools.nsc.util.ClassPath + +import dotty.tools.dotc.core.Contexts.Context +import dotty.tools.dotc.repl.REPL +import dotty.tools.dotc.repl.REPL.Config + +class ConsoleInterface { + def commandArguments( + args: Array[String], + bootClasspathString: String, + classpathString: String, + log: Logger + ): Array[String] = args + + def run(args: Array[String], + bootClasspathString: String, + classpathString: String, + initialCommands: String, + cleanupCommands: String, + loader: ClassLoader, + bindNames: Array[String], + bindValues: Array[Any], + log: Logger + ): Unit = { + val completeArgs = + args :+ + "-bootclasspath" :+ bootClasspathString :+ + "-classpath" :+ classpathString + + println("Starting dotty interpreter...") + val repl = ConsoleInterface.customRepl( + initialCommands :: Nil, + cleanupCommands :: Nil, + bindNames zip bindValues, + loader + ) + repl.process(completeArgs) + } +} + +object ConsoleInterface { + def customConfig( + initCmds: List[String], + cleanupCmds: List[String], + boundVals: Array[(String, Any)], + loader: ClassLoader + ) = new Config { + override val initialCommands: List[String] = initCmds + override val cleanupCommands: List[String] = cleanupCmds + override val boundValues: Array[(String, Any)] = boundVals + override val classLoader: Option[ClassLoader] = Option(loader) + } + + def customRepl(cfg: Config): REPL = new REPL { + override lazy val config = cfg + } + + def customRepl( + initCmds: List[String], + cleanupCmds: List[String], + boundVals: Array[(String, Any)], + loader: ClassLoader + ): REPL = customRepl(customConfig(initCmds, cleanupCmds, boundVals, loader)) +} diff --git a/sbt-bridge/src/main/scala/xsbt/DelegatingReporter.scala b/sbt-bridge/src/main/scala/xsbt/DelegatingReporter.scala new file mode 100644 index 000000000..770d6b2c7 --- /dev/null +++ b/sbt-bridge/src/main/scala/xsbt/DelegatingReporter.scala @@ -0,0 +1,48 @@ +/* sbt -- Simple Build Tool + * Copyright 2008, 2009 Mark Harrah + */ +package xsbt + +import dotty.tools._ +import dotc._ +import reporting._ +import reporting.diagnostic.MessageContainer +import reporting.diagnostic.messages +import core.Contexts._ +import xsbti.{Maybe, Position} + +final class DelegatingReporter(delegate: xsbti.Reporter) extends Reporter + with UniqueMessagePositions + with HideNonSensicalMessages + with MessageRendering { + import MessageContainer._ + + override def printSummary(implicit ctx: Context): Unit = delegate.printSummary() + + def doReport(cont: MessageContainer)(implicit ctx: Context): Unit = { + val severity = + cont match { + case _: messages.Error => xsbti.Severity.Error + case _: messages.Warning => xsbti.Severity.Warn + case _ => xsbti.Severity.Info + } + + val position = new Position { + def line: Maybe[Integer] = Maybe.nothing() + def lineContent: String = "" + def offset: Maybe[Integer] = Maybe.nothing() + def pointer: Maybe[Integer] = Maybe.nothing() + def pointerSpace: Maybe[String] = Maybe.nothing() + def sourceFile: Maybe[java.io.File] = Maybe.nothing() + def sourcePath: Maybe[String] = Maybe.nothing() + } + + val sb = new StringBuilder() + sb.append(messageAndPos(cont.contained, cont.pos, diagnosticLevel(cont))) + if (ctx.shouldExplain(cont) && cont.contained.explanation.nonEmpty) { + sb.append(explanation(cont.contained)) + } + + delegate.log(position, sb.toString(), severity) + } +} diff --git a/sbt-bridge/src/main/scala/xsbt/Log.scala b/sbt-bridge/src/main/scala/xsbt/Log.scala new file mode 100644 index 000000000..e514d7abb --- /dev/null +++ b/sbt-bridge/src/main/scala/xsbt/Log.scala @@ -0,0 +1,10 @@ +/* sbt -- Simple Build Tool + * Copyright 2008, 2009 Mark Harrah + */ +package xsbt + +object Log { + def debug(log: xsbti.Logger, msg: => String) = log.debug(Message(msg)) + def settingsError(log: xsbti.Logger): String => Unit = + s => log.error(Message(s)) +} diff --git a/sbt-bridge/src/main/scala/xsbt/Message.scala b/sbt-bridge/src/main/scala/xsbt/Message.scala new file mode 100644 index 000000000..48f24f533 --- /dev/null +++ b/sbt-bridge/src/main/scala/xsbt/Message.scala @@ -0,0 +1,8 @@ +/* sbt -- Simple Build Tool + * Copyright 2008, 2009 Mark Harrah + */ +package xsbt + +object Message { + def apply[T](s: => T) = new xsbti.F0[T] { def apply() = s } +} diff --git a/sbt-bridge/src/main/scala/xsbt/ScaladocInterface.scala b/sbt-bridge/src/main/scala/xsbt/ScaladocInterface.scala new file mode 100644 index 000000000..3ad9c7941 --- /dev/null +++ b/sbt-bridge/src/main/scala/xsbt/ScaladocInterface.scala @@ -0,0 +1,72 @@ +/* sbt -- Simple Build Tool + * Copyright 2008, 2009 Mark Harrah + */ +package xsbt + +import xsbti.Logger +import dotty.tools.dottydoc.api.scala.Dottydoc +import java.net.URL + +class ScaladocInterface { + def run(args: Array[String], log: Logger, delegate: xsbti.Reporter) = + (new DottydocRunner(args, log, delegate)).run() +} + +class DottydocRunner(args: Array[String], log: Logger, delegate: xsbti.Reporter) extends Dottydoc { + def run(): Unit = getOutputFolder(args).map { outputFolder => + val index = createIndex(args) + val resources = getResources(args) + val template = getTemplate(resources) + + template.fold(writeJson(index, outputFolder)) { tpl => + buildDocs(outputFolder, tpl, resources, index) + } + } getOrElse { + delegate.log( + NoPosition, + "No output folder set for API documentation (\"-d\" parameter should be passed to the documentation tool)", + xsbti.Severity.Error + ) + } + + private[this] val NoPosition = new xsbti.Position { + val line = xsbti.Maybe.nothing[Integer] + val lineContent = "" + val offset = xsbti.Maybe.nothing[Integer] + val sourcePath = xsbti.Maybe.nothing[String] + val sourceFile = xsbti.Maybe.nothing[java.io.File] + val pointer = xsbti.Maybe.nothing[Integer] + val pointerSpace = xsbti.Maybe.nothing[String] + } + + private def getStringSetting(name: String): Option[String] = + args find (_.startsWith(name)) map (_.drop(name.length)) + + private def getOutputFolder(args: Array[String]): Option[String] = + args sliding(2) find { case Array(x, _) => x == "-d" } map (_.tail.head.trim) + + private def getTemplate(resources: List[URL]): Option[URL] = + resources.find(_.getFile.endsWith("template.html")) + + private def getResources(args: Array[String]): List[URL] = { + val cp = args sliding (2) find { case Array(x, _) => x == "-classpath" } map (_.tail.head.trim) getOrElse "" + + cp.split(":").find(_.endsWith("dottydoc-client.jar")).map { resourceJar => + import java.util.jar.JarFile + val jarEntries = (new JarFile(resourceJar)).entries + var entries: List[URL] = Nil + + while (jarEntries.hasMoreElements) { + val entry = jarEntries.nextElement() + + if (!entry.isDirectory()) { + val path = s"jar:file:$resourceJar!/${entry.getName}" + val url = new URL(path) + entries = url :: entries + } + } + + entries + } getOrElse (Nil) + } +} diff --git a/sbt-bridge/src/sbt-test/compilerReporter/simple/Source.scala b/sbt-bridge/src/sbt-test/compilerReporter/simple/Source.scala new file mode 100644 index 000000000..6f0678599 --- /dev/null +++ b/sbt-bridge/src/sbt-test/compilerReporter/simple/Source.scala @@ -0,0 +1,10 @@ +trait A +trait B + +trait Wr { + val z: A with B +} + +object Er { + val a = er1 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/compilerReporter/simple/build.sbt b/sbt-bridge/src/sbt-test/compilerReporter/simple/build.sbt new file mode 100644 index 000000000..017846f5e --- /dev/null +++ b/sbt-bridge/src/sbt-test/compilerReporter/simple/build.sbt @@ -0,0 +1 @@ +Reporter.checkSettings \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/compilerReporter/simple/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/compilerReporter/simple/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/compilerReporter/simple/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/compilerReporter/simple/project/Reporter.scala b/sbt-bridge/src/sbt-test/compilerReporter/simple/project/Reporter.scala new file mode 100644 index 000000000..c0a56ec82 --- /dev/null +++ b/sbt-bridge/src/sbt-test/compilerReporter/simple/project/Reporter.scala @@ -0,0 +1,44 @@ +import sbt._ +import Keys._ +import KeyRanks.DTask + +object Reporter { + import xsbti.{Reporter, Problem, Position, Severity, Maybe} + + lazy val check = TaskKey[Unit]("check", "make sure compilation info are forwared to sbt") + + // compilerReporter is marked private in sbt + lazy val compilerReporter = TaskKey[Option[xsbti.Reporter]]("compilerReporter", "Experimental hook to listen (or send) compilation failure messages.", DTask) + + lazy val reporter = + Some(new xsbti.Reporter { + private val buffer = collection.mutable.ArrayBuffer.empty[Problem] + def reset(): Unit = buffer.clear() + def hasErrors: Boolean = buffer.exists(_.severity == Severity.Error) + def hasWarnings: Boolean = buffer.exists(_.severity == Severity.Warn) + def printSummary(): Unit = println(problems.mkString(System.lineSeparator)) + def problems: Array[Problem] = buffer.toArray + def log(pos: Position, msg: String, sev: Severity): Unit = { + object MyProblem extends Problem { + def category: String = null + def severity: Severity = sev + def message: String = msg + def position: Position = pos + override def toString = s"custom: $position:$severity: $message" + } + buffer.append(MyProblem) + } + def comment(pos: xsbti.Position, msg: String): Unit = () + }) + + lazy val checkSettings = Seq( + compilerReporter in (Compile, compile) := reporter, + check <<= (compile in Compile).mapFailure( _ => { + val problems = reporter.get.problems + println(problems.toList) + assert(problems.size == 2) + assert(problems.count(_.severity == Severity.Error) == 1) // not found: er1, + assert(problems.count(_.severity == Severity.Warn) == 1) // `with' as a type operator has been deprecated; use `&' instead, + }) + ) +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/compilerReporter/simple/test b/sbt-bridge/src/sbt-test/compilerReporter/simple/test new file mode 100644 index 000000000..a5912a391 --- /dev/null +++ b/sbt-bridge/src/sbt-test/compilerReporter/simple/test @@ -0,0 +1 @@ +> check \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/A.scala new file mode 100644 index 000000000..43b95b9e9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/A.scala @@ -0,0 +1,3 @@ +trait A { + def x: Int +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/B.scala new file mode 100644 index 000000000..c7569ba51 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/B.scala @@ -0,0 +1,3 @@ +trait B extends A { + override def x = 2 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/C.scala new file mode 100644 index 000000000..24d656d4a --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/C.scala @@ -0,0 +1,3 @@ +trait C extends A { + def x = 5 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/D.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/D.scala new file mode 100644 index 000000000..1f0d0a274 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/D.scala @@ -0,0 +1 @@ +trait D extends C with B \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/changes/C2.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/changes/C2.scala new file mode 100644 index 000000000..5cb6be980 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/changes/C2.scala @@ -0,0 +1,3 @@ +trait C extends A { + abstract override def x = super.x + 5 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/test b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/test new file mode 100644 index 000000000..8021d5ce2 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-override/test @@ -0,0 +1,3 @@ +> compile +$ copy-file changes/C2.scala C.scala +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/build.sbt new file mode 100644 index 000000000..92d209377 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/build.sbt @@ -0,0 +1,7 @@ +InputKey[Unit]("check-number-of-compiler-iterations") <<= inputTask { (argTask: TaskKey[Seq[String]]) => + (argTask, compile in Compile) map { (args: Seq[String], a: sbt.inc.Analysis) => + assert(args.size == 1) + val expectedIterationsNumber = args(0).toInt + assert(a.compilations.allCompilations.size == expectedIterationsNumber, "a.compilations.allCompilations.size = %d (expected %d)".format(a.compilations.allCompilations.size, expectedIterationsNumber)) + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/changes/Bar1.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/changes/Bar1.scala new file mode 100644 index 000000000..fb8320f6e --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/changes/Bar1.scala @@ -0,0 +1,4 @@ +object Bar { + def bar: Outer.TypeInner = null + // comment to trigger recompilation +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Bar.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Bar.scala new file mode 100644 index 000000000..93e2de3bc --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Bar.scala @@ -0,0 +1,3 @@ +object Bar { + def bar: Outer.TypeInner = null +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Foo.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Foo.scala new file mode 100644 index 000000000..44e7145e1 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Foo.scala @@ -0,0 +1,5 @@ +object Outer { + class Inner { type Xyz } + + type TypeInner = Inner { type Xyz = Int } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Impl.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Impl.scala new file mode 100644 index 000000000..b691898dd --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/src/main/scala/Impl.scala @@ -0,0 +1,3 @@ +class Impl { + def bleep = Bar.bar +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/test b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/test new file mode 100644 index 000000000..b0bec415e --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type-override/test @@ -0,0 +1,14 @@ +# Test for separate compilation and proper value of +# the OVERRIDE flag when abstract types, type alias +# and structural type are involved +# See https://github.com/sbt/sbt/issues/726 for details + +# introduces first compile iteration +> compile +# this change adds a comment and does not change api so introduces +# only one additional compile iteration +$ copy-file changes/Bar1.scala src/main/scala/Bar.scala +# second iteration +#> compile +# check if there are only two compile iterations performed +> check-number-of-compiler-iterations 2 diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/A.scala new file mode 100644 index 000000000..08c21e380 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/A.scala @@ -0,0 +1,3 @@ +trait A { + type S[_] +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/B.scala new file mode 100644 index 000000000..c6fa33d89 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/B.scala @@ -0,0 +1,3 @@ +trait B extends A { + type F = S[Int] +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/changes/A.scala new file mode 100644 index 000000000..7d5c095b4 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/changes/A.scala @@ -0,0 +1,3 @@ +trait A { + type S +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/test b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/test new file mode 100644 index 000000000..3f5a5c7e3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/abstract-type/test @@ -0,0 +1,7 @@ +> compile + +# remove type arguments from S +$ copy-file changes/A.scala A.scala + +# Both A.scala and B.scala should be recompiled, producing a compile error +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/added/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/added/changes/A1.scala new file mode 100644 index 000000000..a58c253c0 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/added/changes/A1.scala @@ -0,0 +1,6 @@ +package example + +object A +{ + val x: Int = 3 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/added/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/added/changes/A2.scala new file mode 100644 index 000000000..48ac8e5b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/added/changes/A2.scala @@ -0,0 +1,6 @@ +package example + +object A +{ + val x: Int = B.y +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/added/changes/A3.scala b/sbt-bridge/src/sbt-test/source-dependencies/added/changes/A3.scala new file mode 100644 index 000000000..ec450b67e --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/added/changes/A3.scala @@ -0,0 +1,6 @@ +package example + +object A +{ + val x: String = B.y +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/added/changes/B1.scala b/sbt-bridge/src/sbt-test/source-dependencies/added/changes/B1.scala new file mode 100644 index 000000000..9b5cc4ee9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/added/changes/B1.scala @@ -0,0 +1,6 @@ +package example + +object B +{ + val y: String = "4" +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/added/changes/B2.scala b/sbt-bridge/src/sbt-test/source-dependencies/added/changes/B2.scala new file mode 100644 index 000000000..fc8c53c9c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/added/changes/B2.scala @@ -0,0 +1,6 @@ +package example + +object B +{ + val y: Int = 5 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/added/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/added/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/added/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/added/test b/sbt-bridge/src/sbt-test/source-dependencies/added/test new file mode 100644 index 000000000..a1ab31849 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/added/test @@ -0,0 +1,28 @@ +# This test checks that when a source file included in a partial recompilation adds a dependency on +# a file not included in the partial recompilation, the dependency is properly recorded. + +# B and A are independent, so both should compile successfully +$ copy-file changes/A1.scala src/main/scala/A.scala +$ copy-file changes/B1.scala src/main/scala/B.scala +> compile + + +# A now depends on B and to check that it was recompiled, we mismatch the types, which should fail +$ copy-file changes/A2.scala src/main/scala/A.scala +-> compile + + +# We now correct the type so that it compiles successfully and this should introduce a dependency from A to B +$ copy-file changes/A3.scala src/main/scala/A.scala +> compile + + +# If the dependency from A to B was properly introduced, changing the type of B.y to Int should make +# the following statement in A a compiler error: +# val x: String = B.y +$ copy-file changes/B2.scala src/main/scala/B.scala +-> compile + +# verify this was the correct result by doing a clean+compile +> clean +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/A.scala new file mode 100644 index 000000000..fe6a784a4 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/A.scala @@ -0,0 +1,6 @@ +abstract class A { + type T + object X { + def foo(x: T): T = x + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/B.scala new file mode 100644 index 000000000..60059966f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/B.scala @@ -0,0 +1,3 @@ +class B extends A { + type T = Int +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/C.scala new file mode 100644 index 000000000..3753dbeec --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/C.scala @@ -0,0 +1 @@ +object C extends B diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/D.scala b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/D.scala new file mode 100644 index 000000000..ace241491 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/D.scala @@ -0,0 +1,3 @@ +object D { + C.X.foo(12) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/changes/B2.scala b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/changes/B2.scala new file mode 100644 index 000000000..18f3eefdd --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/changes/B2.scala @@ -0,0 +1,3 @@ +class B extends A { + type T = String +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/test b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/test new file mode 100644 index 000000000..176a86399 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-a/test @@ -0,0 +1,3 @@ +> compile +$ copy-file changes/B2.scala B.scala +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/A.scala new file mode 100644 index 000000000..f4ae0b78d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/A.scala @@ -0,0 +1,7 @@ +abstract class A { + type T <: S + type S + object X { + def foo: T = null.asInstanceOf[T] + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/B.scala new file mode 100644 index 000000000..f97007480 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/B.scala @@ -0,0 +1,3 @@ +class B extends A { + type S <: Int +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/C.scala new file mode 100644 index 000000000..3753dbeec --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/C.scala @@ -0,0 +1 @@ +object C extends B diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/D.scala b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/D.scala new file mode 100644 index 000000000..ec333ca60 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/D.scala @@ -0,0 +1,3 @@ +object D { + val x: Int = C.X.foo +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/changes/B2.scala b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/changes/B2.scala new file mode 100644 index 000000000..f8fa3ad03 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/changes/B2.scala @@ -0,0 +1,3 @@ +class B extends A { + type S <: String +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/test b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/test new file mode 100644 index 000000000..176a86399 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/as-seen-from-b/test @@ -0,0 +1,3 @@ +> compile +$ copy-file changes/B2.scala B.scala +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/A.scala new file mode 100644 index 000000000..1d3a976a8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/A.scala @@ -0,0 +1,3 @@ +object A { + def `=` = 3 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/B.scala new file mode 100644 index 000000000..03d8769fd --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/B.scala @@ -0,0 +1,3 @@ +object B extends dotty.runtime.LegacyApp { + println(A.`=`) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/build.sbt new file mode 100644 index 000000000..8a38ef414 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/build.sbt @@ -0,0 +1 @@ +incOptions := incOptions.value.withNameHashing(true) diff --git a/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/changes/A.scala new file mode 100644 index 000000000..b473714fa --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/changes/A.scala @@ -0,0 +1,3 @@ +object A { + def asdf = 3 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/test b/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/test new file mode 100644 index 000000000..d4d386615 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/backtick-quoted-names/test @@ -0,0 +1,7 @@ +> compile + +# rename def with symbolic name (`=`) +$ copy-file changes/A.scala A.scala + +# Both A.scala and B.scala should be recompiled, producing a compile error +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/binary/changes/Break.scala b/sbt-bridge/src/sbt-test/source-dependencies/binary/changes/Break.scala new file mode 100644 index 000000000..88d8ef9a3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/binary/changes/Break.scala @@ -0,0 +1 @@ +object Break \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/binary/dep/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/binary/dep/A.scala new file mode 100644 index 000000000..91d3855f6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/binary/dep/A.scala @@ -0,0 +1,3 @@ +object A { + val x = 3 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/binary/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/binary/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/binary/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/binary/project/P.scala b/sbt-bridge/src/sbt-test/source-dependencies/binary/project/P.scala new file mode 100644 index 000000000..d5d84e5a4 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/binary/project/P.scala @@ -0,0 +1,10 @@ +import sbt._ +import Keys._ + +object B extends Build +{ + lazy val dep = Project("dep", file("dep")) + lazy val use = Project("use", file("use")) settings( + unmanagedJars in Compile <+= packageBin in (dep, Compile) map Attributed.blank + ) +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/binary/test b/sbt-bridge/src/sbt-test/source-dependencies/binary/test new file mode 100644 index 000000000..058c5492c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/binary/test @@ -0,0 +1,6 @@ +# done this way because last modified times often have ~1s resolution +> use/package +$ sleep 2000 + +$ copy-file changes/Break.scala dep/A.scala +-> use/compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/binary/use/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/binary/use/B.scala new file mode 100644 index 000000000..5f371ab41 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/binary/use/B.scala @@ -0,0 +1,3 @@ +object B { + val y = A.x +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/by-name/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/by-name/A.scala new file mode 100644 index 000000000..46ec286ff --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/by-name/A.scala @@ -0,0 +1,4 @@ +object A +{ + def x(i: => String) = () +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/by-name/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/by-name/B.scala new file mode 100644 index 000000000..a06f3a186 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/by-name/B.scala @@ -0,0 +1,4 @@ +object B +{ + val x = A.x("3") +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/by-name/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/by-name/changes/A.scala new file mode 100644 index 000000000..0d12dd477 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/by-name/changes/A.scala @@ -0,0 +1,4 @@ +object A +{ + def x(i: Function0[String]) = () +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/by-name/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/by-name/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/by-name/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/by-name/test b/sbt-bridge/src/sbt-test/source-dependencies/by-name/test new file mode 100644 index 000000000..4306d3bcc --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/by-name/test @@ -0,0 +1,7 @@ +> compile + +# change => Int to Function0 +$ copy-file changes/A.scala A.scala + +# Both A.scala and B.scala need to be recompiled because the type has changed +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/canon/Use.scala b/sbt-bridge/src/sbt-test/source-dependencies/canon/Use.scala new file mode 100644 index 000000000..fe9e21714 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/canon/Use.scala @@ -0,0 +1,3 @@ +object Use { + val x = A.x +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/canon/actual/A.java b/sbt-bridge/src/sbt-test/source-dependencies/canon/actual/A.java new file mode 100644 index 000000000..693c5b932 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/canon/actual/A.java @@ -0,0 +1,4 @@ +// this is the source for the compiled class in a.jar +public class A { + public static final int x = 3; +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/canon/actual/a.jar b/sbt-bridge/src/sbt-test/source-dependencies/canon/actual/a.jar new file mode 100644 index 000000000..5c63ca5e9 Binary files /dev/null and b/sbt-bridge/src/sbt-test/source-dependencies/canon/actual/a.jar differ diff --git a/sbt-bridge/src/sbt-test/source-dependencies/canon/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/canon/build.sbt new file mode 100644 index 000000000..d23dff705 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/canon/build.sbt @@ -0,0 +1,10 @@ +import complete.DefaultParsers._ + +val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") + +checkIterations := { + val expected: Int = (Space ~> NatBasic).parsed + val actual: Int = (compile in Compile).value.compilations.allCompilations.size + assert(expected == actual, s"Expected $expected compilations, got $actual") +} + diff --git a/sbt-bridge/src/sbt-test/source-dependencies/canon/lib/a.jar b/sbt-bridge/src/sbt-test/source-dependencies/canon/lib/a.jar new file mode 120000 index 000000000..9fa4156a8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/canon/lib/a.jar @@ -0,0 +1 @@ +../actual/a.jar \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/canon/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/canon/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/canon/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/canon/test b/sbt-bridge/src/sbt-test/source-dependencies/canon/test new file mode 100644 index 000000000..13caf4871 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/canon/test @@ -0,0 +1,10 @@ +# Tests that classpath entries that are different than their canonical representation are +# handled properly. In particular, a symlink from lib/a.jar to lib/../actual/a.jar.0 is +# available on the classpath and read by scalac. scalac 2.10.x does not interpret .jar.0 +# as a jar, so if sbt passes the canonical path, it will not be read. +# This also verifies that compilation does not get repeatedly triggered by a mismatch in +# paths. + +> compile +> compile +> checkIterations 1 \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/compactify/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/compactify/build.sbt new file mode 100644 index 000000000..f44ca0862 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/compactify/build.sbt @@ -0,0 +1,9 @@ +TaskKey[Unit]("output-empty") <<= classDirectory in Configurations.Compile map { outputDirectory => + def classes = (outputDirectory ** "*.class").get + if(!classes.isEmpty) sys.error("Classes existed:\n\t" + classes.mkString("\n\t")) else () +} + +// apparently Travis CI stopped allowing long file names +// it fails with the default setting of 255 characters so +// we have to set lower limit ourselves +scalacOptions ++= Seq("-Xmax-classfile-name", "240") diff --git a/sbt-bridge/src/sbt-test/source-dependencies/compactify/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/compactify/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/compactify/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/For.scala b/sbt-bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/For.scala new file mode 100644 index 000000000..5d1b8c4db --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/For.scala @@ -0,0 +1,44 @@ +package somereallylongpackagenamethatwilltestsbtsanalyzer_somereallylongpackagenamethatwilltestsbtsanalyzer.somereallylongpackagenamethatwilltestsbtsanalyzer + +object T +{ + val y = List(3) + for(a <- y; + b <- y; + c <- y; + d <- y; + e <- y; + f <- y; + g <- y; + h <- y; + i <- y; + j <- y; + k <- y; + l <- y; + m <- y; + n <- y; + o <- y; + p <- y; + q <- y; + r <- y; + s <- y; + t <- y; + u <- y; + v <- y; + w <- y; + x <- y; + yx <- y; + z <- y; + aa <- y; + bb <- y; + cc <- y; + dd <- y; + ee <- y; + ff <- y; + gg <- y; + hh<- y; + ii <- y; + jj <- y; + kk <- y + ) yield a + b + c + d + e +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/Nested.scala b/sbt-bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/Nested.scala new file mode 100644 index 000000000..798868d72 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/compactify/src/main/scala/Nested.scala @@ -0,0 +1,41 @@ +package test + +object TopLevelModule1 +{ + object InnerModule1 + { + object InnerModule2 + { + trait Z { def q = 3 } + def x = 3 + } + } + class InnerClass1 + { + class InnerClass2 + { + val z = new TopLevelModule1.InnerClass2 + } + object InnerModule3 + { + val y = new TopLevel1 with InnerModule1.InnerModule2.Z { val x = 4 } + } + } + class InnerClass2 +} +class TopLevel1 +{ + object Inner1_1 +} +object TopLevel1 +{ + class Inner1_2 + object Inner1_2 +} + +object TopLevel2 +class TopLevel2 + +object TopLevel3 + +class TopLevel4 \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/compactify/test b/sbt-bridge/src/sbt-test/source-dependencies/compactify/test new file mode 100644 index 000000000..e2abf578b --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/compactify/test @@ -0,0 +1,8 @@ +# Marked pending due to https://github.com/sbt/sbt/issues/1553 + +> output-empty +> compile +-> output-empty +$ delete src/main/scala/For.scala src/main/scala/Nested.scala +> compile +> output-empty \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/constants/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/constants/changes/A1.scala new file mode 100644 index 000000000..f67b6f474 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/constants/changes/A1.scala @@ -0,0 +1 @@ +object A { final val x = 1 } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/constants/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/constants/changes/A2.scala new file mode 100644 index 000000000..4f9396f13 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/constants/changes/A2.scala @@ -0,0 +1 @@ +object A { final val x = 2 } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/constants/changes/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/constants/changes/B.scala new file mode 100644 index 000000000..058527993 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/constants/changes/B.scala @@ -0,0 +1,4 @@ +object B +{ + def main(args: Array[String]) = assert(args(0).toInt == A.x ) +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/constants/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/constants/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/constants/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/constants/test b/sbt-bridge/src/sbt-test/source-dependencies/constants/test new file mode 100644 index 000000000..7a5ae5879 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/constants/test @@ -0,0 +1,12 @@ +# Marked as pending, see https://github.com/sbt/sbt/issues/1543 +# Tests if source dependencies are tracked properly +# for compile-time constants (like final vals in top-level objects) +# see https://issues.scala-lang.org/browse/SI-7173 for details +# why compile-time constants can be tricky to track due to early inlining + +$ copy-file changes/B.scala B.scala + +$ copy-file changes/A1.scala A.scala +> run 1 +$ copy-file changes/A2.scala A.scala +> run 2 diff --git a/sbt-bridge/src/sbt-test/source-dependencies/default-params/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/default-params/A.scala new file mode 100644 index 000000000..50baa662f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/default-params/A.scala @@ -0,0 +1,5 @@ +object A +{ + def x(f: String, g: Int): Int = g + def x(f: Int, g: Int = 3): Int = g +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/default-params/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/default-params/B.scala new file mode 100644 index 000000000..59a7159f9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/default-params/B.scala @@ -0,0 +1,4 @@ +object B +{ + val y = A.x(5) +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/default-params/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/default-params/changes/A.scala new file mode 100644 index 000000000..b59015306 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/default-params/changes/A.scala @@ -0,0 +1,5 @@ +object A +{ + def x(f: String, g: Int = 3): Int = g + def x(f: Int, g: Int): Int = g +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/default-params/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/default-params/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/default-params/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/default-params/test b/sbt-bridge/src/sbt-test/source-dependencies/default-params/test new file mode 100644 index 000000000..1e674f8f6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/default-params/test @@ -0,0 +1,9 @@ +> compile + +# switch which 'x' method has a default for the second parameter in A +# this change is selected because of the encoding of default method names +$ copy-file changes/A.scala A.scala + +# Both A.scala and B.scala need to be recompiled because the parameter needs to be explicitly provided +# and it should be a compile error +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/dup-class/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/dup-class/changes/A.scala new file mode 100644 index 000000000..264775513 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/dup-class/changes/A.scala @@ -0,0 +1,3 @@ +package clear + +object A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/dup-class/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/dup-class/changes/A2.scala new file mode 100644 index 000000000..264775513 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/dup-class/changes/A2.scala @@ -0,0 +1,3 @@ +package clear + +object A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/dup-class/changes/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/dup-class/changes/B.scala new file mode 100644 index 000000000..50df7082c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/dup-class/changes/B.scala @@ -0,0 +1,3 @@ +package clear + +object B diff --git a/sbt-bridge/src/sbt-test/source-dependencies/dup-class/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/dup-class/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/dup-class/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/dup-class/test b/sbt-bridge/src/sbt-test/source-dependencies/dup-class/test new file mode 100644 index 000000000..531553bb5 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/dup-class/test @@ -0,0 +1,6 @@ +$ copy-file changes/A.scala A.scala +> compile +$ copy-file changes/A2.scala B.scala +-> compile +$ copy-file changes/B.scala B.scala +> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/empty-a/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/empty-a/changes/A.scala new file mode 100644 index 000000000..0c52ad165 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/empty-a/changes/A.scala @@ -0,0 +1,6 @@ +package a + +object A +{ + def x = "A" +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/empty-a/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/empty-a/changes/A2.scala new file mode 100644 index 000000000..2e85f9808 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/empty-a/changes/A2.scala @@ -0,0 +1,6 @@ +/*package a + +object A +{ + def x = "A" +}*/ \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/empty-a/changes/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/empty-a/changes/B.scala new file mode 100644 index 000000000..7865ddcec --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/empty-a/changes/B.scala @@ -0,0 +1,6 @@ +package a + +class B +{ + def x = A.x +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/empty-a/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/empty-a/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/empty-a/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/empty-a/test b/sbt-bridge/src/sbt-test/source-dependencies/empty-a/test new file mode 100644 index 000000000..d0f0b25a8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/empty-a/test @@ -0,0 +1,19 @@ +$ copy-file changes/A.scala src/main/scala/A.scala +> compile + +$ copy-file changes/A2.scala src/main/scala/A.scala +> compile + +$ copy-file changes/B.scala src/main/scala/B.scala +-> compile + +$ copy-file changes/A.scala src/main/scala/A.scala +> compile + +$ delete src/main/scala/B.scala +$ copy-file changes/A2.scala src/main/scala/A.scala +> compile + +$ copy-file changes/A.scala src/main/scala/A.scala +$ copy-file changes/B.scala src/main/scala/B.scala +> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/empty-package/changes/Define1.scala b/sbt-bridge/src/sbt-test/source-dependencies/empty-package/changes/Define1.scala new file mode 100644 index 000000000..9317a8425 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/empty-package/changes/Define1.scala @@ -0,0 +1,3 @@ +package a.pkgName + +object Test diff --git a/sbt-bridge/src/sbt-test/source-dependencies/empty-package/changes/Define2.scala b/sbt-bridge/src/sbt-test/source-dependencies/empty-package/changes/Define2.scala new file mode 100644 index 000000000..ed2d7ae8a --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/empty-package/changes/Define2.scala @@ -0,0 +1,3 @@ +package pkgName + +object Test diff --git a/sbt-bridge/src/sbt-test/source-dependencies/empty-package/changes/Use.scala b/sbt-bridge/src/sbt-test/source-dependencies/empty-package/changes/Use.scala new file mode 100644 index 000000000..b4d87c711 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/empty-package/changes/Use.scala @@ -0,0 +1,7 @@ +package a + +import pkgName.Test + +object Use { + val x = Test +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/empty-package/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/empty-package/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/empty-package/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/empty-package/test b/sbt-bridge/src/sbt-test/source-dependencies/empty-package/test new file mode 100644 index 000000000..718e7f125 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/empty-package/test @@ -0,0 +1,12 @@ +$ copy-file changes/Define1.scala Define.scala +$ copy-file changes/Use.scala Use.scala +> compile + +$ copy-file changes/Define2.scala Define.scala +> compile + +$ delete Define.scala +-> compile + +$ copy-file changes/Define1.scala Define.scala +> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/erasure/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/erasure/A.scala new file mode 100644 index 000000000..63b240ac6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/erasure/A.scala @@ -0,0 +1,3 @@ +object A { + def x: List[Int] = List(3) +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/erasure/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/erasure/B.scala new file mode 100644 index 000000000..1c636101f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/erasure/B.scala @@ -0,0 +1,3 @@ +object B { + val y: List[Int] = A.x +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/erasure/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/erasure/changes/A.scala new file mode 100644 index 000000000..c1bceae79 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/erasure/changes/A.scala @@ -0,0 +1,3 @@ +object A { + def x: List[String] = List("3") +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/erasure/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/erasure/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/erasure/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/erasure/test b/sbt-bridge/src/sbt-test/source-dependencies/erasure/test new file mode 100644 index 000000000..aaca5a2e3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/erasure/test @@ -0,0 +1,4 @@ +> compile + +$ copy-file changes/A.scala A.scala +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/A1.scala new file mode 100644 index 000000000..210adf865 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/A1.scala @@ -0,0 +1 @@ +object A { val x = 1 } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/A2.scala new file mode 100644 index 000000000..799400c8c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/A2.scala @@ -0,0 +1 @@ +object A { val x = 2 } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/A3.scala b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/A3.scala new file mode 100644 index 000000000..25fb93965 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/A3.scala @@ -0,0 +1 @@ +object A { def x = 3 } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/B.scala new file mode 100644 index 000000000..058527993 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/B.scala @@ -0,0 +1,4 @@ +object B +{ + def main(args: Array[String]) = assert(args(0).toInt == A.x ) +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/build2.sbt b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/build2.sbt new file mode 100644 index 000000000..0f5735bc8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/changes/build2.sbt @@ -0,0 +1 @@ +exportJars := true \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/export-jars/project/Build.scala b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/project/Build.scala new file mode 100644 index 000000000..4a783acbe --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/project/Build.scala @@ -0,0 +1,7 @@ +import sbt._ + +object Build extends Build +{ + lazy val root = Project("root", file(".")) dependsOn(a) + lazy val a = Project("a", file("a")) +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/export-jars/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/export-jars/test b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/test new file mode 100644 index 000000000..e06ce1ee5 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/export-jars/test @@ -0,0 +1,27 @@ +$ copy-file changes/B.scala B.scala + +$ copy-file changes/A1.scala a/A.scala +> run 1 +$ copy-file changes/A2.scala a/A.scala + +# done this way because last modified times often have ~1s resolution +$ sleep 2000 +> run 2 +$ copy-file changes/A3.scala a/A.scala + +$ sleep 2000 +> run 3 + +$ copy-file changes/build2.sbt build.sbt +> reload + +$ copy-file changes/A1.scala a/A.scala +> run 1 +$ copy-file changes/A2.scala a/A.scala + +$ sleep 2000 +> run 2 +$ copy-file changes/A3.scala a/A.scala + +$ sleep 2000 +> run 3 diff --git a/sbt-bridge/src/sbt-test/source-dependencies/ext/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/ext/A.scala new file mode 100644 index 000000000..ad9931075 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/ext/A.scala @@ -0,0 +1,5 @@ +import sun.net.spi.nameservice.dns.DNSNameService + +object A { + val x = new DNSNameService +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/ext/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/ext/build.sbt new file mode 100644 index 000000000..8aaec76ec --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/ext/build.sbt @@ -0,0 +1,9 @@ +import complete.DefaultParsers._ + +val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") + +checkIterations := { + val expected: Int = (Space ~> NatBasic).parsed + val actual: Int = (compile in Compile).value.compilations.allCompilations.size + assert(expected == actual, s"Expected $expected compilations, got $actual") +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/ext/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/ext/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/ext/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/ext/test b/sbt-bridge/src/sbt-test/source-dependencies/ext/test new file mode 100644 index 000000000..2b01a3de7 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/ext/test @@ -0,0 +1,7 @@ +# initial compilation +> checkIterations 1 + +# no further compilation should be necessary, since nothing changed +# previously, a dependency on a jar in lib/ext/ would +# always force recompilation +> checkIterations 1 \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/false-error/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/false-error/A.scala new file mode 100644 index 000000000..64675b5e3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/false-error/A.scala @@ -0,0 +1,4 @@ +object A { + val x = 3 + val z: Int = B.y +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/false-error/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/false-error/B.scala new file mode 100644 index 000000000..756aeacf6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/false-error/B.scala @@ -0,0 +1,3 @@ +object B { + val y = A.x +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/false-error/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/false-error/changes/A.scala new file mode 100644 index 000000000..b2c9dfb26 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/false-error/changes/A.scala @@ -0,0 +1,4 @@ +object A { + val x = "3" + val z: String = B.y +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/false-error/pending b/sbt-bridge/src/sbt-test/source-dependencies/false-error/pending new file mode 100644 index 000000000..80c8ec9bf --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/false-error/pending @@ -0,0 +1,5 @@ +> compile + +$ copy-file changes/A.scala A.scala + +> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/false-error/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/false-error/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/false-error/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/fbounded-existentials/fbounds.scala b/sbt-bridge/src/sbt-test/source-dependencies/fbounded-existentials/fbounds.scala new file mode 100644 index 000000000..60fe40879 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/fbounded-existentials/fbounds.scala @@ -0,0 +1,10 @@ +class Dep { + // The API representation for `bla`'s result type contains a cycle + // (an existential's type variable's bound is the existential type itself) + // This results in a stack overflow while showing the API diff. + // Note that the actual result type in the compiler is not cyclic + // (the f-bounded existential for Comparable is truncated) + def bla(c: Boolean) = if (c) new Value else "bla" +} + +class Value extends java.lang.Comparable[Value] { def compareTo(that: Value): Int = 1 } \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/fbounded-existentials/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/fbounded-existentials/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/fbounded-existentials/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/fbounded-existentials/test b/sbt-bridge/src/sbt-test/source-dependencies/fbounded-existentials/test new file mode 100644 index 000000000..5df2af1f3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/fbounded-existentials/test @@ -0,0 +1 @@ +> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/A.scala new file mode 100644 index 000000000..598d266d4 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/A.scala @@ -0,0 +1,6 @@ +class A +{ + implicit def e: E = new E + def x(i: Int)(implicit y: E): String = "" +} +class E \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/B.scala new file mode 100644 index 000000000..3273cdceb --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/B.scala @@ -0,0 +1,4 @@ +object B extends A +{ + val y = x(3) +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/changes/A.scala new file mode 100644 index 000000000..2de2c62ee --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/changes/A.scala @@ -0,0 +1,6 @@ +class A +{ + implicit def e: E = new E + def x(i: Int)(y: E): String = "" +} +class E \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/test b/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/test new file mode 100644 index 000000000..5a2bcc0f4 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-params/test @@ -0,0 +1,8 @@ +> compile + +# make implicit parameters in A.x be explicit +$ copy-file changes/A.scala A.scala + +# Both A.scala and B.scala need to be recompiled because the parameter section is no longer implicit +# and it should be a compile error +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A1.scala new file mode 100644 index 000000000..5a58c097b --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A1.scala @@ -0,0 +1,2 @@ +trait A +object A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A2.scala new file mode 100644 index 000000000..8a0b629bc --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/A2.scala @@ -0,0 +1,4 @@ +trait A +object A { + implicit def m[A]: M[A] = ??? +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/B.scala new file mode 100644 index 000000000..c49ed55ad --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/B.scala @@ -0,0 +1,2 @@ + +trait B extends A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/C.scala new file mode 100644 index 000000000..7fd803222 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/C.scala @@ -0,0 +1,3 @@ +object Test { + implicitly[M[B]] +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/M.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/M.scala new file mode 100644 index 000000000..9464f4238 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/changes/M.scala @@ -0,0 +1,4 @@ +class M[A](a: A) +object M { + implicit def m[A]: M[A] = ??? +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/test b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/test new file mode 100644 index 000000000..701b2c9a5 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search-companion-scope/test @@ -0,0 +1,12 @@ +# Tests if dependencies on implicit scope are tracked properly +$ copy-file changes/A1.scala A.scala +$ copy-file changes/B.scala B.scala +$ copy-file changes/M.scala M.scala +$ copy-file changes/C.scala C.scala +> compile + +$ copy-file changes/A2.scala A.scala +-> compile + +> clean +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/A1.scala new file mode 100644 index 000000000..7aa91d096 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/A1.scala @@ -0,0 +1 @@ +object A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/A2.scala new file mode 100644 index 000000000..45930d594 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/A2.scala @@ -0,0 +1,3 @@ +object A { + val x = 1 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/B.scala new file mode 100644 index 000000000..3e5db4c7e --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/B.scala @@ -0,0 +1,4 @@ +object B { + implicit val x: Ordering[Int] = ??? +} + diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/C.scala new file mode 100644 index 000000000..bdf19dd1d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/changes/C.scala @@ -0,0 +1,6 @@ +object C { + import A._, B._ + implicitly[Ordering[Int]] + + def main(args: Array[String]): Unit = () +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/test b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/test new file mode 100644 index 000000000..1b73c1fe6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit-search/test @@ -0,0 +1,9 @@ +$ copy-file changes/A1.scala A.scala +$ copy-file changes/B.scala B.scala +$ copy-file changes/C.scala C.scala +> compile +-> run + +$ copy-file changes/A2.scala A.scala +> compile +-> run diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit/A.scala new file mode 100644 index 000000000..765f66013 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit/A.scala @@ -0,0 +1,4 @@ +class A +{ + implicit def x(i: Int): String = i.toString +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit/B.scala new file mode 100644 index 000000000..ec0200dfa --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit/B.scala @@ -0,0 +1,4 @@ +object B extends A +{ + val x: String = 3 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit/changes/A.scala new file mode 100644 index 000000000..24f8e4069 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit/changes/A.scala @@ -0,0 +1,4 @@ +class A +{ + def x(i: Int): String = i.toString +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/implicit/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/implicit/test b/sbt-bridge/src/sbt-test/source-dependencies/implicit/test new file mode 100644 index 000000000..73aaab1d9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/implicit/test @@ -0,0 +1,7 @@ +> compile + +# change A.x to be implicit +$ copy-file changes/A.scala A.scala + +# Both A.scala and B.scala need to be recompiled because a new implicit is available +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/import-class/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/import-class/A.scala new file mode 100644 index 000000000..a93bbe535 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/import-class/A.scala @@ -0,0 +1,3 @@ +package a + +class A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/import-class/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/import-class/B.scala new file mode 100644 index 000000000..0489f4a26 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/import-class/B.scala @@ -0,0 +1 @@ +import a.A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/import-class/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/import-class/changes/A.scala new file mode 100644 index 000000000..2a93cdef5 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/import-class/changes/A.scala @@ -0,0 +1 @@ +package a diff --git a/sbt-bridge/src/sbt-test/source-dependencies/import-class/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/import-class/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/import-class/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/import-class/test b/sbt-bridge/src/sbt-test/source-dependencies/import-class/test new file mode 100644 index 000000000..7679ba52c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/import-class/test @@ -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-bridge/src/sbt-test/source-dependencies/import-package/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/import-package/A.scala new file mode 100644 index 000000000..1c94ccf3a --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/import-package/A.scala @@ -0,0 +1 @@ +package a.b \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/import-package/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/import-package/B.scala new file mode 100644 index 000000000..10ee10d82 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/import-package/B.scala @@ -0,0 +1 @@ +import a.b \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/import-package/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/import-package/changes/A.scala new file mode 100644 index 000000000..d63f93ea4 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/import-package/changes/A.scala @@ -0,0 +1 @@ +package a \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/import-package/pending b/sbt-bridge/src/sbt-test/source-dependencies/import-package/pending new file mode 100644 index 000000000..5dc9851d5 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/import-package/pending @@ -0,0 +1,8 @@ +> compile + +# shorten the package defined in A from 'a.b' to 'a'. +$ copy-file changes/A.scala A.scala + +# 'import a.b' should now fail in B.scala +# succeeds because scalac doesn't track this dependency +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/import-package/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/import-package/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/import-package/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/A.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/A.java new file mode 100644 index 000000000..894125a7e --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/A.java @@ -0,0 +1 @@ +class A implements B.T, E {} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/B.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/B.java new file mode 100644 index 000000000..6b54edc7d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/B.java @@ -0,0 +1,11 @@ +public class B { + static interface T extends C {} + + // not public, so this shouldn't be tracked as an inherited dependency + private class Q implements E {} + + public void x(int i) { + // not public, not an inherited dependency + D j = new D() {}; + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/C.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/C.java new file mode 100644 index 000000000..6c06f4033 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/C.java @@ -0,0 +1 @@ +interface C extends D {} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/D.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/D.java new file mode 100644 index 000000000..9455ef5b0 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/D.java @@ -0,0 +1 @@ +interface D extends G.P {} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/E.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/E.java new file mode 100644 index 000000000..d5e4d6517 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/E.java @@ -0,0 +1 @@ +public interface E {} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/F.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/F.java new file mode 100644 index 000000000..e205778d5 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/F.java @@ -0,0 +1,3 @@ +public class F { + public C q() { return null; } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/G.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/G.java new file mode 100644 index 000000000..ed3429f8c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/G.java @@ -0,0 +1,3 @@ +public class G { + static interface P extends J {} +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/J.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/J.java new file mode 100644 index 000000000..8aeeb05b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/J.java @@ -0,0 +1 @@ +public interface J {} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/build.sbt new file mode 100644 index 000000000..c25b54921 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/build.sbt @@ -0,0 +1,30 @@ +// this test is specific to the old incremental compilation algorithm +incOptions := incOptions.value.withNameHashing(false) + +lazy val verifyDeps = taskKey[Unit]("verify inherited dependencies are properly extracted") + +verifyDeps := { + val a = compile.in(Compile).value + same(a.relations.publicInherited.internal.forwardMap, expectedDeps.forwardMap) +} + +lazy val expected = Seq( + "A" -> Seq("C", "D", "E", "G", "J"), + "B" -> Seq("C", "D", "G", "J"), + "C" -> Seq("D", "G", "J"), + "D" -> Seq("G", "J"), + "E" -> Seq(), + "F" -> Seq(), + "G" -> Seq("J"), + "J" -> Seq() +) +lazy val pairs = + expected.map { case (from,tos) => + (toFile(from), tos.map(toFile)) + } +lazy val expectedDeps = (Relation.empty[File,File] /: pairs) { case (r, (x,ys)) => r + (x,ys) } +def toFile(s: String) = file(s + ".java").getAbsoluteFile + +def same[T](x: T, y: T): Unit = { + assert(x == y, s"\nActual: $x, \nExpected: $y") +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/test b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/test new file mode 100644 index 000000000..e5d477601 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/test @@ -0,0 +1 @@ +> verifyDeps diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/A.scala new file mode 100644 index 000000000..9de61dd5f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/A.scala @@ -0,0 +1,7 @@ + +trait Equal[-A] { + def equal(a1: A, a2: A): Boolean +} +object Test { + implicit def TraversableEqual[CC[X] <: collection.TraversableLike[X, CC[X]] with Traversable[X], A: Equal]: Equal[CC[A]] = error("") +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/build.sbt new file mode 100644 index 000000000..a5982f901 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/build.sbt @@ -0,0 +1,7 @@ +name := "test" + +TaskKey[Unit]("check-same") <<= compile in Configurations.Compile map { analysis => + analysis.apis.internal foreach { case (_, api) => + assert( xsbt.api.SameAPI(api.api, api.api) ) + } +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/test b/sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/test new file mode 100644 index 000000000..8434347c5 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited_type_params/test @@ -0,0 +1 @@ +> check-same \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inline/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/inline/A.scala new file mode 100644 index 000000000..e889eef79 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inline/A.scala @@ -0,0 +1,3 @@ +object A { + def get: Int = 1 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inline/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/inline/C.scala new file mode 100644 index 000000000..caeb61535 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inline/C.scala @@ -0,0 +1,5 @@ +object C { + def main(args: Array[String]): Unit = { + val i: Int = B.getInline + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inline/changes/B1.scala b/sbt-bridge/src/sbt-test/source-dependencies/inline/changes/B1.scala new file mode 100644 index 000000000..5685152b3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inline/changes/B1.scala @@ -0,0 +1,4 @@ +object B { + @inline def getInline: Int = + A.get +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inline/changes/B2.scala b/sbt-bridge/src/sbt-test/source-dependencies/inline/changes/B2.scala new file mode 100644 index 000000000..1de104357 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inline/changes/B2.scala @@ -0,0 +1,4 @@ +object B { + @inline def getInline: Double = + A.get +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inline/changes/B3.scala b/sbt-bridge/src/sbt-test/source-dependencies/inline/changes/B3.scala new file mode 100644 index 000000000..991bd17b8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inline/changes/B3.scala @@ -0,0 +1,4 @@ +object B { + @inline def getInline: Int = + sys.error("This is an expected failure when running C") +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inline/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/inline/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inline/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inline/test b/sbt-bridge/src/sbt-test/source-dependencies/inline/test new file mode 100644 index 000000000..56fdb0486 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/inline/test @@ -0,0 +1,14 @@ +$ copy-file changes/B1.scala B.scala +> compile + +$ copy-file changes/B2.scala B.scala +# Compilation of C.scala should fail because B.getInline now has type Double instead of Int +-> compile + +$ copy-file changes/B1.scala B.scala +> run + +$ copy-file changes/B3.scala B.scala +# The body of B.getInline was changed so C.scala should be recompiled +# If it was recompiled, run should fail since B.getInline now throws an exception +-> run diff --git a/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/A.scala new file mode 100644 index 000000000..392db0805 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/A.scala @@ -0,0 +1,6 @@ +object A +{ + def x = 3 + //def x: String = 3 + //def x: String = "3" +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/B.scala new file mode 100644 index 000000000..1a1e0c06f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/B.scala @@ -0,0 +1,4 @@ +object B +{ + val y: Int = A.x +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A2.scala new file mode 100644 index 000000000..ba9953954 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A2.scala @@ -0,0 +1,6 @@ +object A +{ + //def x = 3 + def x: String = 3 + //def x: String = "3" +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A3.scala b/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A3.scala new file mode 100644 index 000000000..f020041ea --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/changes/A3.scala @@ -0,0 +1,6 @@ +object A +{ + //def x = 3 + //def x: String = 3 + def x: String = "3" +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/test b/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/test new file mode 100644 index 000000000..e3016a9c6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/intermediate-error/test @@ -0,0 +1,7 @@ +> compile + +$ copy-file changes/A2.scala A.scala +-> compile + +$ copy-file changes/A3.scala A.scala +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/Outer.java b/sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/Outer.java new file mode 100644 index 000000000..0cf8276a9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/Outer.java @@ -0,0 +1 @@ +public class Outer { private class T extends Thread {} } \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/build.sbt new file mode 100644 index 000000000..1b1ddefb9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/build.sbt @@ -0,0 +1 @@ +incOptions := incOptions.value.withNameHashing(true).withApiDebug(true) diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/test b/sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/test new file mode 100644 index 000000000..5df2af1f3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-analysis-serialization-error/test @@ -0,0 +1 @@ +> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/A.java b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/A.java new file mode 100644 index 000000000..c84f997f4 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/A.java @@ -0,0 +1,6 @@ +package a; + +public class A +{ + public static int x() { return 3; } +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/A2.java b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/A2.java new file mode 100644 index 000000000..36270f805 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/A2.java @@ -0,0 +1,6 @@ +package a.b; + +public class A +{ + public static int x() { return 3; } +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/B1.java b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/B1.java new file mode 100644 index 000000000..ec9a67e1a --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/B1.java @@ -0,0 +1,6 @@ +package a.b; + +public class B +{ + public int y() { return 3; } +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/B2.java b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/B2.java new file mode 100644 index 000000000..551900114 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/B2.java @@ -0,0 +1,6 @@ +package a.b; + +public class B +{ + public int y() { return a.A.x(); } +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/B3.java b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/B3.java new file mode 100644 index 000000000..1ec729b74 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/changes/B3.java @@ -0,0 +1,6 @@ +package a.b; + +public class B +{ + public static void main(String[] args) {} +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-basic/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-basic/test b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/test new file mode 100644 index 000000000..9dac40735 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-basic/test @@ -0,0 +1,45 @@ +# Basic test for Java dependency tracking +> 'eval System.setProperty("xsbt.inc.debug", "true")' + +# A is a basic Java file with no dependencies. Just a basic check for Java compilation +$ copy-file changes/A.java src/main/java/a/A.java +> compile + +# A2 is a basic Java file with no dependencies. This is added to verify +# that classes are properly mapped back to their source. +# (There are two files named A.java now, one in a/ and one in a/b) +$ copy-file changes/A2.java src/main/java/a/b/A.java +> compile + +# This adds B, another basic Java file with no dependencies +$ copy-file changes/B1.java src/main/java/a/b/B.java +> compile + +# Now, modify B so that it depends on a.A +# This ensures that dependencies on a source not included in the compilation +# (a/A.java has not changed) are tracked +$ copy-file changes/B2.java src/main/java/a/b/B.java +> compile + +# Remove a.b.A and there should be no problem compiling, since B should +# have recorded a dependency on a.A and not a.b.A +$ delete src/main/java/a/b/A.java +> compile + +# Remove a.A and B should be recompiled if the dependency on a.A was properly +# recorded. This should be a compile error, since we haven't updated B to not +# depend on A +$ delete src/main/java/a/A.java +-> compile + +# Replace B with a new B that doesn't depend on a.A and so it should compile +# It shouldn't run though, because it doesn't have a main method +$ copy-file changes/B1.java src/main/java/a/b/B.java +> compile +-> run + + +# Replace B with a new B that has a main method and should therefore run +# if the main method was properly detected +$ copy-file changes/B3.java src/main/java/a/b/B.java +> run \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/A.java b/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/A.java new file mode 100644 index 000000000..7ac3d1a41 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/A.java @@ -0,0 +1,7 @@ + +public class A { + class B { + class C { + } + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/DefaultTreeTableSorter.java b/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/DefaultTreeTableSorter.java new file mode 100644 index 000000000..eec11ccea --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/DefaultTreeTableSorter.java @@ -0,0 +1,15 @@ +import javax.swing.DefaultRowSorter; +import javax.swing.tree.TreeModel; +import javax.swing.tree.TreePath; + +public class DefaultTreeTableSorter + implements TreeTableSorter, TreeTableSorter.SortCycle { + + public class NodeSorter extends DefaultRowSorter implements SortCycle { + + protected TreeTableWrapper getTreeTableModelWrapper() { + return (TreeTableWrapper)getModelWrapper(); + } + protected abstract class TreeTableWrapper extends ModelWrapper {} + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeColumnModel.java b/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeColumnModel.java new file mode 100644 index 000000000..bd66a91b8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeColumnModel.java @@ -0,0 +1 @@ +public interface TreeColumnModel {} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeTableSorter.java b/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeTableSorter.java new file mode 100644 index 000000000..08b9f38f5 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/TreeTableSorter.java @@ -0,0 +1,5 @@ +import javax.swing.tree.TreeModel; + +public interface TreeTableSorter { + public interface SortCycle {} +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/test b/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/test new file mode 100644 index 000000000..125967284 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-generic-workaround/test @@ -0,0 +1,3 @@ +# generic signatures fails to parse due to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6476261 +# tests workaround for https://github.com/sbt/sbt/issues/1035 +> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/JJ.java b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/JJ.java new file mode 100644 index 000000000..18d52ae30 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/JJ.java @@ -0,0 +1,5 @@ +public class JJ { + public static void main(String[] args) { + new S().foo("ahoy"); + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/build.sbt new file mode 100644 index 000000000..522224a38 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/build.sbt @@ -0,0 +1 @@ +compileOrder := CompileOrder.Mixed \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/changes/S1.scala b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/changes/S1.scala new file mode 100644 index 000000000..486f40262 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/changes/S1.scala @@ -0,0 +1,3 @@ +class S { + def foo(s:String): Unit = println("I am foo") +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/changes/S2.scala b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/changes/S2.scala new file mode 100644 index 000000000..63bc37d77 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/changes/S2.scala @@ -0,0 +1,3 @@ +class S { + def foo2(s:String): Unit = println("I am foo") +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/changes/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/changes/build.sbt new file mode 100644 index 000000000..f4f9b5bf7 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/changes/build.sbt @@ -0,0 +1 @@ +compileOrder := CompileOrder.ScalaThenJava \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/test b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/test new file mode 100644 index 000000000..60402f1e6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-mixed/test @@ -0,0 +1,13 @@ +$ copy-file changes/S1.scala S.scala +> compile +$ copy-file changes/S2.scala S.scala +-> compile + +> clean +$ copy-file changes/build.sbt build.sbt +> reload + +$ copy-file changes/S1.scala S.scala +> compile +$ copy-file changes/S2.scala S.scala +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-static/changes/J1.java b/sbt-bridge/src/sbt-test/source-dependencies/java-static/changes/J1.java new file mode 100644 index 000000000..cf042ce22 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-static/changes/J1.java @@ -0,0 +1,4 @@ +public class J +{ + public static final Integer x = 3; +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-static/changes/J2.java b/sbt-bridge/src/sbt-test/source-dependencies/java-static/changes/J2.java new file mode 100644 index 000000000..8ff2e24c6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-static/changes/J2.java @@ -0,0 +1,4 @@ +public class J +{ + public static final String x = "3"; +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-static/changes/S.scala b/sbt-bridge/src/sbt-test/source-dependencies/java-static/changes/S.scala new file mode 100644 index 000000000..45436972b --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-static/changes/S.scala @@ -0,0 +1,4 @@ +object S +{ + val y: Int = J.x +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-static/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/java-static/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-static/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/java-static/test b/sbt-bridge/src/sbt-test/source-dependencies/java-static/test new file mode 100644 index 000000000..42890ca74 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/java-static/test @@ -0,0 +1,24 @@ +# When a Java class is loaded from a class file and not parsed from a source file, scalac reports +# the statics as an object without a file and so the Analyzer must know to look for the +# object's linked class. +# This test verifies this happens. +# The test compiles a Java class with a static field. +# It then adds a Scala object that references the static field. Because the object only depends on a +# static member and because the Java source is not included in the compilation (since it didn't change), +# this triggers the special case above. + +# add and compile the Java source +$ copy-file changes/J1.java src/main/java/J.java +> compile + +# add and compile the Scala source +$ copy-file changes/S.scala src/main/scala/S.scala +> compile + +# change the Java source so that a compile error should occur if S.scala is also recompiled (which will happen if the dependency was properly recorded) +$ copy-file changes/J2.java src/main/java/J.java +-> compile + +# verify it should have failed by doing a full recompilation +> clean +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/A.scala new file mode 100644 index 000000000..fc3870856 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/A.scala @@ -0,0 +1,4 @@ +class A +{ + val x = 3 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/B.scala new file mode 100644 index 000000000..3ddfddb61 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/B.scala @@ -0,0 +1,4 @@ +class B extends A +{ + override val x = 3 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/changes/A.scala new file mode 100644 index 000000000..805901802 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/changes/A.scala @@ -0,0 +1,4 @@ +class A +{ + lazy val x = 3 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/test b/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/test new file mode 100644 index 000000000..f870aaef3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/lazy-val/test @@ -0,0 +1,6 @@ +> compile + +# replace val x with lazy val x +$ copy-file changes/A.scala A.scala + +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/A.java b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/A.java new file mode 100644 index 000000000..2bce1ee78 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/A.java @@ -0,0 +1,3 @@ +public class A { + public Integer x() { return 3; } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/B.java b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/B.java new file mode 100644 index 000000000..7e9bb5574 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/B.java @@ -0,0 +1 @@ +public class B extends A {} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/C.java b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/C.java new file mode 100644 index 000000000..042c2b2a3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/C.java @@ -0,0 +1 @@ +public class C extends B {} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/D.java b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/D.java new file mode 100644 index 000000000..03e6ad740 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/D.java @@ -0,0 +1,4 @@ +public class D { + public static final C c = new C(); + public static String x() { return c.x().toString(); } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/E.java b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/E.java new file mode 100644 index 000000000..d28336ed5 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/E.java @@ -0,0 +1,5 @@ +public class E { + public static void main(String[] args) { + assert(D.x() == "3"); + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/build.sbt new file mode 100644 index 000000000..d23dff705 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/build.sbt @@ -0,0 +1,10 @@ +import complete.DefaultParsers._ + +val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") + +checkIterations := { + val expected: Int = (Space ~> NatBasic).parsed + val actual: Int = (compile in Compile).value.compilations.allCompilations.size + assert(expected == actual, s"Expected $expected compilations, got $actual") +} + diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/changes/A2.java b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/changes/A2.java new file mode 100644 index 000000000..610c20407 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/changes/A2.java @@ -0,0 +1,3 @@ +public class A { + public String x() { return "3"; } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/test b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/test new file mode 100644 index 000000000..85a7c97e9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv-java/test @@ -0,0 +1,9 @@ +# 1 iteration from initial full compile +> run +$ copy-file changes/A2.java A.java + +# 1 iteration for the initial changes +# 1 iteration to recompile all descendents and direct dependencies +# no further iteration, because APIs of directs don't change +> run +> checkIterations 3 diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/A.scala new file mode 100644 index 000000000..a4f92f4fa --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/A.scala @@ -0,0 +1,3 @@ +class A { + def x = 3 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/B.scala new file mode 100644 index 000000000..a18aec3db --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/B.scala @@ -0,0 +1 @@ +class B extends A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/C.scala new file mode 100644 index 000000000..f6f5bb28f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/C.scala @@ -0,0 +1 @@ +class C extends B diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/D.scala b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/D.scala new file mode 100644 index 000000000..55959c2a9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/D.scala @@ -0,0 +1,4 @@ +object D { + val c = new C + def x: String = c.x.toString +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/E.scala b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/E.scala new file mode 100644 index 000000000..23e0805a0 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/E.scala @@ -0,0 +1,3 @@ +object E extends dotty.runtime.LegacyApp { + assert(D.x == "3") +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/build.sbt new file mode 100644 index 000000000..d23dff705 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/build.sbt @@ -0,0 +1,10 @@ +import complete.DefaultParsers._ + +val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") + +checkIterations := { + val expected: Int = (Space ~> NatBasic).parsed + val actual: Int = (compile in Compile).value.compilations.allCompilations.size + assert(expected == actual, s"Expected $expected compilations, got $actual") +} + diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/changes/A2.scala new file mode 100644 index 000000000..acab4a1ae --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/changes/A2.scala @@ -0,0 +1,3 @@ +class A { + def x = "3" +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/test b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/test new file mode 100644 index 000000000..c6df5698e --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/less-inter-inv/test @@ -0,0 +1,9 @@ +# 1 iteration from initial full compile +> run +$ copy-file changes/A2.scala A.scala + +# 1 iteration for the initial changes +# 1 iteration to recompile all descendents and direct dependencies +# no further iteration, because APIs of directs don't change +> run +> checkIterations 3 diff --git a/sbt-bridge/src/sbt-test/source-dependencies/linearization/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/linearization/A.scala new file mode 100644 index 000000000..69399d3fb --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/linearization/A.scala @@ -0,0 +1,3 @@ +trait A { + def x = 3 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/linearization/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/linearization/B.scala new file mode 100644 index 000000000..608b53052 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/linearization/B.scala @@ -0,0 +1,3 @@ +trait B extends A { + override def x = super.x * 2 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/linearization/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/linearization/C.scala new file mode 100644 index 000000000..3fbd747e0 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/linearization/C.scala @@ -0,0 +1,3 @@ +trait C extends A { + override def x = super.x + 5 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/linearization/D.scala b/sbt-bridge/src/sbt-test/source-dependencies/linearization/D.scala new file mode 100644 index 000000000..7b46ebf97 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/linearization/D.scala @@ -0,0 +1,2 @@ +// define the order +trait D extends C with B \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/linearization/E.scala b/sbt-bridge/src/sbt-test/source-dependencies/linearization/E.scala new file mode 100644 index 000000000..f69ea1d51 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/linearization/E.scala @@ -0,0 +1,2 @@ +// put a level in between D and its concrete class +trait E extends D diff --git a/sbt-bridge/src/sbt-test/source-dependencies/linearization/F.scala b/sbt-bridge/src/sbt-test/source-dependencies/linearization/F.scala new file mode 100644 index 000000000..6dda903f5 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/linearization/F.scala @@ -0,0 +1,3 @@ +object F extends E { + def main(args: Array[String]) = assert(x == args(0).toInt, x) +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/linearization/changes/D.scala b/sbt-bridge/src/sbt-test/source-dependencies/linearization/changes/D.scala new file mode 100644 index 000000000..84c173887 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/linearization/changes/D.scala @@ -0,0 +1 @@ +trait D extends B with C diff --git a/sbt-bridge/src/sbt-test/source-dependencies/linearization/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/linearization/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/linearization/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/linearization/test b/sbt-bridge/src/sbt-test/source-dependencies/linearization/test new file mode 100644 index 000000000..e6078ebfb --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/linearization/test @@ -0,0 +1,13 @@ +> compile + +# the value of F.x should be 16 +> run 16 + +# modify D.scala so that the linearization changes +$ copy-file changes/D.scala D.scala +# F.x becomes 11 +> compile + +# if F is recompiled, the value of x should be 11, otherwise it will still be 16 +# and this will fail +> run 11 \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/named/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/named/A.scala new file mode 100644 index 000000000..42afb874d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/named/A.scala @@ -0,0 +1,3 @@ +object A { + def x(zz: Int, yy: Int) = yy - zz +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/named/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/named/B.scala new file mode 100644 index 000000000..5699c4db8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/named/B.scala @@ -0,0 +1,7 @@ +object B { + def main(args: Array[String]): Unit = + { + val result = A.x(zz = 3, yy = 4) + assert(result == args(0).toInt, result) + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/named/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/named/changes/A.scala new file mode 100644 index 000000000..04b150525 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/named/changes/A.scala @@ -0,0 +1,3 @@ +object A { + def x(yy: Int, zz: Int) = yy - zz +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/named/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/named/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/named/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/named/test b/sbt-bridge/src/sbt-test/source-dependencies/named/test new file mode 100644 index 000000000..28f1c58d3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/named/test @@ -0,0 +1,16 @@ +# named parameters are only in 2.8 +#> ++2.8.0 + +> compile + +# result should be 1 +> run 1 + +# change order of arguments in A.x +$ copy-file changes/A.scala A.scala + +# Recompile +> compile + +# Should still get 1 and not -1 +> run 1 diff --git a/sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A0.scala b/sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A0.scala new file mode 100644 index 000000000..cc6a53b6a --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A0.scala @@ -0,0 +1,11 @@ +package example + +class A { + case class B(x: Int) + def c = B +} +object A { + def main(args: Array[String]): Unit = { + (new A).c + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A1.scala new file mode 100644 index 000000000..e71b1ef17 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/changes/A1.scala @@ -0,0 +1,13 @@ +package example + +class VC(val self: Int) extends AnyVal + +class A { + case class B(x: VC) + def c = B +} +object A { + def main(args: Array[String]): Unit = { + (new A).c + } +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/test b/sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/test new file mode 100644 index 000000000..28ed70321 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/nested-case-class/test @@ -0,0 +1,6 @@ +$ copy-file changes/A0.scala A.scala +> run + +# The same test case, but involving value classes +$ copy-file changes/A1.scala A.scala +> run diff --git a/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/changes/A2.scala new file mode 100644 index 000000000..c530efeb4 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/changes/A2.scala @@ -0,0 +1 @@ +trait A { val x = (new B).y } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/pending b/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/pending new file mode 100644 index 000000000..82b078e7d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/pending @@ -0,0 +1,4 @@ +> compile + +$ copy-file changes/A2.scala src/main/scala/A.scala +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/A.scala new file mode 100644 index 000000000..d6d4ebdd9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/A.scala @@ -0,0 +1 @@ +trait A { val x = "hello" } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/B.scala new file mode 100644 index 000000000..4fa74512d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/new-cyclic/src/main/scala/B.scala @@ -0,0 +1 @@ +class B extends A { val y = x } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/A1.java b/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/A1.java new file mode 100644 index 000000000..b448538ae --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/A1.java @@ -0,0 +1,2 @@ +package a; +public class A { public static final int x = 3; } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B0.scala b/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B0.scala new file mode 100644 index 000000000..ddeafd32d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B0.scala @@ -0,0 +1,2 @@ +package b +object B { val x = 3 } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B1.scala b/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B1.scala new file mode 100644 index 000000000..6f0f9f967 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/changes/B1.scala @@ -0,0 +1,2 @@ +package b +object B { val x = a.A.x } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/test b/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/test new file mode 100644 index 000000000..89251bcec --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/new-pkg-dep/test @@ -0,0 +1,8 @@ +$ copy-file changes/B0.scala B.scala +> compile + +$ copy-file changes/A1.java A.java +> compile + +$ copy-file changes/B1.scala B.scala +> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/override/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/override/A.scala new file mode 100644 index 000000000..43b95b9e9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/override/A.scala @@ -0,0 +1,3 @@ +trait A { + def x: Int +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/override/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/override/B.scala new file mode 100644 index 000000000..c7569ba51 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/override/B.scala @@ -0,0 +1,3 @@ +trait B extends A { + override def x = 2 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/override/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/override/C.scala new file mode 100644 index 000000000..24d656d4a --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/override/C.scala @@ -0,0 +1,3 @@ +trait C extends A { + def x = 5 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/override/D.scala b/sbt-bridge/src/sbt-test/source-dependencies/override/D.scala new file mode 100644 index 000000000..1f0d0a274 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/override/D.scala @@ -0,0 +1 @@ +trait D extends C with B \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/override/changes/B2.scala b/sbt-bridge/src/sbt-test/source-dependencies/override/changes/B2.scala new file mode 100644 index 000000000..f314e6a46 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/override/changes/B2.scala @@ -0,0 +1,3 @@ +trait B extends A { + def x = 2 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/override/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/override/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/override/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/override/test b/sbt-bridge/src/sbt-test/source-dependencies/override/test new file mode 100644 index 000000000..43f805d4e --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/override/test @@ -0,0 +1,3 @@ +> compile +$ copy-file changes/B2.scala B.scala +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/parent-change/W.scala b/sbt-bridge/src/sbt-test/source-dependencies/parent-change/W.scala new file mode 100644 index 000000000..527676b6d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/parent-change/W.scala @@ -0,0 +1,5 @@ +class W +{ + def x = 3 +} +class V extends W \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/parent-change/Y.scala b/sbt-bridge/src/sbt-test/source-dependencies/parent-change/Y.scala new file mode 100644 index 000000000..9379ee7b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/parent-change/Y.scala @@ -0,0 +1,5 @@ +object Y +{ + def main(args: Array[String]) = + println( (new Z).x ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/parent-change/Z.scala b/sbt-bridge/src/sbt-test/source-dependencies/parent-change/Z.scala new file mode 100644 index 000000000..0f7c79a40 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/parent-change/Z.scala @@ -0,0 +1 @@ +class Z extends V diff --git a/sbt-bridge/src/sbt-test/source-dependencies/parent-change/changes/W.scala b/sbt-bridge/src/sbt-test/source-dependencies/parent-change/changes/W.scala new file mode 100644 index 000000000..f2e4dc28f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/parent-change/changes/W.scala @@ -0,0 +1,5 @@ +class W +{ + def x = 3 +} +class V \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/parent-change/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/parent-change/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/parent-change/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/parent-change/test b/sbt-bridge/src/sbt-test/source-dependencies/parent-change/test new file mode 100644 index 000000000..9a80ffae6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/parent-change/test @@ -0,0 +1,7 @@ +> compile + +# modify V to no longer extend W +$ copy-file changes/W.scala W.scala + +# Should recompile Y.scala and report an error: "value x is not a member of Z" +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/A.scala new file mode 100644 index 000000000..d6f828508 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/A.scala @@ -0,0 +1,3 @@ +class A { + def x(i: Int) = i+"3" +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/B.scala new file mode 100644 index 000000000..26e47fd25 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/B.scala @@ -0,0 +1 @@ +class B extends A \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/C.scala new file mode 100644 index 000000000..6985a0d2f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/C.scala @@ -0,0 +1,3 @@ +class C extends B { + def x(s: String) = s+"5" +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/changes/A.scala new file mode 100644 index 000000000..949655f41 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/changes/A.scala @@ -0,0 +1,3 @@ +class A { + def x(i: String) = i+"3" +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/test b/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/test new file mode 100644 index 000000000..95ba12295 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/parent-member-change/test @@ -0,0 +1,7 @@ +> compile + +# modify A.scala so that the signature of its method changes to be identical to +# that of the method in its descendant in C.scala +$ copy-file changes/A.scala A.scala +# Should recompile C.scala and report this error, failing the compile +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/A1.scala new file mode 100644 index 000000000..f804b5b3e --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/A1.scala @@ -0,0 +1,8 @@ +package demo.sub + +class A { + implicit def x(i: Int): C = new C(i) +} +class C(i: Int) { + def y = i + 1 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/A2.scala new file mode 100644 index 000000000..288698e5d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/A2.scala @@ -0,0 +1,8 @@ +package demo.sub + +class A { + implicit def x(i: Int): C = new C(i) +} +class C(i: Int) { + def y = i + 2 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/B.scala new file mode 100644 index 000000000..54ffd4574 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/B.scala @@ -0,0 +1,5 @@ +package demo + +object B { + 3.y +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/package.scala b/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/package.scala new file mode 100644 index 000000000..3c01ff4e4 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/changes/package.scala @@ -0,0 +1,3 @@ +package object demo extends sub.A { + val y = 9 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/test b/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/test new file mode 100644 index 000000000..595138bba --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/pkg-self/test @@ -0,0 +1,14 @@ +# Here we have a package object (demo) that extends a class in a subpackage (demo.sub.A) +# demo.sub.A provides an implicit used by demo.B +$ copy-file changes/package.scala src/main/scala/demo/package.scala +$ copy-file changes/A1.scala src/main/scala/demo/sub/A.scala +$ copy-file changes/B.scala src/main/scala/demo/B.scala +> compile + +# When recompiling A, we delete the class files for A +# When the demo package object is loaded, scalac complains it can't +# find the class files for A. Presumably this occurs because +# package object loading occurs early and doesn't see the new A +# from source. +$ copy-file changes/A2.scala src/main/scala/demo/sub/A.scala +> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/A.scala new file mode 100644 index 000000000..b1ff88af7 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/A.scala @@ -0,0 +1,10 @@ +package a +{ + package b + { + object A + { + private[a] def x = 3 + } + } +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/B.scala new file mode 100644 index 000000000..d709285f5 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/B.scala @@ -0,0 +1,6 @@ +package a + +object B +{ + val y = b.A.x +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/changes/A.scala new file mode 100644 index 000000000..ef50d0ef9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/changes/A.scala @@ -0,0 +1,6 @@ +package a.b + +object A +{ + private[b] def x = 3 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/test b/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/test new file mode 100644 index 000000000..2cc575f6b --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/qualified-access/test @@ -0,0 +1,7 @@ +> compile + +# change access of A.x +$ copy-file changes/A.scala A.scala + +# Should force recompilation of B.scala because access changed and B's access is now invalid. +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/changes/absolute.sbt b/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/changes/absolute.sbt new file mode 100644 index 000000000..a5f2d007a --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/changes/absolute.sbt @@ -0,0 +1 @@ +scalaSource in Compile := baseDirectory.value / "src" \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/changes/relative.sbt b/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/changes/relative.sbt new file mode 100644 index 000000000..8e898fe02 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/changes/relative.sbt @@ -0,0 +1 @@ +scalaSource in Compile := file("src") \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/src/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/src/A.scala new file mode 100644 index 000000000..528ffce71 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/src/A.scala @@ -0,0 +1 @@ +object A \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/test b/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/test new file mode 100644 index 000000000..fb8e9dce8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/relative-source-error/test @@ -0,0 +1,7 @@ +$ copy-file changes/relative.sbt build.sbt +> reload +-> compile + +$ copy-file changes/absolute.sbt build.sbt +> reload +> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/remove-test-a/changes/1.scala b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-a/changes/1.scala new file mode 100644 index 000000000..1444a85e8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-a/changes/1.scala @@ -0,0 +1,6 @@ +package test + +object TestScriptTest +{ + val x: Int = "" +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/remove-test-a/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-a/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-a/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/remove-test-a/test b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-a/test new file mode 100644 index 000000000..ea5cc469c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-a/test @@ -0,0 +1,7 @@ +> compile + +$ copy-file changes/1.scala src/main/scala/1.scala +-> compile + +$ delete src/main/scala/1.scala +> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/A2.scala new file mode 100644 index 000000000..b971413bf --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/A2.scala @@ -0,0 +1,6 @@ +package test + +object A +{ + def test = B.length +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B3.scala b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B3.scala new file mode 100644 index 000000000..c5a1267df --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B3.scala @@ -0,0 +1,6 @@ +package test + +object B +{ + def length: Int = 5 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B4.scala b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B4.scala new file mode 100644 index 000000000..86a6cb4b9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B4.scala @@ -0,0 +1,5 @@ +package test + +object B +{ +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B5.scala b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B5.scala new file mode 100644 index 000000000..8829a8f73 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/changes/B5.scala @@ -0,0 +1,5 @@ +/*package test + +object B +{ +}*/ \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/A.scala new file mode 100644 index 000000000..af481a935 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/A.scala @@ -0,0 +1,5 @@ +package test + +object A +{ +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/B.scala new file mode 100644 index 000000000..86a6cb4b9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/src/main/scala/B.scala @@ -0,0 +1,5 @@ +package test + +object B +{ +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/test b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/test new file mode 100644 index 000000000..79a6db6c8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/remove-test-b/test @@ -0,0 +1,25 @@ +> compile + +$ copy-file changes/A2.scala src/main/scala/A.scala +-> compile + +$ copy-file changes/B3.scala src/main/scala/B.scala +> compile + +$ delete src/main/scala/B.scala +-> compile + +$ copy-file changes/B3.scala src/main/scala/B.scala +> compile + +$ copy-file changes/B4.scala src/main/scala/B.scala +-> compile + +$ copy-file changes/B3.scala src/main/scala/B.scala +> compile + +$ copy-file changes/B5.scala src/main/scala/B.scala +-> compile + +$ copy-file changes/B3.scala src/main/scala/B.scala +> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/A.scala new file mode 100644 index 000000000..df798a859 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/A.scala @@ -0,0 +1,4 @@ +object A +{ + def x(i: String*) = () +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/B.scala new file mode 100644 index 000000000..a06f3a186 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/B.scala @@ -0,0 +1,4 @@ +object B +{ + val x = A.x("3") +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/changes/A.scala new file mode 100644 index 000000000..6de960644 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/changes/A.scala @@ -0,0 +1,4 @@ +object A +{ + def x(i: Seq[String]) = () +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/test b/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/test new file mode 100644 index 000000000..4964ab5a8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/repeated-parameters/test @@ -0,0 +1,7 @@ +> compile + +# change repeated parameters to Seq +$ copy-file changes/A.scala A.scala + +# B.scala needs recompiling because the type has changed +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/changes/first.scala b/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/changes/first.scala new file mode 100644 index 000000000..9e12604c2 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/changes/first.scala @@ -0,0 +1,4 @@ +object First +{ + def main(args: Array[String]): Unit = () +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/changes/second.scala b/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/changes/second.scala new file mode 100644 index 000000000..45ce49a65 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/changes/second.scala @@ -0,0 +1,4 @@ +object Second +{ + def main(args: Array[String]): Unit = () +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/project/Build.scala b/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/project/Build.scala new file mode 100644 index 000000000..9c2678540 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/project/Build.scala @@ -0,0 +1,19 @@ +import sbt._ +import Keys._ +import java.net.URLClassLoader + +object B extends Build +{ + lazy val root = Project("root", file(".")) settings( ss : _*) + + def ss = Seq( + TaskKey[Unit]("check-first") <<= checkTask("First"), + TaskKey[Unit]("check-second") <<= checkTask("Second") + ) + private def checkTask(className: String) = + fullClasspath in Configurations.Runtime map { runClasspath => + val cp = runClasspath.map(_.data.toURI.toURL).toArray + Class.forName(className, false, new URLClassLoader(cp)) + () + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/test b/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/test new file mode 100644 index 000000000..4b4ad3a2b --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/replace-test-a/test @@ -0,0 +1,9 @@ +$ copy-file changes/first.scala src/main/scala/A.scala +> compile +> check-first +-> check-second + +$ copy-file changes/second.scala src/main/scala/A.scala +> compile +-> check-first +> check-second \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-java/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/build.sbt new file mode 100644 index 000000000..619622832 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/build.sbt @@ -0,0 +1 @@ +compileOrder := CompileOrder.JavaThenScala diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/A1.java b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/A1.java new file mode 100644 index 000000000..bdf223afb --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/A1.java @@ -0,0 +1,5 @@ +package example; + +public class A { + public final int x = 3; +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/A2.java b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/A2.java new file mode 100644 index 000000000..3b67c58d2 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/A2.java @@ -0,0 +1,5 @@ +package example; + +public class A { + public final String x = "a"; +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/B0.scala b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/B0.scala new file mode 100644 index 000000000..251ef7397 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/B0.scala @@ -0,0 +1 @@ +object B diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/B1.scala b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/B1.scala new file mode 100644 index 000000000..9d9a60c87 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/B1.scala @@ -0,0 +1,3 @@ +object B { + val x: Int = (new example.A).x +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/B2.scala b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/B2.scala new file mode 100644 index 000000000..ec5fd2cf3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/changes/B2.scala @@ -0,0 +1,3 @@ +object B { + val x: String = (new example.A).x +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-java/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-java/test b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/test new file mode 100644 index 000000000..6987c7df0 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-java/test @@ -0,0 +1,10 @@ +$ copy-file changes/B0.scala B.scala +> compile + +$ copy-file changes/A1.java src/main/java/example/A.java +$ copy-file changes/B1.scala B.scala +> compile + +$ copy-file changes/A2.java src/main/java/example/A.java +$ copy-file changes/B2.scala B.scala +> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/changes/A.scala new file mode 100644 index 000000000..da058d2d9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/changes/A.scala @@ -0,0 +1,5 @@ +package example + +object A { + val x: Int = green +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package.scala b/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package.scala new file mode 100644 index 000000000..9fd811040 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package.scala @@ -0,0 +1,3 @@ +package object example { + val green = 3 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package2.scala b/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package2.scala new file mode 100644 index 000000000..22c1afd15 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/changes/package2.scala @@ -0,0 +1,3 @@ +package object example { + val green = "asdf" +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/test b/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/test new file mode 100644 index 000000000..e83d2578d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/resident-package-object/test @@ -0,0 +1,11 @@ +$ copy-file changes/package.scala src/main/scala/example/package.scala +> compile + +$ copy-file changes/A.scala src/main/scala/example/A.scala +> compile + +$ copy-file changes/package2.scala src/main/scala/example/package.scala +-> compile + +$ copy-file changes/package.scala src/main/scala/example/package.scala +> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/build.sbt new file mode 100644 index 000000000..2231204ea --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/build.sbt @@ -0,0 +1,12 @@ +import complete.DefaultParsers._ + +crossTarget in Compile := target.value + +val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") + +checkIterations := { + val expected: Int = (Space ~> NatBasic).parsed + val actual: Int = (compile in Compile).value.compilations.allCompilations.size + assert(expected == actual, s"Expected $expected compilations, got $actual") +} + diff --git a/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/changes/A1.scala new file mode 100644 index 000000000..2a499fa7b --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/changes/A1.scala @@ -0,0 +1,3 @@ +object A { + val x = 3 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/changes/A2.scala new file mode 100644 index 000000000..10d738255 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/changes/A2.scala @@ -0,0 +1,5 @@ +object A { + val x = "a" +} + +class C diff --git a/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/changes/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/changes/B.scala new file mode 100644 index 000000000..945e97bb3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/changes/B.scala @@ -0,0 +1,4 @@ +object B { + val y: Int = A.x +} + diff --git a/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/test b/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/test new file mode 100644 index 000000000..028d6226c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/restore-classes/test @@ -0,0 +1,23 @@ +$ copy-file changes/A1.scala A.scala +$ copy-file changes/B.scala B.scala +# B depends on A +# 1 iteration +> compile + +$ copy-file changes/A2.scala A.scala + +# will successfully compile A.scala in the first step but fail to compile B.scala in the second +# because type of A.x changed. The original classes should be restored after this failure. +# 2 iterations, but none are recorded in the Analysis +-> compile + +# the class file for C should be deleted: +# it was only added by A2, but compilation hasn't succeeded yet +$ absent target/classes/C.class + + +$ copy-file changes/A1.scala A.scala +# if the classes were correctly restored, another compilation shouldn't be necessary +> compile +# so, there should only be the original 1 iteration recorded in the Analysis +> checkIterations 1 diff --git a/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/A.scala new file mode 100644 index 000000000..d91afb5ca --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/A.scala @@ -0,0 +1,8 @@ +object A { + def x = 3 + + def y = { + import B._ + x + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/B.scala new file mode 100644 index 000000000..5e34efa4d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/B.scala @@ -0,0 +1,3 @@ +object B { +// def x = 3 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/build.sbt new file mode 100644 index 000000000..8a38ef414 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/build.sbt @@ -0,0 +1 @@ +incOptions := incOptions.value.withNameHashing(true) diff --git a/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/changes/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/changes/B.scala new file mode 100644 index 000000000..4bf188fb2 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/changes/B.scala @@ -0,0 +1,3 @@ +object B { + def x = 3 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/test b/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/test new file mode 100644 index 000000000..781b4aafb --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/same-file-used-names/test @@ -0,0 +1,7 @@ +> compile + +# uncomment definition of `x` that leads to ambiguity error in A +$ copy-file changes/B.scala B.scala + +# Both A.scala and B.scala should be recompiled, producing a compile error +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/sealed/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/sealed/A.scala new file mode 100644 index 000000000..d185a50a9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/sealed/A.scala @@ -0,0 +1,3 @@ +sealed trait A +class B extends A +class C extends A \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/sealed/D.scala b/sbt-bridge/src/sbt-test/source-dependencies/sealed/D.scala new file mode 100644 index 000000000..1f49e9d61 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/sealed/D.scala @@ -0,0 +1,8 @@ + +object D { +def x(a: A) = + a match { + case _: B => () + case _: C => () + } +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/sealed/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/sealed/changes/A.scala new file mode 100644 index 000000000..f00e9c127 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/sealed/changes/A.scala @@ -0,0 +1,4 @@ +sealed trait A +class B extends A +class C extends A +class E extends A \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/sealed/pending b/sbt-bridge/src/sbt-test/source-dependencies/sealed/pending new file mode 100644 index 000000000..69c8ebe98 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/sealed/pending @@ -0,0 +1,11 @@ +> 'set scalacOptions += "-Xfatal-warnings"' + +> compile + +# have new class E extend A +$ copy-file changes/A.scala A.scala + +# D.scala needs recompiling because the pattern match in D +# is no longer exhaustive, which should be a warning +# there is no way to make warnings errors, so this has to be manually checked +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/sealed/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/sealed/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/sealed/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/signature-change/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/B.scala new file mode 100644 index 000000000..e049b23b0 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/B.scala @@ -0,0 +1,3 @@ +object B { + val x: Int = A.f1[Any](1) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A0.scala b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A0.scala new file mode 100644 index 000000000..6cf6a62c2 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A0.scala @@ -0,0 +1,3 @@ +object A { + def f1[T](x: Int): Int = 1 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A1.scala new file mode 100644 index 000000000..d10bcbadc --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A1.scala @@ -0,0 +1,3 @@ +object A { + def f1[T](x: String): Int = 1 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A2.scala new file mode 100644 index 000000000..029dc28d7 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A2.scala @@ -0,0 +1,3 @@ +object A { + def f1[T](x: Int): String = "" +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A3.scala b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A3.scala new file mode 100644 index 000000000..69463721f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/changes/A3.scala @@ -0,0 +1,3 @@ +object A { + def f1[T <: Int](x: Int): Int = 1 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/signature-change/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/signature-change/test b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/test new file mode 100644 index 000000000..03ad663ab --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/signature-change/test @@ -0,0 +1,20 @@ +# Case 1: parameter type changed +$ copy-file changes/A0.scala A.scala +> compile +$ copy-file changes/A1.scala A.scala +# Compilation of B.scala should fail because the signature of f changed +-> compile + +# Case 2: return type changed +$ copy-file changes/A0.scala A.scala +> compile +$ copy-file changes/A2.scala A.scala +# Compilation of B.scala should fail because the signature of f changed +-> compile + +# Case 3: type parameter bounds changed +$ copy-file changes/A0.scala A.scala +> compile +$ copy-file changes/A3.scala A.scala +# Compilation of B.scala should fail because the signature of f changed +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/specialized/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/specialized/A.scala new file mode 100644 index 000000000..a9b5e6818 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/specialized/A.scala @@ -0,0 +1,4 @@ +class A +{ + def x[T](t: T) = t +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/specialized/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/specialized/B.scala new file mode 100644 index 000000000..387a85019 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/specialized/B.scala @@ -0,0 +1,7 @@ +object B +{ + def main(args: Array[String]): Unit = { + val a = new A + a.x(3) + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/specialized/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/specialized/changes/A.scala new file mode 100644 index 000000000..76ac39400 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/specialized/changes/A.scala @@ -0,0 +1,4 @@ +class A +{ + def x[@specialized T](t: T) = t +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/specialized/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/specialized/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/specialized/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/specialized/test b/sbt-bridge/src/sbt-test/source-dependencies/specialized/test new file mode 100644 index 000000000..b9e1ad09c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/specialized/test @@ -0,0 +1,15 @@ +# -Yspecialize is 2.8 only +> compile + +# verify that erased A.x can be called normally and reflectively +> run false + +# make A.x specialized +$ copy-file changes/A.scala A.scala + +# B.scala needs recompiling so that B.y calls the specialized version of A.x +> compile + +# verify that specialized A.x can be called normally and reflectively +# NOTE: this test doesn't actually work correctly: have to check the output to see that B.scala was recompiled +> run true \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/stability-change/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/stability-change/A.scala new file mode 100644 index 000000000..e9b4d7aa6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/stability-change/A.scala @@ -0,0 +1,4 @@ +object A +{ + val x = new C +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/stability-change/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/stability-change/B.scala new file mode 100644 index 000000000..fce3e99cf --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/stability-change/B.scala @@ -0,0 +1,5 @@ +object B +{ + import A.x.y + val z = y +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/stability-change/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/stability-change/C.scala new file mode 100644 index 000000000..9b2e3741a --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/stability-change/C.scala @@ -0,0 +1,4 @@ +class C +{ + val y = 4 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/stability-change/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/stability-change/changes/A.scala new file mode 100644 index 000000000..1b6e8d65a --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/stability-change/changes/A.scala @@ -0,0 +1,4 @@ +object A +{ + def x = new C +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/stability-change/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/stability-change/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/stability-change/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/stability-change/test b/sbt-bridge/src/sbt-test/source-dependencies/stability-change/test new file mode 100644 index 000000000..887778d24 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/stability-change/test @@ -0,0 +1,6 @@ +> compile + +# replace val x with var x, invalidating the import in B +$ copy-file changes/A.scala A.scala + +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/A.scala new file mode 100644 index 000000000..9917b2d98 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/A.scala @@ -0,0 +1 @@ +case class A(x: Int) diff --git a/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/B.scala new file mode 100644 index 000000000..be302fe40 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/B.scala @@ -0,0 +1,3 @@ +object B { + A(0) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/changes/A2.scala new file mode 100644 index 000000000..3d35a445f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/changes/A2.scala @@ -0,0 +1,2 @@ +case class A(x: Int) +private object A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/dbg.sbt b/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/dbg.sbt new file mode 100644 index 000000000..1ac0e14e9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/dbg.sbt @@ -0,0 +1,2 @@ +logLevel := Level.Debug +incOptions ~= { _.copy(apiDebug = true, relationsDebug = true) } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/test b/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/test new file mode 100644 index 000000000..f3a023810 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/synthetic-companion/test @@ -0,0 +1,4 @@ +> compile +$ copy-file changes/A2.scala A.scala +# Compilation of B.scala should fail because object A does not extend `Int => A` anymore +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/build.sbt new file mode 100644 index 000000000..949d78231 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/build.sbt @@ -0,0 +1,27 @@ +/* Performs checks related to compilations: + * a) checks in which compilation given set of files was recompiled + * b) checks overall number of compilations performed + */ +TaskKey[Unit]("check-compilations") := { + val analysis = (compile in Compile).value + val srcDir = (scalaSource in Compile).value + def relative(f: java.io.File): java.io.File = f.relativeTo(srcDir) getOrElse f + val allCompilations = analysis.compilations.allCompilations + val recompiledFiles: Seq[Set[java.io.File]] = allCompilations map { c => + val recompiledFiles = analysis.apis.internal.collect { + case (file, api) if api.compilation.startTime == c.startTime => relative(file) + } + recompiledFiles.toSet + } + def recompiledFilesInIteration(iteration: Int, fileNames: Set[String]) = { + val files = fileNames.map(new java.io.File(_)) + assert(recompiledFiles(iteration) == files, "%s != %s".format(recompiledFiles(iteration), files)) + } + assert(allCompilations.size == 2) + // B.scala is just compiled at the beginning + recompiledFilesInIteration(0, Set("B.scala")) + // A.scala is changed and recompiled + recompiledFilesInIteration(1, Set("A.scala")) +} + +logLevel := Level.Debug diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/changes/A1.scala new file mode 100644 index 000000000..57a1f34c6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/changes/A1.scala @@ -0,0 +1,3 @@ +trait A { + def foo: Int = 12 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/A.scala new file mode 100644 index 000000000..0eab80adc --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/A.scala @@ -0,0 +1 @@ +trait A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/B.scala new file mode 100644 index 000000000..c4d3f7e97 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/src/main/scala/B.scala @@ -0,0 +1 @@ +class B(a: A) diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/test b/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/test new file mode 100644 index 000000000..f8f7cb076 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-member-modified/test @@ -0,0 +1,9 @@ +# Test if adding a member to a trait affects classes that refer to that trait +# by a member reference +> compile +# add `foo` method to `A` +$ copy-file changes/A1.scala src/main/scala/A.scala +# only A.scala should be recompiled +> compile +# check if there are only two compile iterations performed +> check-compilations diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/A.scala new file mode 100644 index 000000000..cbcda3176 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/A.scala @@ -0,0 +1,3 @@ +trait A { + val foo = 0 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/B.scala new file mode 100644 index 000000000..5da0f8a71 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/B.scala @@ -0,0 +1,5 @@ +object B extends A { + def main(args: Array[String]): Unit = { + println(foo) + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/changes/A.scala new file mode 100644 index 000000000..63ca671b7 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/changes/A.scala @@ -0,0 +1,4 @@ +trait A { + val foo = 0 + X.a + private object X { val a = 1 } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/test b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/test new file mode 100644 index 000000000..5aab7a143 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-object/test @@ -0,0 +1,5 @@ +> run + +$ copy-file changes/A.scala A.scala + +> run \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/B.scala new file mode 100644 index 000000000..a0bb35627 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/B.scala @@ -0,0 +1,3 @@ +object B extends A { + def main(args: Array[String]): Unit = println(bar) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A0.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A0.scala new file mode 100644 index 000000000..cf57bdb33 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A0.scala @@ -0,0 +1,3 @@ +trait A { + def bar: Int = 0 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A1.scala new file mode 100644 index 000000000..3eb53d77c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A1.scala @@ -0,0 +1,5 @@ +trait A { + private var foo = 12 + // we need to access foo to trigger AbstractMethodError + def bar: Int = foo +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A2.scala new file mode 100644 index 000000000..60641457d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/changes/A2.scala @@ -0,0 +1,5 @@ +trait A { + private val foo = 12 + // we need to access foo to trigger AbstractMethodError + def bar: Int = foo +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/test b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/test new file mode 100644 index 000000000..c120697d8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-private-var/test @@ -0,0 +1,28 @@ +$ copy-file changes/A0.scala A.scala + +# compile and run for the first time to verify that everything works +> run + +# introduce private var and refer to it in a trait that we inherit from +# there'll be pair of getters and setters generated for private var that +# has to be implemented by a class (where you can declare corresponding field) +$ copy-file changes/A1.scala A.scala + +# If the introduction of a private var did not trigger the recompilation of B, +# then this will fail with AbstractMethodError because the getters and setters +# for the private var have not been generated. +> run + +# Try again with a private val +> clean + +$ copy-file changes/A0.scala A.scala + +# compile and run a clean project to verify that everything works +> run + +# introduce a private val in the trait +$ copy-file changes/A2.scala A.scala + +# Verify that B has been recompiled and that everything runs fine. +> run diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-super/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/A.scala new file mode 100644 index 000000000..52ad7e6a0 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/A.scala @@ -0,0 +1,6 @@ +trait A { + def x: Int +} +class E extends A { + def x = 19 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-super/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/B.scala new file mode 100644 index 000000000..cba4cc427 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/B.scala @@ -0,0 +1,6 @@ +trait B extends A { + abstract override def x = 1 +} +trait C extends A { + abstract override def x = 3 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-super/Main.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/Main.scala new file mode 100644 index 000000000..37d821d9d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/Main.scala @@ -0,0 +1,10 @@ +class X extends E with C with B + +object Main { + + def main(args: Array[String]): Unit = { + val x = new X + val expected = args(0).toInt + assert(x.x == expected, "Expected " + expected + ", got " + x.x) + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-super/changes/B2.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/changes/B2.scala new file mode 100644 index 000000000..c89acd3ae --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/changes/B2.scala @@ -0,0 +1,6 @@ +trait B extends A { + abstract override def x = super.x + 2 +} +trait C extends A { + abstract override def x = 3 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-super/changes/B3.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/changes/B3.scala new file mode 100644 index 000000000..2a7ba55ec --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/changes/B3.scala @@ -0,0 +1,6 @@ +trait B extends A { + abstract override def x = super.x + 2 +} +trait C extends A { + abstract override def x = super.x +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-super/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/trait-super/test b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/test new file mode 100644 index 000000000..b14d5dc76 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/trait-super/test @@ -0,0 +1,16 @@ +# Dotty: This test has been disabled because super accessors are introduced +# in PostTyper but the sbt phase is run before PostTyper so that tests like +# "constants" succeed. + +# This test verifies that adding/removing calls to super in traits properly +# recompiles subclasses. super calls introduce accessors that are not in +# the public API, so this is not picked up by the usual API change detection. + +> run 1 + +$ copy-file changes/B2.scala B.scala +> run 5 + +$ copy-file changes/B3.scala B.scala +> run 21 + diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/changes/A2.scala new file mode 100644 index 000000000..8811bc83d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/changes/A2.scala @@ -0,0 +1,4 @@ +object A +{ + val x = 5 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/A.scala new file mode 100644 index 000000000..a0121ded0 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/A.scala @@ -0,0 +1,4 @@ +object A +{ + val x = "a" +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/B.scala new file mode 100644 index 000000000..da3e21492 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/B.scala @@ -0,0 +1,4 @@ +object B +{ + val y = A.x +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/C.scala new file mode 100644 index 000000000..0c2345e0f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/src/main/scala/C.scala @@ -0,0 +1,4 @@ +object C +{ + val z = B.y.length +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/test b/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/test new file mode 100644 index 000000000..774b014aa --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-a/test @@ -0,0 +1,4 @@ +> compile + +$ copy-file changes/A2.scala src/main/scala/A.scala +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/changes/A2.scala new file mode 100644 index 000000000..3a0001416 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/changes/A2.scala @@ -0,0 +1,4 @@ +trait A +{ + val x = 5 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/A.scala new file mode 100644 index 000000000..d49070e79 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/A.scala @@ -0,0 +1,4 @@ +trait A +{ + val x = "a" +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/B.scala new file mode 100644 index 000000000..310eb5b60 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/B.scala @@ -0,0 +1 @@ +trait B extends A \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/C.scala new file mode 100644 index 000000000..da117fc3f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/src/main/scala/C.scala @@ -0,0 +1,4 @@ +trait C extends B +{ + val z = x.length +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/test b/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/test new file mode 100644 index 000000000..774b014aa --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-b/test @@ -0,0 +1,4 @@ +> compile + +$ copy-file changes/A2.scala src/main/scala/A.scala +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/A.java b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/A.java new file mode 100644 index 000000000..96b1a01a7 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/A.java @@ -0,0 +1,3 @@ +public class A { + public int x() { return 5; } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/B.java b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/B.java new file mode 100644 index 000000000..7e9bb5574 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/B.java @@ -0,0 +1 @@ +public class B extends A {} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/C.java b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/C.java new file mode 100644 index 000000000..a5a7716ea --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/C.java @@ -0,0 +1,4 @@ +public class C extends B +{ + public int x() { return super.x() + 3; } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/changes/A2.java b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/changes/A2.java new file mode 100644 index 000000000..9f4b93d84 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/changes/A2.java @@ -0,0 +1 @@ +public class A {} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/test b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/test new file mode 100644 index 000000000..387cbae45 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit-java/test @@ -0,0 +1,4 @@ +> compile + +$ copy-file changes/A2.java A.java +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/A.scala new file mode 100644 index 000000000..0eab80adc --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/A.scala @@ -0,0 +1 @@ +trait A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/B.scala new file mode 100644 index 000000000..310eb5b60 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/B.scala @@ -0,0 +1 @@ +trait B extends A \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/C.scala new file mode 100644 index 000000000..9e7708627 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/C.scala @@ -0,0 +1,4 @@ +trait C extends B +{ + def x = 3 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/changes/A2.scala new file mode 100644 index 000000000..609031a44 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/changes/A2.scala @@ -0,0 +1,4 @@ +trait A +{ + def x = 5 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/test b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/test new file mode 100644 index 000000000..74fa79ef9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-inherit/test @@ -0,0 +1,4 @@ +> compile + +$ copy-file changes/A2.scala A.scala +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt new file mode 100644 index 000000000..d24e304b1 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt @@ -0,0 +1,40 @@ +logLevel := Level.Debug + +incOptions := incOptions.value.withNameHashing(true) + +// disable sbt's heauristic which recompiles everything in case +// some fraction (e.g. 50%) of files is scheduled to be recompiled +// in this test we want precise information about recompiled files +// which that heuristic would distort +incOptions := incOptions.value.copy(recompileAllFraction = 1.0) + +/* Performs checks related to compilations: + * a) checks in which compilation given set of files was recompiled + * b) checks overall number of compilations performed + */ +TaskKey[Unit]("check-compilations") := { + val analysis = (compile in Compile).value + val srcDir = (scalaSource in Compile).value + def relative(f: java.io.File): java.io.File = f.relativeTo(srcDir) getOrElse f + val allCompilations = analysis.compilations.allCompilations + val recompiledFiles: Seq[Set[java.io.File]] = allCompilations map { c => + val recompiledFiles = analysis.apis.internal.collect { + case (file, api) if api.compilation.startTime == c.startTime => relative(file) + } + recompiledFiles.toSet + } + def recompiledFilesInIteration(iteration: Int, fileNames: Set[String]) = { + val files = fileNames.map(new java.io.File(_)) + assert(recompiledFiles(iteration) == files, "%s != %s".format(recompiledFiles(iteration), files)) + } + // Y.scala is compiled only at the beginning as changes to A.scala do not affect it + recompiledFilesInIteration(0, Set("X.scala", "Y.scala")) + // A.scala is changed and recompiled + recompiledFilesInIteration(1, Set("A.scala")) + // change in A.scala causes recompilation of B.scala, C.scala, D.scala which depend on transtiviely + // and by inheritance on A.scala + // X.scala is also recompiled because it depends by member reference on B.scala + // Note that Y.scala is not recompiled because it depends just on X through member reference dependency + recompiledFilesInIteration(2, Set("B.scala", "C.scala", "D.scala")) + assert(allCompilations.size == 3) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/changes/A1.scala new file mode 100644 index 000000000..63a2739e1 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/changes/A1.scala @@ -0,0 +1,5 @@ +package test + +class A { + def foo: Int = 23 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/A.scala new file mode 100644 index 000000000..1b0178fd9 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/A.scala @@ -0,0 +1,3 @@ +package test + +class A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/B.scala new file mode 100644 index 000000000..b9913245b --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/B.scala @@ -0,0 +1,3 @@ +package test + +class B extends A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/C.scala new file mode 100644 index 000000000..4ce04f8bf --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/C.scala @@ -0,0 +1,3 @@ +package test + +class C extends B diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/D.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/D.scala new file mode 100644 index 000000000..eff328ce5 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/D.scala @@ -0,0 +1,3 @@ +package test + +class D extends C diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/X.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/X.scala new file mode 100644 index 000000000..8c0d9edf8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/X.scala @@ -0,0 +1,5 @@ +package test + +class X { + def bar(b: B) = b +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/Y.scala b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/Y.scala new file mode 100644 index 000000000..df53c3c5c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/src/main/scala/Y.scala @@ -0,0 +1,5 @@ +package test + +class Y { + def baz(x: X) = x +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/test b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/test new file mode 100644 index 000000000..395f90229 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/transitive-memberRef/test @@ -0,0 +1,11 @@ +# introduces first compile iteration +> compile +# adds a new method to A which will cause transitive invalidation +# of all source files that inherit from it +# also, all direct dependencies of files that inherit from A will +# be invalidated (in our case that's X.scala) +$ copy-file changes/A1.scala src/main/scala/A.scala +# second iteration +> compile +# check in which compile iteration given source file got recompiled +> check-compilations diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-alias/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/type-alias/A.scala new file mode 100644 index 000000000..c0c8794a7 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-alias/A.scala @@ -0,0 +1,4 @@ +object A { + type X = Option[Int] +} + diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-alias/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/type-alias/B.scala new file mode 100644 index 000000000..81640ed8d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-alias/B.scala @@ -0,0 +1,3 @@ +object B { + def y: A.X = Option(3) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-alias/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/type-alias/build.sbt new file mode 100644 index 000000000..c5a1099aa --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-alias/build.sbt @@ -0,0 +1,3 @@ +logLevel in compile := Level.Debug + +incOptions := incOptions.value.withNameHashing(true) diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-alias/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/type-alias/changes/A.scala new file mode 100644 index 000000000..53aee1626 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-alias/changes/A.scala @@ -0,0 +1,3 @@ +object A { + type X = Int +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-alias/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/type-alias/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-alias/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-alias/test b/sbt-bridge/src/sbt-test/source-dependencies/type-alias/test new file mode 100644 index 000000000..f0a7fe8a1 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-alias/test @@ -0,0 +1,7 @@ +> compile + +# change type alias +$ copy-file changes/A.scala A.scala + +# Both A.scala and B.scala should be recompiled, producing a compile error +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/A.scala new file mode 100644 index 000000000..d712f6feb --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/A.scala @@ -0,0 +1 @@ +trait A[T] diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/B.scala new file mode 100644 index 000000000..0f996cdc3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/B.scala @@ -0,0 +1 @@ +trait B[T] extends A[T] diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/C.scala new file mode 100644 index 000000000..505a83aa6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/C.scala @@ -0,0 +1,3 @@ +object C { + new A[Int] {} +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/D.scala b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/D.scala new file mode 100644 index 000000000..51273ad98 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/D.scala @@ -0,0 +1,3 @@ +object D { + def x[T](a: A[T]) = a +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/changes/A.scala new file mode 100644 index 000000000..0eab80adc --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/changes/A.scala @@ -0,0 +1 @@ +trait A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/test b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/test new file mode 100644 index 000000000..2063e9e1b --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/type-parameter/test @@ -0,0 +1,7 @@ +> compile + +# remove type parameter from A +$ copy-file changes/A.scala A.scala + +# should get compile error because B, C, D reference A without a type parameter +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/A.scala new file mode 100644 index 000000000..3b274e4a8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/A.scala @@ -0,0 +1,5 @@ +class A[T] + +abstract class C { + def foo: A[B] +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/B.scala new file mode 100644 index 000000000..179f0d275 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/B.scala @@ -0,0 +1 @@ +class B diff --git a/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/build.sbt new file mode 100644 index 000000000..02813797f --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/build.sbt @@ -0,0 +1,5 @@ +logLevel := Level.Debug + +// disable recompile all which causes full recompile which +// makes it more difficult to test dependency tracking +incOptions ~= { _.copy(recompileAllFraction = 1.0) } diff --git a/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/test b/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/test new file mode 100644 index 000000000..fb314fd7b --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/typeref-only/test @@ -0,0 +1,7 @@ +# test case for dependency tracking in case given type (`B` in our case) +# mentioned only in type ref (as a type argument) +> compile + +$ delete B.scala + +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/A.scala new file mode 100644 index 000000000..0407cb687 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/A.scala @@ -0,0 +1,4 @@ +object A { + type I = Int + def x: I = sys.error("not important") +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/B.scala new file mode 100644 index 000000000..afb1169fc --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/B.scala @@ -0,0 +1,3 @@ +object B { + val y: Int = A.x +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/changes/A.scala new file mode 100644 index 000000000..dfac84abb --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/changes/A.scala @@ -0,0 +1,4 @@ +object A { + type I = String + def x: I = sys.error("Not important") +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/test b/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/test new file mode 100644 index 000000000..751cde01b --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/typeref-return/test @@ -0,0 +1,5 @@ +> compile + +$ copy-file changes/A.scala A.scala + +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/A.scala new file mode 100644 index 000000000..83d15dc73 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/A.scala @@ -0,0 +1 @@ +class A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/B.scala new file mode 100644 index 000000000..a18aec3db --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/B.scala @@ -0,0 +1 @@ +class B extends A diff --git a/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/C.scala new file mode 100644 index 000000000..d8c306253 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/C.scala @@ -0,0 +1,3 @@ +object C { + val listb: List[B] = List(new B) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/D.scala b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/D.scala new file mode 100644 index 000000000..fa8f13a1b --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/D.scala @@ -0,0 +1,3 @@ +object D { + val lista: List[A] = C.listb +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/changes/B2.scala b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/changes/B2.scala new file mode 100644 index 000000000..179f0d275 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/changes/B2.scala @@ -0,0 +1 @@ +class B diff --git a/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/test b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/test new file mode 100644 index 000000000..134321021 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-a/test @@ -0,0 +1,4 @@ +> compile +$ copy-file changes/B2.scala B.scala +# Compilation of D.scala should fail because B is no longer a subtype of A +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/A.scala new file mode 100644 index 000000000..301b546cb --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/A.scala @@ -0,0 +1,5 @@ +class A { + type T <: S + type S <: Int + def foo: T = null.asInstanceOf[T] +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/B.scala new file mode 100644 index 000000000..edfe2e6a8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/B.scala @@ -0,0 +1,3 @@ +object B { + val x: Int = (new A).foo +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/changes/A2.scala new file mode 100644 index 000000000..bbe60f206 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/changes/A2.scala @@ -0,0 +1,5 @@ +class A { + type T <: S + type S <: String + def foo: T = null.asInstanceOf[T] +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/test b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/test new file mode 100644 index 000000000..97902bd42 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/types-in-used-names-b/test @@ -0,0 +1,4 @@ +> compile +$ copy-file changes/A2.scala A.scala +# Compilation of B.scala should fail because A#S is no longer a subtype of Int +-> compile diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/A.scala new file mode 100644 index 000000000..dbaa1c3f0 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/A.scala @@ -0,0 +1 @@ +class A(val x: Int) extends AnyVal diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/B.scala new file mode 100644 index 000000000..7d5a86a95 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/B.scala @@ -0,0 +1,3 @@ +object B { + def foo: A = new A(0) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/C.scala new file mode 100644 index 000000000..1a9a42bde --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/C.scala @@ -0,0 +1,5 @@ +object C { + def main(args: Array[String]): Unit = { + val x = B.foo + } +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/build.sbt new file mode 100644 index 000000000..6448c246c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/build.sbt @@ -0,0 +1 @@ +logLevel := Level.Debug diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/changes/A2.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/changes/A2.scala new file mode 100644 index 000000000..94d868a92 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/changes/A2.scala @@ -0,0 +1 @@ +class A(val x: Double) extends AnyVal diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/test b/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/test new file mode 100644 index 000000000..a42fd2d71 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class-underlying/test @@ -0,0 +1,3 @@ +> run +$ copy-file changes/A2.scala A.scala +> run diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/value-class/build.sbt new file mode 100644 index 000000000..77cf9f18c --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class/build.sbt @@ -0,0 +1 @@ +incOptions := incOptions.value.withRecompileAllFraction(1.0) diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/A0.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/A0.scala new file mode 100644 index 000000000..ad5bf4c56 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/A0.scala @@ -0,0 +1 @@ +class A(val x: Int) diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/A1.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/A1.scala new file mode 100644 index 000000000..dbaa1c3f0 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/A1.scala @@ -0,0 +1 @@ +class A(val x: Int) extends AnyVal diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/B0.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/B0.scala new file mode 100644 index 000000000..0dba978c3 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/B0.scala @@ -0,0 +1,3 @@ +class B { + def foo(a: A): Int = 1 +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/B1.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/B1.scala new file mode 100644 index 000000000..c7b689c5e --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/B1.scala @@ -0,0 +1,3 @@ +class B { + def bar: A = new A(0) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/B2.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/B2.scala new file mode 100644 index 000000000..fe1136389 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/B2.scala @@ -0,0 +1,3 @@ +class B { + def bar(dummy: String)(dummy2: String): A = new A(0) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/C0.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/C0.scala new file mode 100644 index 000000000..1fed7a120 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/C0.scala @@ -0,0 +1,3 @@ +object C extends dotty.runtime.LegacyApp { + println(new B().foo(null)) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/C1.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/C1.scala new file mode 100644 index 000000000..f10fe2d16 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/C1.scala @@ -0,0 +1,3 @@ +object C extends dotty.runtime.LegacyApp { + println(new B().bar.x) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/C2.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/C2.scala new file mode 100644 index 000000000..a0c5c6972 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class/changes/C2.scala @@ -0,0 +1,3 @@ +object C extends dotty.runtime.LegacyApp { + println(new B().bar("")("").x) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/value-class/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/value-class/test b/sbt-bridge/src/sbt-test/source-dependencies/value-class/test new file mode 100644 index 000000000..268274bf6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/value-class/test @@ -0,0 +1,50 @@ +## Case 1: value class as parameter of method +$ copy-file changes/A0.scala src/main/scala/A.scala +$ copy-file changes/B0.scala src/main/scala/B.scala +$ copy-file changes/C0.scala src/main/scala/C.scala + +# A is a normal class. B.foo accepts a parameter of type A. C calls B.foo, giving it `null`. +> compile +> run + +# Make A a value class. +$ copy-file changes/A1.scala src/main/scala/A.scala + +# The code no longer compiles because B.foo no longer accepts `null` as an argument. +# This means that we have invalidated C.scala, as expected! +-> compile + + +## Case 2: value class as return type of method with no parameter lists +$ copy-file changes/A0.scala src/main/scala/A.scala +$ copy-file changes/B1.scala src/main/scala/B.scala +$ copy-file changes/C1.scala src/main/scala/C.scala + +# A is a normal class. B.bar takes no arguments and returns an instance of A. C calls B.bar. +> compile +> run + +# Make A a value class. +$ copy-file changes/A1.scala src/main/scala/A.scala + +# The code compiles. It will run iff C is recompiled because the signature of B.bar has changed, +# because A is now a value class. +> run + + +## Case 3: value class as return type of method with multiple parameter lists +$ copy-file changes/A0.scala src/main/scala/A.scala +$ copy-file changes/B2.scala src/main/scala/B.scala +$ copy-file changes/C2.scala src/main/scala/C.scala + +# A is a normal class. B.bar takes two dummy arguments and returns an instance of A. C calls B.bar("")(""). +> compile +> run + +# Make A a value class. +$ copy-file changes/A1.scala src/main/scala/A.scala + +# The code compiles. It will run iff C is recompiled because the signature of B.bar has changed, +# because A is now a value class. +> run + diff --git a/sbt-bridge/src/sbt-test/source-dependencies/var/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/var/A.scala new file mode 100644 index 000000000..1c5d96e09 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/var/A.scala @@ -0,0 +1,5 @@ +class A +{ + def x = 3 + def x_=(x$1: Int) = () +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/var/B.scala b/sbt-bridge/src/sbt-test/source-dependencies/var/B.scala new file mode 100644 index 000000000..3ee290f84 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/var/B.scala @@ -0,0 +1,4 @@ +class B extends A +{ + override var x = 3 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/var/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/var/changes/A.scala new file mode 100644 index 000000000..d1c251596 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/var/changes/A.scala @@ -0,0 +1,4 @@ +class A +{ + var x = 3 +} \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/var/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/var/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/var/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/var/test b/sbt-bridge/src/sbt-test/source-dependencies/var/test new file mode 100644 index 000000000..1da88684d --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/var/test @@ -0,0 +1,6 @@ +> compile + +# replace var x with def x, def x_= +$ copy-file changes/A.scala A.scala + +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/variance/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/variance/A.scala new file mode 100644 index 000000000..4581bfec8 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/variance/A.scala @@ -0,0 +1,2 @@ +class A[+T] + \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/variance/C.scala b/sbt-bridge/src/sbt-test/source-dependencies/variance/C.scala new file mode 100644 index 000000000..8b526d9af --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/variance/C.scala @@ -0,0 +1,3 @@ +object C { + val a: A[Any] = new A[Int] +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/variance/changes/A.scala b/sbt-bridge/src/sbt-test/source-dependencies/variance/changes/A.scala new file mode 100644 index 000000000..e9c64dff6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/variance/changes/A.scala @@ -0,0 +1,2 @@ +class A[T] + \ No newline at end of file diff --git a/sbt-bridge/src/sbt-test/source-dependencies/variance/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/variance/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/variance/project/DottyInjectedPlugin.scala @@ -0,0 +1,17 @@ +import sbt._ +import Keys._ + +object DottyInjectedPlugin extends AutoPlugin { + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override val projectSettings = Seq( + scalaVersion := "0.1-SNAPSHOT", + scalaOrganization := "ch.epfl.lamp", + scalacOptions += "-language:Scala2", + scalaBinaryVersion := "2.11", + autoScalaLibrary := false, + libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"), + scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources() + ) +} diff --git a/sbt-bridge/src/sbt-test/source-dependencies/variance/test b/sbt-bridge/src/sbt-test/source-dependencies/variance/test new file mode 100644 index 000000000..d74e441e7 --- /dev/null +++ b/sbt-bridge/src/sbt-test/source-dependencies/variance/test @@ -0,0 +1,6 @@ +> compile + +# make T invariant +$ copy-file changes/A.scala A.scala + +-> compile \ No newline at end of file diff --git a/sbt-bridge/src/test/scala/xsbt/DependencySpecification.scala b/sbt-bridge/src/test/scala/xsbt/DependencySpecification.scala new file mode 100644 index 000000000..60545091b --- /dev/null +++ b/sbt-bridge/src/test/scala/xsbt/DependencySpecification.scala @@ -0,0 +1,151 @@ +/** Adapted from https://github.com/sbt/sbt/blob/0.13/compile/interface/src/test/scala/xsbt/DependencySpecification.scala */ +package xsbt + +import org.junit.runner.RunWith +import xsbti.api.ClassLike +import xsbti.api.Def +import xsbt.api.SameAPI +import org.specs2.mutable.Specification +import org.specs2.runner.JUnitRunner + +import ScalaCompilerForUnitTesting.ExtractedSourceDependencies + +@RunWith(classOf[JUnitRunner]) +class DependencySpecification extends Specification { + + "Extracted source dependencies from public members" in { + val sourceDependencies = extractSourceDependenciesPublic + val memberRef = sourceDependencies.memberRef + val inheritance = sourceDependencies.inheritance + memberRef('A) === Set.empty + inheritance('A) === Set.empty + memberRef('B) === Set('A, 'D) + inheritance('B) === Set('D) + memberRef('C) === Set('A) + inheritance('C) === Set.empty + memberRef('D) === Set.empty + inheritance('D) === Set.empty + memberRef('E) === Set.empty + inheritance('E) === Set.empty + memberRef('F) === Set('A, 'B, 'C, 'D, 'E, 'G) + inheritance('F) === Set('A, 'E) + memberRef('H) === Set('B, 'E, 'G) + // aliases and applied type constructors are expanded so we have inheritance dependency on B + inheritance('H) === Set('B, 'E) + } + + "Extracted source dependencies from private members" in { + val sourceDependencies = extractSourceDependenciesPrivate + val memberRef = sourceDependencies.memberRef + val inheritance = sourceDependencies.inheritance + memberRef('A) === Set.empty + inheritance('A) === Set.empty + memberRef('B) === Set.empty + inheritance('B) === Set.empty + memberRef('C) === Set('A) + inheritance('C) === Set('A) + memberRef('D) === Set('B) + inheritance('D) === Set('B) + } + + "Extracted source dependencies with trait as first parent" in { + val sourceDependencies = extractSourceDependenciesTraitAsFirstPatent + val memberRef = sourceDependencies.memberRef + val inheritance = sourceDependencies.inheritance + memberRef('A) === Set.empty + inheritance('A) === Set.empty + memberRef('B) === Set('A) + inheritance('B) === Set('A) + // verify that memberRef captures the oddity described in documentation of `Relations.inheritance` + // we are mainly interested whether dependency on A is captured in `memberRef` relation so + // the invariant that says that memberRef is superset of inheritance relation is preserved + memberRef('C) === Set('A, 'B) + inheritance('C) === Set('A, 'B) + // same as above but indirect (C -> B -> A), note that only A is visible here + memberRef('D) === Set('A, 'C) + inheritance('D) === Set('A, 'C) + } + + /* + "Extracted source dependencies from macro arguments" in { + val sourceDependencies = extractSourceDependenciesFromMacroArgument + val memberRef = sourceDependencies.memberRef + val inheritance = sourceDependencies.inheritance + + memberRef('A) === Set('B, 'C) + inheritance('A) === Set.empty + memberRef('B) === Set.empty + inheritance('B) === Set.empty + memberRef('C) === Set.empty + inheritance('C) === Set.empty + } + */ + + private def extractSourceDependenciesPublic: ExtractedSourceDependencies = { + val srcA = "class A" + val srcB = "class B extends D[A]" + val srcC = """|class C { + | def a: A = null + |}""".stripMargin + val srcD = "class D[T]" + val srcE = "trait E[T]" + val srcF = "trait F extends A with E[D[B]] { self: G.MyC => }" + val srcG = "object G { type T[x] = B ; type MyC = C }" + // T is a type constructor [x]B + // B extends D + // E verifies the core type gets pulled out + val srcH = "trait H extends G.T[Int] with (E[Int] @unchecked)" + + val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) + val sourceDependencies = compilerForTesting.extractDependenciesFromSrcs('A -> srcA, 'B -> srcB, 'C -> srcC, + 'D -> srcD, 'E -> srcE, 'F -> srcF, 'G -> srcG, 'H -> srcH) + sourceDependencies + } + + private def extractSourceDependenciesPrivate: ExtractedSourceDependencies = { + val srcA = "class A" + val srcB = "class B" + val srcC = "class C { private class Inner1 extends A }" + val srcD = "class D { def foo: Unit = { class Inner2 extends B } }" + + val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) + val sourceDependencies = + compilerForTesting.extractDependenciesFromSrcs('A -> srcA, 'B -> srcB, 'C -> srcC, 'D -> srcD) + sourceDependencies + } + + private def extractSourceDependenciesTraitAsFirstPatent: ExtractedSourceDependencies = { + val srcA = "class A" + val srcB = "trait B extends A" + val srcC = "trait C extends B" + val srcD = "class D extends C" + + val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) + val sourceDependencies = + compilerForTesting.extractDependenciesFromSrcs('A -> srcA, 'B -> srcB, 'C -> srcC, 'D -> srcD) + sourceDependencies + } + + /* + private def extractSourceDependenciesFromMacroArgument: ExtractedSourceDependencies = { + val srcA = "class A { println(B.printTree(C.foo)) }" + val srcB = """ + |import scala.language.experimental.macros + |import scala.reflect.macros._ + |object B { + | def printTree(arg: Any) = macro printTreeImpl + | def printTreeImpl(c: Context)(arg: c.Expr[Any]): c.Expr[String] = { + | val argStr = arg.tree.toString + | val literalStr = c.universe.Literal(c.universe.Constant(argStr)) + | c.Expr[String](literalStr) + | } + |}""".stripMargin + val srcC = "object C { val foo = 1 }" + + val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) + val sourceDependencies = + compilerForTesting.extractDependenciesFromSrcs(List(Map('B -> srcB, 'C -> srcC), Map('A -> srcA))) + sourceDependencies + } + */ +} diff --git a/sbt-bridge/src/test/scala/xsbt/ExtractAPISpecification.scala b/sbt-bridge/src/test/scala/xsbt/ExtractAPISpecification.scala new file mode 100644 index 000000000..f5af67e45 --- /dev/null +++ b/sbt-bridge/src/test/scala/xsbt/ExtractAPISpecification.scala @@ -0,0 +1,45 @@ +/** Adapted from https://github.com/sbt/sbt/blob/0.13/compile/interface/src/test/scala/xsbt/ExtractAPISpecification.scala */ +package xsbt + +import org.junit.runner.RunWith +import xsbti.api.ClassLike +import xsbti.api.Def +import xsbt.api.ShowAPI +import org.specs2.mutable.Specification +import org.specs2.runner.JUnitRunner + +@RunWith(classOf[JUnitRunner]) +class ExtractAPISpecification extends Specification { + + "Existential types in method signatures" should { + "have stable names" in { stableExistentialNames } + } + + def stableExistentialNames: Boolean = { + def compileAndGetFooMethodApi(src: String): Def = { + val compilerForTesting = new ScalaCompilerForUnitTesting + val sourceApi = compilerForTesting.extractApiFromSrc(src) + val FooApi = sourceApi.definitions().find(_.name() == "Foo").get.asInstanceOf[ClassLike] + val fooMethodApi = FooApi.structure().declared().find(_.name == "foo").get + fooMethodApi.asInstanceOf[Def] + } + val src1 = """ + |class Box[T] + |class Foo { + | def foo: Box[_] = null + | + }""".stripMargin + val fooMethodApi1 = compileAndGetFooMethodApi(src1) + val src2 = """ + |class Box[T] + |class Foo { + | def bar: Box[_] = null + | def foo: Box[_] = null + | + }""".stripMargin + val fooMethodApi2 = compileAndGetFooMethodApi(src2) + fooMethodApi1 == fooMethodApi2 + // Fails because xsbt.api is compiled with Scala 2.10 + // SameAPI.apply(fooMethodApi1, fooMethodApi2) + } +} diff --git a/sbt-bridge/src/test/scala/xsbt/ExtractUsedNamesSpecification.scala b/sbt-bridge/src/test/scala/xsbt/ExtractUsedNamesSpecification.scala new file mode 100644 index 000000000..ed463a3e6 --- /dev/null +++ b/sbt-bridge/src/test/scala/xsbt/ExtractUsedNamesSpecification.scala @@ -0,0 +1,119 @@ +/** Adapted from https://github.com/sbt/sbt/blob/0.13/compile/interface/src/test/scala/xsbt/ExtractUsedNamesSpecification.scala */ +package xsbt + +import org.junit.runner.RunWith +import xsbti.api.ClassLike +import xsbti.api.Def +import xsbti.api.Package +import xsbt.api.SameAPI +import org.junit.runners.JUnit4 + +import org.specs2.mutable.Specification + +@RunWith(classOf[JUnit4]) +class ExtractUsedNamesSpecification extends Specification { + + /** + * Standard names that appear in every compilation unit that has any class + * definition. + */ + private val standardNames = Set( + // All class extend Object + "Object", + // All class have a default constructor called + "", + // the return type of the default constructor is Unit + "Unit" + ) + + "imported name" in { + val src = """ + |package a { class A } + |package b { + | import a.{A => A2} + |}""".stripMargin + val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) + val usedNames = compilerForTesting.extractUsedNamesFromSrc(src) + val expectedNames = standardNames ++ Set("a", "A", "A2", "b") + usedNames === expectedNames + } + + // test covers https://github.com/gkossakowski/sbt/issues/6 + "names in type tree" in { + val srcA = """| + |package a { + | class A { + | class C { class D } + | } + | class B[T] + | class BB + |}""".stripMargin + val srcB = """| + |package b { + | abstract class X { + | def foo: a.A#C#D + | def bar: a.B[a.BB] + | } + |}""".stripMargin + val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) + val usedNames = compilerForTesting.extractUsedNamesFromSrc(srcA, srcB) + // DOTTY: unlike the scalac sbt phase, this does not contain "X", I believe this is safe + // TODO: report issue against sbt suggesting that they do the same + val expectedNames = standardNames ++ Set("a", "A", "B", "C", "D", "b", "BB") + usedNames === expectedNames + } + + // test for https://github.com/gkossakowski/sbt/issues/5 + "symbolic names" in { + val srcA = """| + |class A { + | def `=`: Int = 3 + |}""".stripMargin + val srcB = """| + |class B { + | def foo(a: A) = a.`=` + |}""".stripMargin + val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) + val usedNames = compilerForTesting.extractUsedNamesFromSrc(srcA, srcB) + // DOTTY TODO: "Int" is not actually used, but we collect it because + // it's the inferred return type so it appears in a TypeTree + // We could avoid this by checking if the untyped tree has a return type + // but is it worth it? Revisit this after https://github.com/sbt/sbt/issues/1104 + // has landed. + val expectedNames = standardNames ++ Set("A", "a", "$eq", "Int") + usedNames === expectedNames + } + + // test for https://github.com/gkossakowski/sbt/issues/3 + "used names from the same compilation unit" in { + val src = "class A { def foo: Int = 0; def bar: Int = foo }" + val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) + val usedNames = compilerForTesting.extractUsedNamesFromSrc(src) + val expectedNames = standardNames ++ Set("A", "foo", "Int") + usedNames === expectedNames + } + + // pending test for https://issues.scala-lang.org/browse/SI-7173 + "names of constants" in { + val src = "class A { final val foo = 12; def bar: Int = foo }" + val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) + val usedNames = compilerForTesting.extractUsedNamesFromSrc(src) + val expectedNames = standardNames ++ Set("A", "foo", "Int") + usedNames === expectedNames + } + + // pending test for https://github.com/gkossakowski/sbt/issues/4 + // TODO: we should fix it by having special treatment of `selectDynamic` and `applyDynamic` calls + "names from method calls on Dynamic" in { + val srcA = """|import scala.language.dynamics + |class A extends Dynamic { + | def selectDynamic(name: String): Int = name.length + |}""".stripMargin + val srcB = "class B { def foo(a: A): Int = a.bla }" + val compilerForTesting = new ScalaCompilerForUnitTesting(nameHashing = true) + val usedNames = compilerForTesting.extractUsedNamesFromSrc(srcA, srcB) + val expectedNames = standardNames ++ Set("B", "A", "a", "Int", "selectDynamic", "bla") + usedNames === expectedNames + }.pendingUntilFixed("Call to Dynamic is desugared in type checker so Select nodes is turned into string literal.") + +} diff --git a/sbt-bridge/src/test/scala/xsbt/ScalaCompilerForUnitTesting.scala b/sbt-bridge/src/test/scala/xsbt/ScalaCompilerForUnitTesting.scala new file mode 100644 index 000000000..db037effe --- /dev/null +++ b/sbt-bridge/src/test/scala/xsbt/ScalaCompilerForUnitTesting.scala @@ -0,0 +1,191 @@ +/** Adapted from https://github.com/sbt/sbt/blob/0.13/compile/interface/src/test/scala/xsbt/ScalaCompilerForUnitTesting.scala */ +package xsbt + +import xsbti.compile.SingleOutput +import java.io.File +import _root_.scala.tools.nsc.reporters.ConsoleReporter +import _root_.scala.tools.nsc.Settings +import xsbti._ +import xsbti.api.SourceAPI +import sbt.IO.withTemporaryDirectory +import xsbti.api.ClassLike +import xsbti.api.Definition +import xsbti.api.Def +import xsbt.api.SameAPI +import sbt.ConsoleLogger +import xsbti.DependencyContext._ + +import ScalaCompilerForUnitTesting.ExtractedSourceDependencies + +/** + * Provides common functionality needed for unit tests that require compiling + * source code using Scala compiler. + */ +class ScalaCompilerForUnitTesting(nameHashing: Boolean = false) { + + /** + * Compiles given source code using Scala compiler and returns API representation + * extracted by ExtractAPI class. + */ + def extractApiFromSrc(src: String): SourceAPI = { + val (Seq(tempSrcFile), analysisCallback) = compileSrcs(src) + analysisCallback.apis(tempSrcFile) + } + + def extractUsedNamesFromSrc(src: String): Set[String] = { + val (Seq(tempSrcFile), analysisCallback) = compileSrcs(src) + analysisCallback.usedNames(tempSrcFile) + } + + /** + * Extract used names from src provided as the second argument. + * + * The purpose of the first argument is to define names that the second + * source is going to refer to. Both files are compiled in the same compiler + * Run but only names used in the second src file are returned. + */ + def extractUsedNamesFromSrc(definitionSrc: String, actualSrc: String): Set[String] = { + // we drop temp src file corresponding to the definition src file + val (Seq(_, tempSrcFile), analysisCallback) = compileSrcs(definitionSrc, actualSrc) + analysisCallback.usedNames(tempSrcFile) + } + + /** + * Compiles given source code snippets (passed as Strings) using Scala compiler and returns extracted + * dependencies between snippets. Source code snippets are identified by symbols. Each symbol should + * be associated with one snippet only. + * + * Snippets can be grouped to be compiled together in the same compiler run. This is + * useful to compile macros, which cannot be used in the same compilation run that + * defines them. + * + * Symbols are used to express extracted dependencies between source code snippets. This way we have + * file system-independent way of testing dependencies between source code "files". + */ + def extractDependenciesFromSrcs(srcs: List[Map[Symbol, String]]): ExtractedSourceDependencies = { + val rawGroupedSrcs = srcs.map(_.values.toList) + val symbols = srcs.flatMap(_.keys) + val (tempSrcFiles, testCallback) = compileSrcs(rawGroupedSrcs) + val fileToSymbol = (tempSrcFiles zip symbols).toMap + + val memberRefFileDeps = testCallback.sourceDependencies collect { + // false indicates that those dependencies are not introduced by inheritance + case (target, src, DependencyByMemberRef) => (src, target) + } + val inheritanceFileDeps = testCallback.sourceDependencies collect { + // true indicates that those dependencies are introduced by inheritance + case (target, src, DependencyByInheritance) => (src, target) + } + def toSymbols(src: File, target: File): (Symbol, Symbol) = (fileToSymbol(src), fileToSymbol(target)) + val memberRefDeps = memberRefFileDeps map { case (src, target) => toSymbols(src, target) } + val inheritanceDeps = inheritanceFileDeps map { case (src, target) => toSymbols(src, target) } + def pairsToMultiMap[A, B](pairs: Seq[(A, B)]): Map[A, Set[B]] = { + import scala.collection.mutable.{ HashMap, MultiMap } + val emptyMultiMap = new HashMap[A, scala.collection.mutable.Set[B]] with MultiMap[A, B] + val multiMap = pairs.foldLeft(emptyMultiMap) { + case (acc, (key, value)) => + acc.addBinding(key, value) + } + // convert all collections to immutable variants + multiMap.toMap.mapValues(_.toSet).withDefaultValue(Set.empty) + } + + ExtractedSourceDependencies(pairsToMultiMap(memberRefDeps), pairsToMultiMap(inheritanceDeps)) + } + + def extractDependenciesFromSrcs(srcs: (Symbol, String)*): ExtractedSourceDependencies = { + val symbols = srcs.map(_._1) + assert(symbols.distinct.size == symbols.size, + s"Duplicate symbols for srcs detected: $symbols") + extractDependenciesFromSrcs(List(srcs.toMap)) + } + + /** + * Compiles given source code snippets written to temporary files. Each snippet is + * written to a separate temporary file. + * + * Snippets can be grouped to be compiled together in the same compiler run. This is + * useful to compile macros, which cannot be used in the same compilation run that + * defines them. + * + * The sequence of temporary files corresponding to passed snippets and analysis + * callback is returned as a result. + */ + private def compileSrcs(groupedSrcs: List[List[String]]): (Seq[File], TestCallback) = { + withTemporaryDirectory { temp => + val analysisCallback = new TestCallback(nameHashing) + val classesDir = new File(temp, "classes") + classesDir.mkdir() + + // val (compiler, ctx) = prepareCompiler(classesDir, analysisCallback, classesDir.toString) + + val files = for ((compilationUnit, unitId) <- groupedSrcs.zipWithIndex) yield { + val (compiler, ctx) = prepareCompiler(classesDir, analysisCallback, classesDir.toString) + val run = compiler.newRun(ctx) + val srcFiles = compilationUnit.toSeq.zipWithIndex map { + case (src, i) => + val fileName = s"Test-$unitId-$i.scala" + prepareSrcFile(temp, fileName, src) + } + val srcFilePaths = srcFiles.map(srcFile => srcFile.getAbsolutePath).toList + + run.compile(srcFilePaths) + + srcFilePaths.foreach(f => new File(f).delete) + srcFiles + } + (files.flatten.toSeq, analysisCallback) + } + } + + private def compileSrcs(srcs: String*): (Seq[File], TestCallback) = { + compileSrcs(List(srcs.toList)) + } + + private def prepareSrcFile(baseDir: File, fileName: String, src: String): File = { + val srcFile = new File(baseDir, fileName) + sbt.IO.write(srcFile, src) + srcFile + } + + private def prepareCompiler(outputDir: File, analysisCallback: AnalysisCallback, classpath: String = ".") = { + val args = Array.empty[String] + object output extends SingleOutput { + def outputDirectory: File = outputDir + override def toString = s"SingleOutput($outputDirectory)" + } + + import dotty.tools.dotc._ + import dotty.tools.dotc.core.Contexts._ + + val driver = new Driver { + + protected def newCompiler(implicit ctx: Context): Compiler = new Compiler + + override protected def sourcesRequired = false + + def getCompiler(args: Array[String], rootCtx: Context) = { + val (fileNames, ctx) = setup(args, rootCtx) + (newCompiler(ctx), ctx) + } + } + val ctx = (new ContextBase).initialCtx.fresh.setSbtCallback(analysisCallback) + driver.getCompiler(Array("-classpath", classpath, "-usejavacp"), ctx) + } + + private object ConsoleReporter extends Reporter { + def reset(): Unit = () + def hasErrors: Boolean = false + def hasWarnings: Boolean = false + def printWarnings(): Unit = () + def problems: Array[Problem] = Array.empty + def log(pos: Position, msg: String, sev: Severity): Unit = println(msg) + def comment(pos: Position, msg: String): Unit = () + def printSummary(): Unit = () + } + +} + +object ScalaCompilerForUnitTesting { + case class ExtractedSourceDependencies(memberRef: Map[Symbol, Set[Symbol]], inheritance: Map[Symbol, Set[Symbol]]) +} diff --git a/sbt-bridge/src/test/scala/xsbti/TestCallback.scala b/sbt-bridge/src/test/scala/xsbti/TestCallback.scala new file mode 100644 index 000000000..b849e1a80 --- /dev/null +++ b/sbt-bridge/src/test/scala/xsbti/TestCallback.scala @@ -0,0 +1,35 @@ +/** Copied from https://github.com/sbt/sbt/blob/0.13/interface/src/test/scala/xsbti/TestCallback.scala */ +package xsbti + +import java.io.File +import scala.collection.mutable.ArrayBuffer +import xsbti.api.SourceAPI +import xsbti.DependencyContext._ + +class TestCallback(override val nameHashing: Boolean = false) extends AnalysisCallback +{ + val sourceDependencies = new ArrayBuffer[(File, File, DependencyContext)] + val binaryDependencies = new ArrayBuffer[(File, String, File, DependencyContext)] + val products = new ArrayBuffer[(File, File, String)] + val usedNames = scala.collection.mutable.Map.empty[File, Set[String]].withDefaultValue(Set.empty) + val apis: scala.collection.mutable.Map[File, SourceAPI] = scala.collection.mutable.Map.empty + + def sourceDependency(dependsOn: File, source: File, inherited: Boolean): Unit = { + val context = if(inherited) DependencyByInheritance else DependencyByMemberRef + sourceDependency(dependsOn, source, context) + } + def sourceDependency(dependsOn: File, source: File, context: DependencyContext): Unit = { sourceDependencies += ((dependsOn, source, context)) } + def binaryDependency(binary: File, name: String, source: File, inherited: Boolean): Unit = { + val context = if(inherited) DependencyByInheritance else DependencyByMemberRef + binaryDependency(binary, name, source, context) + } + def binaryDependency(binary: File, name: String, source: File, context: DependencyContext): Unit = { binaryDependencies += ((binary, name, source, context)) } + def generatedClass(source: File, module: File, name: String): Unit = { products += ((source, module, name)) } + + def usedName(source: File, name: String): Unit = { usedNames(source) += name } + def api(source: File, sourceAPI: SourceAPI): Unit = { + assert(!apis.contains(source), s"The `api` method should be called once per source file: $source") + apis(source) = sourceAPI + } + def problem(category: String, pos: xsbti.Position, message: String, severity: xsbti.Severity, reported: Boolean): Unit = () +} -- cgit v1.2.3