| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
| |
made DivergentImplicit a def so we see what goes wrong lately in Eclipse.
|
|
|
|
|
|
| |
Added log message to tell what version of the presentation compiler is
running.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The AnyVal types become source files instead of polite compiler
fictions.
!! You'll need a serious "ant all.clean" now. !!
As of this commit the system is fully bootstrapped and the
synthetic code eliminated: only the source files remain. The
sort-of-AnyVal-companions in scala.runtime.* have all been eliminated
because the actual companions can do everything; deprecated vals in
the scala.runtime package object point to the companions. This left
AnyValCompanion as the only AnyVal related thing in the runtime package:
that made little sense, so I deprecated and moved it as well.
Starr is based on r24066 plus this commit. Closes #4121. Review by rytz,
odersky.
|
|
|
|
|
|
|
| |
Tackled source generation from a new angle rather than letting genprod
get any more creaky. This code generates the AnyVal source files (but
those are not included here.) No review.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Taking a ride from 106 invalid generic signatures to zero. Closes #4067.
Numbers 1-72:
Problem: Primitive types appearing in generic bounds.
Response: Use the boxed types.
Numbers 73-105:
Problem: Doubly nested classes can become Outer<T>.Inner.Inner2
Response: Don't allow dots except immediately following angle brackets.
Number 106:
Problem: Array may be being used as a higher kinded type,
and in such cases should not receive the special Array treatment.
Solution: args.nonEmpty
Observe my claim is that 106/106 signatures have been made "valid",
not "correct" or even "more nearly correct." As to that I would like a
second opinion. And.... review by moors!
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Modified scala build to push jline artifact to maven repositories.
Review by: extempore
|
|
|
|
|
|
|
| |
Updated to new jline sources with it moved into scala.tools.jline. I
transitioned the jline build from maven to sbt, and this commit includes
the first sbt-built binary. Review by jsuereth.
|
|
|
|
|
|
|
| |
[scaladoc] First attempt at modularisation of Scaladoc generator. Option
"docgenerator" controls which generation backend is called. No review
for now; needs a discussion.
|
|
|
|
|
|
|
| |
[scaladoc] Fixes issue with code block in scaladoc attribute (which were
wrongly attributed to main comment, instead of attribute). Review by
pedrofurla.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
The empty string commit made me hungry to actually know what's in stuff.
Now it prints quotes around a string if it's empty or if either the
first or last character is whitespace. No review.
|
|
|
|
|
| |
things which used it to use sys.process. No review.
|
| |
|
| |
|
|
|
|
|
|
| |
Defer a check from the typer to refcheck so the error message makes some
sense. Closes #4174, review by rytz.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Integrated contributed non-recursive implementation of permutations,
combinations, subsets, by EastSun. Also gave mutable Seqs an in-place
transform method like the one Map has. And couldn't resist slightly
reformulating a few set methods, because how can we settle for
"forall(that.contains)" when we could have "this forall that". (Which is
also what normal people hear when we talk about sets.)
Closes #4060, #3644, review by moors.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Made the empty string print as "" in the repl instead of as nothing.
This after being misled one too many times by a variation of this:
scala> List[String]()
res1: List[String] = List()
scala> List[String]("")
res2: List[String] = List()
No review.
|
|
|
|
|
|
| |
The repl becomes more intense about making sure you wanted file
completion before offering it. Closes #4130, no review.
|
|
|
|
|
| |
Made partest update a checkfile even if it doesn't exist. No review.
|
|
|
|
|
|
| |
Look even harder for attempts to sneak "this" into superconstructor
arguments, and improve positioning. Closes #4166, no review.
|
| |
|
|
|
|
|
|
| |
Fixed a problem noted by Iulian in completion.
Review by vigdorchik
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
introduce NullaryMethodType to disambiguate PolyType
motivation:
given `def foo[T]: (T, T)` and `type Foo[T] = (T, T)`,
`foo.info` and `TypeRef(_, Foo, Nil).normalize` are both
`PolyType(List(T), Pair[T, T])`
uncurry has been relying on an ugly hack to distinguish these
cases based on ad-hoc kind inference without this distinction,
the type alias's info (a type function) would be transformed to
`PolyType(List(T), MethodType(Nil, Pair[T, T]))`
anonymous type functions are being used more often (see #2741, #4017,
#4079, #3443, #3106), which makes a proper treatment of PolyTypes more
pressing
change to type representation:
PolyType(Nil, tp) -> NullaryMethodType(tp)
PolyType(tps, tp) -> PolyType(tps, NullaryMethodType(tp)) (if the polytype denoted a polymorphic nullary method)
PolyType(Nil, tp) is now invalid
the kind of a PolyType is * iff its resulttype is a NullaryMethodType or a MethodType (i.e., it's a polymorphic value)
in all other cases a PolyType now denotes a type constructor
NullaryMethodType is eliminated during uncurry
pickling:
for backwards compatibility, a NullaryMethodType(tp) is still pickled as a PolyType(Nil, tp),
unpickling rewrites pre-2.9-pickled PolyTypes according to the expected kind of the unpickled type (similar to what we used to do in uncurry)
a pickled PolyType(Nil, restpe) is unpickled to NullaryMethodType(restpe)
a pickled PolyType(tps, restpe) is unpickled to PolyType(tps, NullaryMethodType(restpe)) when the type is expected to have kind *
the rewrite probably isn't complete, but was validated by compiling
against the old scalacheck jar (which has plenty of polymorphic nullary
methods) nevertheless, this commit includes a new scalacheck jar
summary of the refactoring:
* PolyType(List(), tp) or PolyType(Nil, tp) or PolyType(parms, tp) if params.isEmpty ==> NullaryMethodType(tp)
* whenever there was a case PolyType(tps, tp) (irrespective of tps isEmpty), now need to consider the
case PolyType(tps, NullaryMethodType(tp)); just add a case NullaryMethodType(tp), since usually:
- there already is a PolyType case that recurses on the result type,
- the polytype case applied to empty and non-empty type parameter lists alike
* tp.resultType, where tp was assumed to be a PolyType that represents a polymorphic nullary method type
before, tp == PolyType(tps, res), now tp == PolyType(tps, NullaryMethodType(res))
* got bitten again (last time was dependent-method types refactoring)
by a TypeMap not being the identity when dropNonConstraintAnnotations
is true (despite having an identity apply method). Since asSeenFrom
is skipped when isTrivial, the annotations aren't dropped. The
cps plugin relies on asSeenFrom dropping these annotations for
trivial types though. Therefore, NullaryMethodType pretends to
never be trivial. Better fix(?) in AsSeenFromMap: `if(tp.isTrivial)
dropNonContraintAnnotations(tp) else ...`
TODO: scalap and eclipse
review by odersky, rytz
|
| |
|
|
|
|
|
| |
multiple-reporting-of-failures bug. No review.
|
| |
|
|
|
|
|
| |
Fixed First/Second dependency problem in presentation compiler.
|
| |
|
| |
|
|
|
|
|
|
|
| |
There was a bunch of work adriaan and I did which ended up in some git
backwaters. I think he is still working with the main code pieces but I
didn't want to lose a couple comments/clarifications. No review.
|
| |
|
|
|
|
|
|
| |
One element of the partest situation: Reporting and recovering correctly
when the compiler crashes. No review.
|
|
|
|
|
|
|
| |
What is, I think, the only possible solution to bug #4158 given the
current ways of controlling implicits. Let's just be glad there's one
instead of zero. Closes #4158, review by moors.
|
|
|
|
|
| |
Added a terminal type for echo reenable based on #4170. No review.
|
|
|
|
|
|
| |
Who knew system was such a popular sentence ending choice. Fixes some
doc comments caught up in the s/// net, no review.
|
|
|
|
|
|
| |
A few bits of java code which use "" + x and can't be helped out by
scala compiler optimizations. No review.
|
|
|
|
|
| |
Reverted to curried invokeDynamic to fix a problem in typers.
|
| |
|
| |
|