| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
One last batch of test cleanups and I think I'll call it a day. If
you're worried I didn't leave any for anyone else, let me put your fears
to rest. PLENTY left to sift through. No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The next batch of tests put up a little more struggle, but only a
little. See test/pending/pos/unappgadteval.scala (the changes for which
were in the previous commit) for an example of a test which might be on
to something. Any idea what it would take to get it working?
// the key lines
case i @ Suc() => { (y: Int) => y + 1 } // a = Int => Int
case f @ Lam[b,c](x, e) => { (y: b) => eval(e, env.extend(x, y)) } // a = b=>c
No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sorting through the tests in pending from oldest to newest because I
don't believe in having useless appendages. The verdict on the oldest
fifteen tests is: 15/15 are fixed. Many were already in files under a
different name. I moved a few and deleted the rest. Fun fact of the
day: apparently there was a time when to call into java varargs with no
arguments you might have to write something like:
getClass().getMethod("getCount", Array[java.lang.Class[T] forSome { type T }]())
On this basis I retract any complaints I've ever had about anything.
There is one question mark outlined in pos/testCoercionThis.scala, a
file formerly called pos/moors.scala and therefore... review by moors.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Still giddy with the thrill of fixing #266, I vanquish another pattern
matcher bug from the dawn of time. If you've always wanted to write code
like this:
class Bob[K[_]] {
def foo(other: Any) = other match {
case x: (Bob[X] forSome { type X[_] }) =>
}
}
Now is your chance. Closes #1427, review by moors. (Is there a better
way to "shake off" the pattern existential?)
|
| |
|
|
|
|
|
| |
review by odersky
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
situations where a mutable var will later be lifted. As a point of
interest, this bug reveals itself fairly clearly if you use a build
since r23112 and run the checker thusly:
scalac -d /tmp -Ycheck-debug -Ycheck:icode -Xprint:icode
test/files/run/bug3855.scala
It dies with the following explanation:
Output changed for Block 3 [S: 2] [P: 1, 4]
Exception in thread "main" scala.tools.nsc.backend.icode.CheckerException:
Incompatible stacks: TypeStack() and TypeStack(2 elems) {
REFERENCE(class IntRef)
REFERENCE(class IntRef)
} in Test.main at entry to block: 2
And indeed that was the source of the reported verifyerror.
Review by i. dragos.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refined crash avoidance related to self type tests in anonymous classes
as introduced for #576. Now it really only excludes anonymous classes.
Suddenly, this works:
override def equals(other: Any) = other match {
case _: this.type => true
case _ => false
}
Who will be the first to roll out some reference equality in the
this.type style? No review.
|
|
|
|
|
|
| |
Fixed an ancient crasher in explicitouter involving singleton
self-types. Closes #266, review by odersky.
|
|
|
|
|
|
|
|
|
|
|
| |
including "CheckEither", written against scalacheck 1.2 in the year 471
AD. Removed all the duplicates I could find, mostly between pending
and files. Renamed a bunch of tests so they wouldn't look like likely
duplicates next time around. Nominated somebody else to do this once in
a while.
No review.
|
|
|
|
|
| |
review by maier as no good deed goes unpunished
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Some progress on reviving TreeCheckers, plus a couple bugfixes and
better error messages revealed by that progress. Also applied tiny
increment in understanding to fixing up TreeDSL some more. The hand of
martin guides from above, so no review.
|
|
|
|
|
|
|
|
| |
moved typing indentation to where it belongs, now inliner shuold be able
to do its job in implicits as well
no review
|
|
|
|
|
|
|
|
|
| |
closes #3857: retain pre-erasure info in type history after cloning of
mixed in members and, specifically for this bug, fields, so that java
generic type sigs are more precise.
review by DRagos
|
|
|
|
|
|
|
|
| |
appliedType goes under annotations.
removed some dead code in isSubtypeHK0.
review by rytz
|
| |
|
|
|
|
|
|
| |
Added an override to immutable.IndexedSeq#toIndexedSeq which returns
itself. Closes #3732, no review.
|
| |
|
| |
|
|
|
|
|
| |
Test case submitted by mark harrah closes #2813, no review.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
closes #3792: type equality for singleton types did not take type
aliases into account while chasing the chain of underlying types (if the
underlying type is an alias of a singleton type, it should be followed)
review by odersky
|
| |
|
|
|
|
|
|
| |
Tail recursive implementation of mapConserve, submitted by Eric
Willigers. Closes #2411, review by malayeri.
|
| |
|
| |
|
|
|
|
|
|
| |
Fixed an issue with ListSet getting confused about what goes forward and
what goes backward. No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Restoring negative literal parsing behavior to what should be the least
surprising option. Thanks much to Johannes Rudolph for identifying the
bug in the bytecode generator which needed addressing for us to arrive
at proper -0.0 behavior, and for writing the majority of this patch.
A '-' followed immediately by either a number or a period should now
always be treated as a single numeric literal, which means the minus
binds more tightly than anything else. A specific example of how this
differs from 2.8 final is:
-5.+(10) == 5.0 // and not -15.0
The full range of potentially ambiguous parses involving prefix
operators, numbers, and dots is quite large and still needs to be
completely and clearly specified.
Closes #2378 and #3657, review by odersky, jrudolph.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some tweaks to ListSet to make it less pathological in its outlook. We
can see some modest improvements in run time and answer quality via the
enclosed test case:
// with this patch: 2.250s elapsed, assertions pass.
// without this patch: 51.441s elapsed, and it's
a mercy killing: java.lang.StackOverflowError at
scala.collection.immutable.ListSet$Node.contains(ListSet.scala:117) at
scala.collection.immutable.ListSet$Node.contains(ListSet.scala:117)
Closes #3822, review by community.
|
|
|
|
|
|
|
| |
Does what can probably be done about strange iterator exhaustion
behavior. Maybe we should start thinking about iteratees... Closes
#3760, no review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
part 2 of the dependent method refactoring: improved interaction with
implicit search (needed for oopsla paper)
more to come in this area, see e.g. #3346 (stanford edsl stuff)
reopens #13, which wasn't fixed properly before imo, anyway (have a look at -Xprint:typer output before this commit: a type that's not expressible in surface syntax is inferred -- also removed duplicate test file)
closes #3731: co-evolve type alias type symbols when their rhs is
updated and they are referenced by type selections (see typemap)
review by odersky
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
closes #1569, #3731: refactored dependent method types to get rid of
debruijn indices and use singleton types instead.
this is the core of the dependent types refactoring, no implicit or
inference changes
(one baffling discovery: resultType should drop annotations that don't subclass TypeConstraint, even in the trivial case... wow -- thanks to Tiark for helping me figure it out on a terrace in Barcelona
TODO: probably need a more principled approach to the propagation of plugin type-annotations)
review by odersky
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the Transform-derived traits within view resisted evaluating the entire
sequence on a toString call, but the original view returned from a call
to .view did not. This has a particularly bad result in the case of
Stream, as for instance:
Stream from 1 view
would enter infiniteloopiland in the repl despite the fact that it
should be doubly resistant to eager evaluation.
Review by prokopec.
|
|
|
|
|
|
|
| |
[Editorial correction: r23000 was submitted by Johannes Rudolph and my
name inadvertently replaced his in the windy path from git to svn. The
comments and code are his. Posterity, take note!]
|
|
|
|
|
|
|
|
|
|
|
|
| |
positioning fix for infix expressions: report error at the operator
instead of at the receiver of a binop
In general use the operator position as the Select position's point
instead of the left or right expression. Position.union always uses the
receiver's point as point of the result, so swapping fixes that.
See http://www.scala-lang.org/node/6912 for the report.
|
|
|
|
|
|
| |
Gave StringBuilder a StringLike parent as endorsed by martin in
http://www.scala-lang.org/node/6893 . Review by odersky.
|
|
|
|
|
|
| |
Removed Throw from the set of unlabelled AST Nodes. Closes #3534, review
by dragos.
|
|
|
|
|
|
|
| |
Added implicits to create Orderings from java's Comparable and
Comparator interfaces. Also some cleanup in Sorting. Review by
community.
|
|
|
|
|
|
|
|
| |
Stream gets a specialized, extra-lazy Iterator so it can iterate as
lazily as it traverses. Patch submitted by "Eastsun": probably not
his real name, but that's what we call him. Closes #3273, review by
prokopec.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
closes #1693: improve implicit conversion disambiguation by
incorporating the expected type of the member that triggered the
conversion
back-ported fix by Martin in embeddings branch.
review by odersky (just in case it shouldn't have been back-ported)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
given the definitions below (for full context, see test file), before,
O0 would work but O would not, now both are accepted:
{{{
object O0 extends C {}
object O extends C { self => }
}}}
review by odersky
|
|
|
|
|
|
|
|
| |
closes #3692: make instantiateTypeVar more careful so it does not change
T's info to >: T <: T.
review by odersky
|
|
|
|
|
|
|
|
| |
patch contributed by Mark Harrah in
http://article.gmane.org/gmane.comp.lang.scala/20700
reviewed by moors and odersky
|
| |
|