| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
A response to adriaan's last lub commit of the housekeeping and pretty
printing variety. Non-invasive surgery, don't worry martin. Simplified
the input to lublist a bit. Includes illustrative test case for current
brand of lub failures. Review by moors.
|
|
|
|
|
|
| |
Suppressed an error in type constructor bounds checking which was
obscuring the meaningful error to follow. Review by moors.
|
|
|
|
|
| |
Making power mode startup a little less glacial, no review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
type mismatches, for real this time. :power mode goes to phase typer
automatically.
You can get the symbols for repl-defined names more directly:
scala> case class Bippy(x: Int)
defined class Bippy
scala> intp.terms("Bippy")
res1: intp.global.Symbol = object Bippy
scala> intp.types("Bippy")
res2: intp.global.Symbol = class Bippy
scala> intp("Bippy") // tries type first
res3: intp.global.Symbol = class Bippy
scala> intp("scala.collection.Map") // falls back to fully qualified
res4: intp.global.Symbol = trait Map
I changed the implicit which used to install "tpe" and "symbol" to
install "tpe_" and "symbol_" because it was too easy to do something you
didn't mean to, like calling x.tpe where x is a Manifest.
Said implicit now handles manifest type arguments, so you can get the
full translation from a manifest representation to a compiler type, at
least for simple types and only as much as manifests work, which is not
that much. Fortunately that situation is all changing soon.
scala> List(List(1, 2, 3)).tpe_
res5: power.Type = List[List[Int]]
scala> res5.typeArgs
res6: List[power.global.Type] = List(List[Int])
Review by moors.
|
|
|
|
|
|
| |
Fixed some unnecessary chattiness and poor function naming in tree
checkers, no review.
|
|
|
|
|
| |
Seeing about getting trunk building again, no review.
|
| |
|
|
|
|
|
| |
Seeing about getting trunk building again, no review.
|
| |
|
| |
|
|
|
|
|
| |
Minor, mostly agreed upon changes to reflection api, review by odersky.
|
|
|
|
|
|
| |
Baby-steps towards getting actual runtime reflection. Made
runtime.Universe not crash when initializing.
|
|
|
|
|
| |
Review by extempore.
|
|
|
|
|
| |
No review.
|
|
|
|
|
| |
Review by extempore.
|
|
|
|
|
| |
Review by extempore.
|
|
|
|
|
| |
No review.
|
|
|
|
|
|
|
| |
This changes the signature of flatten - I do not see how to use a @bridge annotation here, since after erasure both the bridge and the original method have the same signature.
Review by extempore.
|
|
|
|
|
|
| |
Refactored reflection into reflect.api and reflect.internal. Severed the
last remaining dependency on reflect.generic. Review by extempore.
|
|
|
|
|
| |
meant for --grep to look in checkfiles too, and now it does. No review.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Created simple infrastructure for creating mutable sets and maps which
are automatically cleared after each compilation run. Since I am not too
familiar with the mechanics of the presentation compiler I'm not sure
this addresses the problem, or that it doesn't clear something which
shouldn't be cleared. Also, this is only a sampling of possible mutable
sets and maps: let me know if it does the job and I can expand it.
Review by dragos.
|
|
|
|
|
|
| |
Fixed a logic error in debuglog which was turning debugging output into
a neverending party. No review.
|
| |
|
|
|
|
|
|
|
| |
Fixing two problems in Global.scala: crashes during logs of import
completions + interruprts at possibly inconsistent states. Review by
dotta.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Changes semantics so that protected access rule (selector must be
subclass of current class) does not hold for type members. Fixes t4737.
Review by extempore. Spec change in a seperate commit.
|
|
|
|
|
|
| |
Fix to handling of imports in namers to make IDE structure building work
correctly.
|
|
|
|
|
| |
scratchpad works in interactive REPL; ready to be integrate in Eclipse.
|
| |
|
|
|
|
|
|
|
|
| |
Don't populate 'originalOwner' in presentation compiler runs. This is
a source of memory leaks, as the map is never cleared. A better, more
consistent mechanism should be developed for such maps, and ensure they
are cleared on a new Run, or in resetTyper. no review.
|
|
|
|
|
|
|
|
|
| |
Fixing Gen* builder dispatch so that methods that require an implicit
builder factory decide to run in parallel if the builder is a combiner,
rather than if the builder factory is parallel.
Review by odersky.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed a bug in the optimizer which was preventing private methods from
being inlined. Also relaxes a condition related to the "liftedTry"
problem: the inliner has to exclude certain methods from consideration
if there is a value on the stack and the method being inlined has
exception handlers. The new condition is as before, except that it does
not exclude methods of the "try/finally" variety (i.e. finalizers, but
no other exception handlers.) This is necessary to optimize this common
pattern:
@inline private def foo(body: => Unit) {
val saved = something
try body
finally something = saved
}
The closure for "body" can be fully eliminated, but only if the contents
of foo can be inlined into the caller.
Closes #4764, review by rompf.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Discovered another impressive source of unnecessary garbage is every
collection creating a new GenericCanBuildFrom for every map ever
performed. They can all use the same one: they all have the same
implementation. It looks like tiark had already figured this out and
done it for Vector: I followed with the other fifty. I really haven't
the least idea who to have review most things. No review.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hard to explain garbage led me to this innocent seeming change. Not that
innocent. A function like this should create no garbage:
final def f[T](xs: List[T], num: Int) {
if (num > 0) f(Nil ::: xs ::: Nil, num - 1)
}
Instead it was creating a lot. No review.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modified return type inference not to allow T* to leak from varargs
methods. Since I don't know what is supposed to be done about eta
expansion of these methods, I left the behavior as it was (except the
return type) and a boolean val in Types to change it.
def id[T](xs: T*) = xs
etaExpandKeepsStar = true // (id[Int] _) is Int* => Seq[Int]
etaExpandKeepsStar = false // (id[Int] _) is Seq[Int] => Seq[Int]
References #4176, leaving open pending resolution of eta expansion.
Review by odersky.
|
| |
|
|
|
|
|
|
| |
evalOnce needs to pack the type before using it on new valdefs to avoid
existential mismatches. Closes #3960, review by moors.
|
| |
|