| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Prepend {(); ... } before starting the ANF transform.
Add tracing to the anf/inline transform.
Also enables and addresses SIP-18 warnings.
|
|
|
|
|
|
|
|
| |
- transform the provided tree using reflect.internal.Symbols#Symbol.name_=
and treeCopy.{Ident, Select}.
- not sure if this is possible within the public Symbol API.
- move checking for unsupported nested module/class to AsyncAnalysis.
- make block merging selective (only do so if there are nested await calls.)
|
|
|
|
|
|
|
|
| |
- corrects detection of await calls in the ANF transform.
- Split AsyncAnalyzer into two parts. Unsupported await
detection must happen prior to the async transform to
prevent the ANF lifting out by-name arguments to
vals and hence changing the semantics.
|
|
|
|
|
| |
- Move now-working duplicate definition tests from `neg` to `run`.
- Renames and small code beautification around the var lifting analysis
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of generating an assignment to a Unit-typed variable, just add
the Unit value after the if-else expression:
[async] scala.async.Async.async[Unit]({
val f: scala.concurrent.Future[Int] = AnfTestClass.this.base(y);
if (y.>(0))
State.result_=(scala.async.Async.await[Int](f).+(2))
else
State.result_=(scala.async.Async.await[Int](f).-(2))
})
[async] ANF transform expands to:
{
val f: scala.concurrent.Future[Int] = AnfTestClass.this.base(y);
if (y.>(0))
{
val await$8: Int = scala.async.Async.await[Int](f);
State.result_=(await$8.+(2))
}
else
{
val await$9: Int = scala.async.Async.await[Int](f);
State.result_=(await$9.-(2))
};
()
}
|
|
|
|
|
| |
- Does not descend into class and module defs
- Adds several tests, including tests for if-else
|
| |
|
| |
|
|
|
|
| |
Works like it says on the box.
|
|
|
|
| |
Perhaps we should freshen them, but that will be a little awkward in our reify block.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
- Enable continuations plugin
- Fill in project metadata
- Enable stricter compiler options
- satisfy -Xlint with some empty parens.
|
|
- Convert tests to use JUnit
- For the 'run' tests, just use plain-old-test-cases
- Add a sample 'neg' test to use ToolBoxes to compile code snippets on the fly.
|