summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #1536 from vjovanov/issues/SI-6581Josh Suereth2012-10-312-6/+6
|\ | | | | SI-6581 fixed by inlining `Actor.self`.
| * SI-6581 fixed by inlining `Actor.self`.Vojin Jovanovic2012-10-302-6/+6
| | | | | | | | | | | | This avoids the necessary type cast that was preventing leakage of internal migration classes. Review by @phaller
* | Merge pull request #1532 from hubertp/2.10.0-wip-issue/5031Josh Suereth2012-10-312-3/+7
|\ \ | | | | | | Fixes SI-5031 for separate compilation scenario.
| * | Fixes SI-5031 for separate compilation scenario.Hubert Plociniczak2012-10-282-3/+7
| |/ | | | | | | | | | | | | When you have a conflicting member in package object and normal package that share the same namespace we remove the latter ClassSymbol from the scope. Now, this has an unpleasant consequence that companionClass/companionModule/companionSymbol no longer work correctly as they rely on finding the correspondent symbol using decls of the owner. This fixes the problem of SI-5031 for separate compilation. Why the above change matters for finding foo.bar.Foo? Because when parsing the class we needed information about the static module (and we have the correct module symbol when completing the info). It's just that 043ce6d0565c9d5d960 relied on no longer valid assumptions. So we were getting NoSymbol and sym.exist was failing. Obviously a more complete solution would be better if we didn't rely on the scope but that's too big to change for 2.10.0.
* | Use Typed rather than .setTypeJason Zaugg2012-10-291-1/+3
| | | | | | | | In response to pull request feedback.
* | Wider use and a new variant of typedPos.Jason Zaugg2012-10-285-21/+30
| | | | | | | | | | | | It's safe to replace `localTyper.typed(atPos(pos)(tree))` with `localTyper.typedPos(pos)(tree)` given that we're all in the same cake and we'll get to the same `atPos`.
* | SI-6575 Plug inference leak of AbstractPartialFunJason Zaugg2012-10-281-1/+9
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Usually this isn't needed, as partial functions can only be defined with an expected type. But if that expected type is and inherited method return type, the actual type of the partial function literal is used, and the implementation detail of `AbstractPartialFunction[A, B] with Serializable` leaks out. After this change, the inferred types match those from Scala 2.9.2. ticket/6575 ~/code/scala scalac29 -Xprint:typer test/files/pos/t6575a.scala | grep def > 29.txt ticket/6575 ~/code/scala squalac -Xprint:typer test/files/pos/t6575a.scala | grep def > 210.txt ticket/6575 ~/code/scala diff -u 29.txt 210.txt --- 29.txt 2012-10-28 13:51:07.000000000 +0100 +++ 210.txt 2012-10-28 13:51:20.000000000 +0100 @@ -1,7 +1,16 @@ def foo: PartialFunction[Int,Int] def /*Y*/$init$(): Unit = { - absoverride def foo: PartialFunction[Int,Int] = ((x0$1: Int) => x0$1 match { + absoverride def foo: PartialFunction[Int,Int] = { + def <init>(): anonymous class $anonfun = { + final override def applyOrElse[A1 >: Nothing <: Int, B1 >: Int <: Any](x$1: A1, default: A1 => B1): B1 = (x$1: A1 @unchecked) match { + final def isDefinedAt(x$1: Int): Boolean = (x$1: Int @unchecked) match { def /*Z*/$init$(): Unit = { - absoverride def foo: PartialFunction[Int,Int] = ((x0$2: Int) => x0$2 match { + absoverride def foo: PartialFunction[Int,Int] = { + def <init>(): anonymous class $anonfun = { + final override def applyOrElse[A1 >: Nothing <: Int, B1 >: Int <: Any](x$1: A1, default: A1 => B1): B1 = (x$1: A1 @unchecked) match { + final def isDefinedAt(x$1: Int): Boolean = (x$1: Int @unchecked) match { def /*Comb*/$init$(): Unit = { - absoverride def foo: PartialFunction[Int,Int] = ((x0$3: Int) => x0$3 match { + absoverride def foo: PartialFunction[Int,Int] = { + def <init>(): anonymous class $anonfun = { + final override def applyOrElse[A1 >: Nothing <: Int, B1 >: Int <: Any](x$1: A1, default: A1 => B1): B1 = (x$1: A1 @unchecked) match { + final def isDefinedAt(x$1: Int): Boolean = (x$1: Int @unchecked) match {
* Merge pull request #1519 from paulp/no-product-nJosh Suereth2012-10-241-3/+4
|\ | | | | Disabled generation of _1, _2, etc. methods.
| * Disabled generation of _1, _2, etc. methods.Paul Phillips2012-10-221-3/+4
| | | | | | | | | | | | | | This was part of the introduction of ProductN, which had to go back into pandora's box because of issues with cycles during typing. These should have been reverted along with it.
* | Merge pull request #1507 from retronym/ticket/6526Josh Suereth2012-10-241-3/+5
|\ \ | | | | | | SI-6526 Tail call elimination should descend deeper.
| * | SI-6526 Tail call elimination should descend deeper.Jason Zaugg2012-10-171-3/+5
| | | | | | | | | | | | | | | It wasn't traversing into Select nodes nor into the receiver of a tail call.
* | | Fix SI-6552, regression with self types.Paul Phillips2012-10-212-3/+6
| |/ |/| | | | | | | | | | | | | | | In 6eb55d4b7a we put in a remedy for an old issue SI-4560 which had accumulated a number of sketchy partial remedies which carried no tests to illustrate their necessity. Looks like at least one of those was doing something useful. Here's to reversion-reversion. This reverts commit c8bdf199, which itself reverted cb4fd6582.
* | Merge pull request #1509 from paulp/issue/6537Josh Suereth2012-10-201-34/+33
|\ \ | | | | | | Fix for SI-6537, inaccurate unchecked warning.
| * | Fix for SI-6537, inaccurate unchecked warning.Paul Phillips2012-10-181-34/+33
| |/ | | | | | | | | | | | | | | I found a more direct expression of the unchecked logic, which should be much easier for others to verify. But the bug being fixed here is that the unchecked checking happens too early, and the sealed children of a symbol are not yet visible if it is being simultaneously compiled.
* | Merge pull request #1480 from ingoem/topic/scaladocAdriaan Moors2012-10-192-563/+9
|\ \ | | | | | | Fixes SI-6170: issue with dragging scaladoc splitter over central iframe
| * | Fixes SI-6170: issue with dragging scaladoc splitter over central iframeingoem2012-10-092-563/+9
| | |
* | | Changes Tree and Type members from vals to defs.Paul Phillips2012-10-132-115/+115
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explanatory email: The reflection API defines a great many abstract vals. I would like these all to be defs. I'm sending a pull request to that end. Reasons: for starters, they should default to being defs. It's a decision to use vals for which one should have to supply reasons. The reason for THAT is that defs can be implemented with vals, but not vice versa. Why does this matter? I can't find my long writing on the subject of TypeRef. In short, we waste a huge amount of memory on its fields, because given the way TypeRef is defined, each one demands a pre, a sym, and an args. Except that somewhere between 1/3 and 1/2 have prefix "NoPrefix", and somewhere between 1/3 and 1/2 have args "Nil". We know it at creation time, but we give every typeref the whole field anyway. At present there's no way to fix this which has acceptable performance - i.e. custom subclasses save us lots of memory, but are too much slower for having to use an extractor - but there's no reason we should have to choose, and I fully expect to fix it eventually. Let's not make that fix into a breaking change by abstractly defining "pre" and "args" as field-requiring vals.
* | Merge pull request #1492 from scalamacros/pullrequest/reflection-docsv2.10.0-RC1Josh Suereth2012-10-1145-786/+3943
|\ \ | | | | | | Pullrequest/reflection docs
| * | JavaUniverseVlad Ureche2012-10-111-2/+1
| | |
| * | Moved @contentDiagram in SymbolsVlad Ureche2012-10-111-2/+2
| | |
| * | Adds lots of new documentation for TypeTags, Mirrors, Universes and moreHeather Miller2012-10-1120-352/+646
| | | | | | | | | | | | | | | Additionally includes improvements, formatting fixes, and link additions and fixes.
| * | runtime.JavaUniverse - put ungrouped members at the topVlad Ureche2012-10-112-2/+4
| | |
| * | Forgotten annotation in AnnotationsVlad Ureche2012-10-111-1/+1
| | |
| * | Diagram tweakingVlad Ureche2012-10-1113-7/+29
| | | | | | | | | | | | blocked by SI-6511
| * | Grouping for reflection and macrosVlad Ureche2012-10-1124-251/+1046
| | | | | | | | | | | | and warning cleanup
| * | fixes a typoEugene Burmako2012-10-111-1/+1
| | |
| * | scala.reflect.api.Symbols documentationVlad Ureche2012-10-111-50/+330
| | | | | | | | | | | | Oh those pretty groups, u gotta luv'em...
| * | Symbols docs cleanup, mostly moved to guideingoem2012-10-111-198/+32
| | |
| * | scala.reflect.api.Position documentationVlad Ureche2012-10-113-61/+50
| | |
| * | scala.reflect.api.StandardNames documentationVlad Ureche2012-10-113-11/+27
| | |
| * | scala.reflect.api.Constants documentationVlad Ureche2012-10-112-82/+124
| | |
| * | removed docs for internal TypeCreator and TreeCreatorChristopher Vogt2012-10-112-37/+5
| | |
| * | simplified reflection docs for treesChristopher Vogt2012-10-111-216/+28
| | |
| * | Rearranged some reflection docs, moving things to the guideingoem2012-10-1111-437/+86
| | |
| * | reflection docs improvements and moves to doc pageChristopher Vogt2012-10-115-234/+23
| | |
| * | docs for reflection and macrosEugene Burmako2012-10-1140-385/+3051
| | |
* | | Merge pull request #1489 from heathermiller/issue/6453Josh Suereth2012-10-111-2/+1
|\ \ \ | |/ / |/| | SI-6453 Documentation links for @switch are broken
| * | SI-6453 Documentation links for @switch are brokenHeather Miller2012-10-101-2/+1
| | |
* | | SI-6509 Correct @template ownersVlad Ureche2012-10-112-5/+6
| | |
* | | SI-6155 Scaladoc @template diagrmsVlad Ureche2012-10-111-1/+2
| | |
* | | SI-6501 Scaladoc will correctly link to @templatedVlad Ureche2012-10-111-6/+7
| | | | | | | | | | | | members
* | | SI-6495 Scaladoc will pick up group from ownerVlad Ureche2012-10-111-9/+20
| | |
* | | SI-6487 Scaladoc can link to inner classesVlad Ureche2012-10-111-5/+2
| | |
* | | Merge pull request #1487 from dragos/issue/fix-6505Josh Suereth2012-10-112-1/+15
|\ \ \ | | | | | | | | Fixed SI-6505. Respond to ask calls by immediate failure after compiler shutdown.
| * | | Fixed SI-6505. Respond to ask calls by immediate failure even after compiler ↵Iulian Dragos2012-10-102-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | shutdown. When the compiler is asked to shutdown, it may still have items on the working queue, and more can be added by clients in other thread that don't *know* the compiler is down yet. These requests were never serviced, leading to deadlocks or timeouts. review by @odersky, @hubertp
* | | | Fix for SI-6499, regression in type inference.Paul Phillips2012-10-101-7/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I can't do any better than a reproduced comment: For some reason which is still a bit fuzzy, we must let Nothing through as a lower bound despite the fact that Nothing is always a lower bound. My current supposition is that the side-effecting type constraint accumulation mechanism depends on these subtype tests being performed to make forward progress when there are mutally recursive type vars. See pos/t6367 and pos/t6499 for the competing test cases.
* | | | Merge pull request #1486 from heathermiller/issue/6099Josh Suereth2012-10-102-56/+69
|\ \ \ \ | |_|/ / |/| | | SI-6099 - Scaladoc for scala.concurrent incomplete
| * | | SI-6099 - Scaladoc for scala.concurrent incompleteHeather Miller2012-10-102-56/+69
| | | | | | | | | | | | | | | | | | | | | | | | This is a rebase and resubmission of @phaller's pull https://github.com/scala/scala/pull/1485 With the reviewers' comments additionally addressed
* | | | Merge pull request #1488 from dotta/topic/deprecated-instrumentation-apiJosh Suereth2012-10-107-1/+11
|\ \ \ \ | |/ / / |/| | | Deprecated instrumentation API
| * | | Deprecated instrumentation APIMirco Dotta2012-10-107-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The instrumentation logic needed by the Scala IDE Worksheet is currently part of the Scala project, but it doesn't need to be. I already have a PR ready for completely removing the instrumentation logic, but I considered it too risky at this point for 2.10.0 release (an oversight can lead to the impossibility of running the worksheet with Scala 2.10.0). For the moment, I believe it's better to deprecate the whole instrumentation API in 2.10.0, and the PR for removing the instrumentation logic will target 2.10.1 or 2.11.0. Besides deprecating the instrumentation API, this commit also raised visibility of `interruptsEnabled` member in `Global`. This change alone is sufficient for moving the instrumentation logic outside of the compiler, and it is needed because the Presentation Compiler thread should never be interrupted while instrumenting a source. This commit is related to SI-6458