| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
Existentially quantified symbols, when read by the unpickler, do not
have the existential flag set. This leads to failure. This patch seeks
improvement. Closes #4757, review by odersky.
|
|
|
|
|
|
|
| |
Fixed a bug involving classOf[Foo] having the wrong erasure. Luckily I
had only days ago deciphered the unique handling of classOf, so I knew
what was up. Closes #4753, review by odersky.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Somehow case objects fell through the cracks and have had default
hashCode implementations, leading to new hashCodes on each jvm run. Now
we use the productPrefix, and inline it right into the bytecode.
scala> None.## == "None".##
res0: Boolean = true
Closes #4752, no review.
|
| |
|
|
|
|
|
|
| |
Fixes scaladoc layout for function arguments with default values.
Contributed by Ruediger Keller. Closes SI-4588, no review.
|
|
|
|
|
|
| |
Keep BufferedSource from losing buffered data when a derivative iterator
is created via getLines. Closes #4671, #4662, no review.
|
|
|
|
|
| |
I think this is fastest and simplest both. Review by rompf.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Restored tiark's RefinedType-exclusion fast path for implicit search.
The issue was that in a subtype check like
lhs <:< { val someName }
...you cannot determine it is impossible if the left hand side is an
abstract type, because you don't know what its members will be. Review
by rompf.
|
|
|
|
|
|
| |
Having established that r25051 is not responsible for the compilation
issue with scalaz, it is hereby restored. Review by moors.
|