summaryrefslogtreecommitdiff
path: root/core/src/test/scala/forge
Commit message (Collapse)AuthorAgeFilesLines
* rename forge -> millLi Haoyi2017-11-1011-1245/+0
|
* Add basic tests for un-cached evaluation of `Task`sLi Haoyi2017-11-103-36/+103
|
* Migrate over to the new `Task`/`Target`/`Command` splitLi Haoyi2017-11-097-61/+69
|
* Move `JavaCompilerJarTests` over to new `Target.ctx()` syntaxLi Haoyi2017-11-091-11/+10
|
* Make `Applicative` macros able to inject a configurable `Ctx` object, used ↵Li Haoyi2017-11-091-3/+7
| | | | in `Target` to inject the `dest` folder for the `T{...}` block to use
* First full metacircular compile-build-execute workflow now works using the ↵Li Haoyi2017-11-071-2/+2
| | | | | | | | `build.sc` file in the root of the repo. Run using ``` sbt scalaplugin/compile "core/run build.sc ScalaPlugin.console" ```
* - Allow main methods to return `Target[T]`s, so they can then be evaled by ↵Li Haoyi2017-11-071-1/+50
| | | | | | an external `Evaluator` that has the `Discovered` mapping available - Basic integration tests for `T.command` entrypoint running in the `JavaCompilerJarTests` suite
* Break out reusable JVM specific stuff into its own fileLi Haoyi2017-11-051-53/+2
|
* Crib `createJar` code from CBT to properly set manifestLi Haoyi2017-11-051-16/+46
|
* Break out `Cacher.scala` from `Applicative.scala` to fully separate the ↵Li Haoyi2017-11-051-1/+0
| | | | gnarly macros
* Add a simple consistency checker on `Discovered` to test if any of the ↵Li Haoyi2017-11-051-39/+48
| | | | observable `Target`s in the given base are not being properly cached
* Add test to verify before-hand evaluation order of `Applyable#apply` callsLi Haoyi2017-11-051-0/+15
|
* Add multiple-identical-apply-calls unit testLi Haoyi2017-11-051-0/+10
|
* Fix up owner chains to allow `Applyable#apply()` calls to work within lambdasLi Haoyi2017-11-051-0/+12
|
* More `ApplicativeTests`Li Haoyi2017-11-051-4/+15
|
* First set of standalone tests for the gnarly `Applicative` logicLi Haoyi2017-11-052-41/+88
|
* Rename `ApplicativeMacros` and contents to shorter namesLi Haoyi2017-11-051-2/+34
|
* Split out `ApplicativeMacros` from `Target`Li Haoyi2017-11-052-1/+11
|
* Re-organize `forge/` folder according to ordering of build phases: target ↵Li Haoyi2017-11-057-2/+17
| | | | definition, target discovery, and target evaluation
* Split out `MacroErrorTests` into it's own fileLi Haoyi2017-11-042-53/+63
|
* add another negative test to ensure we give good error messages when trying ↵Li Haoyi2017-11-041-0/+15
| | | | to apply() a value coming from inside a T{...} block, this time as the param of a lambda
* First pass at providing good compile errors to invalid uses of the `T{...}` ↵Li Haoyi2017-11-041-2/+33
| | | | macro: we should only allow you to `Target#apply()` on expressions whose values come from outside the `T{...}` block
* Collapse `LocalDef` into `T{...}` macro, make it more flexible so it only ↵Li Haoyi2017-11-041-4/+1
| | | | | | caches `def`s (and complains about `val`s) if it's defined top-level in a class/trait/object, for easy overriding. If it's in some helper function somewhere, overriding doesn't matter, and it's up to the user to figure out how to construct a target graph without redundancy
* Add some basic compile-time checks to enforce usage of `T{...}` within traitsLi Haoyi2017-11-042-0/+11
|
* Add some tests to verify Cacher happy-pathsLi Haoyi2017-11-041-0/+50
|
* First experiment using `Cacher interface` combined with `Caller` implicits ↵Li Haoyi2017-11-043-13/+101
| | | | to turn `def foo = T{}` into pseudo-`lazy val`s, that we can override in subclasses using stackable traits
* Rename `IntegrationTests` to `JavaCompileJarTests`, make use of new `T{...}` ↵Li Haoyi2017-11-031-5/+4
| | | | macro in it
* Split up forge into `scalaplugin` an `core` subprojects, to allow us to use ↵Li Haoyi2017-11-038-0/+778
the `T#apply` macro in the implementation of `scalaplugin.Subproject` Also needed to implement inter-`Subproject` dependencies so the `MetacircularTests` can continue to support the new layout