| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
the following commit deals with the fall-out in basicblocks
(double closing of blocks in ignore mode)
|
|
|
|
|
| |
reverts 3db29dde051614d976bca92a1cdeb109c9c0ab01 and 5af2bf54d21ac63236cd6e68586b2c38fa0f28c3
restores 19a48510c2e18430a35319c04dfe3bad7119f23f
|
| |
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
'VladUreche/issue/5593', 'dragos/master', 'VladUreche/issue/5599', 'adriaanm/ticket/treeannot' and 'heathermiller/issue/5291' into develop
|
| | | |/ |
|
| | |/
| | |
| | |
| | | |
shutdown test more resilient on slow machines.
|
| | | |
|
| | |\ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Initially motivated by SI-5580, then just motivated. I broke up
the opaquely named JavaConversions and JavaConverters into the following
traits encapsulating some permutation of
{ to java, to scala, bidirectional }
{ wrappers, decorators }
I named everything consistently in terms of either Wrappers
or Decorators. Decorators install those asJava/asScala methods
onto collections of the right kind; Wrappers hide the process.
JavaConversions then reduces to an object which (ill-advisedly)
extends both WrapAsJava and WrapAsScala. And JavaConverters is
an object extending DecorateAsScala and DecorateAsJava. However
other more clearly named vals exist in the newly created
scala.collection.convert package object.
val decorateAsJava = new DecorateAsJava { }
val decorateAsScala = new DecorateAsScala { }
val decorateAll = new DecorateAsJava with DecorateAsScala { }
val wrapAsJava = new WrapAsJava { }
val wrapAsScala = new WrapAsScala { }
val wrapAll = new WrapAsJava with WrapAsScala { }
So for instance to import asScala decorators, and only those:
scala> import scala.collection.convert.decorateAsScala._
import scala.collection.convert.decorateAsScala._
scala> new java.util.ArrayList[String].asScala groupBy (x => x)
res0: scala.collection.immutable.Map[String,scala.collection.mutable.Buffer[String]] = Map()
I propose we put those vals or a subset of them in the scala
package object rather than way down in scala.collection.convert.
|
| | |/
| |/|
| | |
| | |
| | | |
Tried to paint a picture of how one might synthesize an implicit
method to accompany an implicit class.
|
| | | |
|
| | | |
|
| |/ |
|
| |
| |
| |
| | |
This reverts commit d8ba5d091e5641553b438ef9930a6023a2709dcd.
|
| |
| |
| |
| |
| |
| |
| | |
Pattern matcher! Totally unrelated to irrefutability, the pattern matcher
at some point stopped sorting its lookup switch cases, and the butterfly's
wings flapped enough to swap two cases. Now they're sorted in ascending
order like they're supposed to be.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fewer deprecation warnings, prettier trees, prettier
symbols, more polished error messages.
Oh the interesting people you meet handling warnings, I
feel sorry for you all that I get to do it all the time.
One of the characters I met invited me into the "Dead Code
Society" and that's what I'm doing on Tuesdays now. No of
course you haven't, it's a SECRET society.
|
| |
| |
| |
| |
| | |
Temporary reversion of irrefutability commits in interests
of stable milestone. Expect to restore shortly.
|
| |\ \
| | | |
| | | |
| | | | |
'adriaanm/topic/virtpatmat' and 'vjovanov/actor-hierarchy' into develop
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
no need for the clunky repackExistential
pack the type of each case instead, since the skolems we've created shouldn't last beyond the case anyway
this way we don't end up with fresh, incompatible, skolems for every case, but a neatly packed existential
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
typedMatchAnonFun is called from typedFunction when the function's body is a match
this is work-in-progres: the compiler currently won't bootstrap under -Yvirtpatmat
see also the pending test
make sure to use the right context in typeFunction when the body is a Match
when typer is set up for type checking a Function, the current owner is the symbol for the function,
but we'll type check a Block(List(ClassDef(cd)), New(cd)) when the function is a match,
and the function symbol is nowhere to be found, so go to outer context
in patmatvirt:
- simplified default case gen (no need for a Casegen instance)
- using CASE | SYNTHETIC to detect generated matches (for switches) and avoid typing them endlessly
more uniform, and necessary for new-style anon Function class instance gen for matches
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
when an unapply returns Option[T] where T is some ProductN, does that mean the unapply
returns 1 result, i.e., that T, or did it mean to return N results?
to disambiguate, falling back to stricter spec-adherence, which requires T be exactly TupleN for N results
for now, allow extractor result to be any product, not just tuple
|
| | |/
| | |
| | |
| | | |
it's a warning on new patmat -- TODO: dig deeper
|
| | |\
| | | |
| | | |
| | | |
| | | | |
Conflicts:
test/scaladoc/scala/html/HtmlFactoryTest.scala
|
| | | |
| | | |
| | | |
| | | |
| | | | |
and fixed a pesky crash in the syntax highlighting caused by invalid
chars (0x0E) in MarkupParser.scala.
|
| | | |
| | | |
| | | |
| | | | |
Looks like I got that irrefutability bug too.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Rather than withFilter, for a subset of for comprehension structures.
Not sure if this was somewhat by design - only seems possible because
refchecks was only looking for nme.filter, not nme.withFilter, so
perhaps this was intended as some secret irrefutability backchannel?
Really have to document that sort of thing if it's intentional. I
assumed it wasn't and unified everything.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The parser has always been confused about tuple patterns in
for comprehensions. It thinks it can fail to recognize an
irrefutable pattern and have it removed in refchecks, but it
is sadly mistaken, because the unnecessary filter has a tendency
to fail the compile in typer.
Look more intently for irrefutable patterns and don't insert
the unnecessary filter. Closes SI-5589, SI-1336.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
extrapolate GADT skolems: only complicate types when needed
make sure we only deskolemize GADT skolems after typedCase
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Removed Timeout from the library. Each library should provide its own implementation of Timeout
- Removed duration package object and replaced it with regular object
- Removed usages of post Java 1.5 TimeUnit members
- Added factory methods for FiniteDuration
- Cleaned up some unnecessary comments
- Merged duration DSL with Duration.scala file
Review by: @phaller
|
|\| | |
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Having now experienced the unbelievable difference it makes to
have one's voluminous debugging output effectively color-coded,
I had to librarize the ansi codes in order to use them. This
could all go in the standard library, or as soon as I can easily
make use of compiler dependencies, a separate library altogether.
For now it hides away in scala.tools.util.color.
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* +: does head/tail decomposition on any Seq
* :+ does init/last decomposition on any Seq
* Both preserve specific Seq types.
Review by @odersky
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It's more of a "dump what it says to a file so we'll know if
any of this ever changes" than a "test" per se. It could use
some wheat/chaff/nonsense/sense sorting. Still, it would
be great to have more stuff like this.
|
| | | |
|
| | | | |
| | \ | |
| | \ | |
| | \ | |
| | \ | |
| | \ | |
| | \ | |
| | \ | |
| | \ | |
| | \ | |
| |\ \ \ \ \ \|
| | | | | | | |
| | | | | | | |
| | | | | | | | |
'acruise/t1118', 'hubertp/issue/5572', 'hubertp/topic/nightly-checkinit', 'axel22/feature/pc-ctrie', 'jsuereth/master-version-fixin' and 'axel22/feature/checkinit-transient' into develop
|
| | | | | | | | |
|
| | | | |/ / / |
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* Use new-style deprecation annotations
* Slightly less cutesy test text
* Move t1118.scala to the right directory
|
| | | | | | | |
|
| | | | | | | |
|
| | | |/ / /
| | |/| | | |
|
| | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This reverts commit f987afe55e6d4f71c7e9ad10d1ca9f6120dc1132.
Looks like somebody misread the grammar. Look for it to
return in one of paulp's exclusive branches for today's
discriminating hacker.
|
| | |_|/
| |/| |
| | | |
| | | | |
At least, I think so.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Type application and operator notation could not formerly be
mixed. Now they can, as the grammar has always suggested.
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
(Looks like there is more range position breakage yet, but
this gets the outermost layer.)
Channeling my struggles into a slightly easier future.
% scalac -Ypos-debug -d /tmp ./src/library/scala/Predef.scala
./src/library/scala/Predef.scala:222: warning: Positioned tree has unpositioned child in phase extmethods
def x = __resultOfEnsuring
^
parent: #7109 line 222 Select // (value __resultOfEnsuring in class Ensuring)
child: #7108 Ident // (value $this)
./src/library/scala/Predef.scala:258: warning: Positioned tree has unpositioned child in phase extmethods
def x = __leftOfArrow
^
parent: #7280 line 258 Select // (value __leftOfArrow in class ArrowAssoc)
child: #7279 Ident // (value $this)
two warnings found
Or try this to really see some output:
% scalac -Yrangepos -Ypos-debug
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Have you often thought that programming is just like the
movie 'Hackers', only with less rollerblading? Now that we
have @inline skates, that last caveat can be retired.
It's just like the movie 'Hackers'.
Signed-off-by: Zero Cool
|