summaryrefslogtreecommitdiff
path: root/core/src/main
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix up owner chains to allow `Applyable#apply()` calls to work within lambdasLi Haoyi2017-11-051-6/+12
|
* First set of standalone tests for the gnarly `Applicative` logicLi Haoyi2017-11-052-16/+9
|
* Rename `ApplicativeMacros` and contents to shorter namesLi Haoyi2017-11-052-17/+25
|
* Split out `ApplicativeMacros` from `Target`Li Haoyi2017-11-054-122/+138
|
* Re-organize `forge/` folder according to ordering of build phases: target ↵Li Haoyi2017-11-0510-31/+44
| | | | definition, target discovery, and target evaluation
* Turn on `lihaoyi:acyclic` plugin, enforce it, and break up whatever import ↵Li Haoyi2017-11-055-81/+93
| | | | cycles exist
* Get rid of custom `coursier.Dependency` formatter, which was only needed due ↵Li Haoyi2017-11-041-33/+4
| | | | to initialization order problems, which we can solve by making everything `lazy val`s
* Synchronize `Target.Cacher#cachedTarget` call, to match the thread-safety we ↵Li Haoyi2017-11-041-1/+1
| | | | get from `lazy val`s
* First pass at providing good compile errors to invalid uses of the `T{...}` ↵Li Haoyi2017-11-041-3/+23
| | | | macro: we should only allow you to `Target#apply()` on expressions whose values come from outside the `T{...}` block
* Swap over to `typingTransformer`Li Haoyi2017-11-041-15/+14
|
* Collapse `LocalDef` into `T{...}` macro, make it more flexible so it only ↵Li Haoyi2017-11-042-48/+26
| | | | | | 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-4/+40
|
* Mark `Cacher#T`-related things as protected, since you shouldn't access them ↵Li Haoyi2017-11-041-3/+3
| | | | from outside the class body
* - Get rid of lazy `Target` wrapper since we're using lazy `def`s everywhereLi Haoyi2017-11-042-23/+5
| | | | - Switch to using just `sourcecode.Enclosing` to key the `cacherLazyMap`, since the caller is already present as the `this` owning the `cacherLazyMap` and does not need to be stored
* First experiment using `Cacher interface` combined with `Caller` implicits ↵Li Haoyi2017-11-044-2/+32
| | | | to turn `def foo = T{}` into pseudo-`lazy val`s, that we can override in subclasses using stackable traits
* Implement `ScalaDep` ADT to encapsulate handling on scala cross-version suffixesLi Haoyi2017-11-041-0/+10
|
* `Target#apply[T](t: => Target[T])` doesn't need to be implicitLi Haoyi2017-11-031-1/+1
|
* Split up forge into `scalaplugin` an `core` subprojects, to allow us to use ↵Li Haoyi2017-11-0311-0/+782
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