summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Eliminating var-like setter tpe_= on Tree.Paul Phillips2012-12-1919-102/+85
| | | | | | | | | Deprecated tpe_= on Tree, which is redundant with and less useful than setType. To provide a small layer of insulation from the direct nulling out of mutable fields used to signal the typer, added def clearType() which is merely tree.tpe = null but is shamefaced about the null and var-settings parts like a respectable method should be.
* Merge pull request #1779 from paulp/pr/no-pickle-skolemsPaul Phillips2012-12-194-2/+76
|\ | | | | Deskolemize type skolems before pickling.
| * Deskolemize type skolems before pickling.Paul Phillips2012-12-154-2/+76
|/ | | | | | | | | | | | | Lex Spoon noticed what appeared to be duplicate symbols in methods read from classfiles. The duplicates turned out to be type skolems, which because they're not supposed to be pickled in the first place (right?) are unpickled without turning back into skolems. Now pickler is careful to deskolemize before writing anything down. The effort implied by test case is more than can possibly be justified for this obscure compiler corner, but I'll chalk it up to reflection exploration.
* Merge pull request #1765 from paulp/pr/remove-detachAdriaan Moors2012-12-1488-4575/+0
|\ | | | | Removing more of that which merits removal
| * Removed some dead tests.Paul Phillips2012-12-1251-1126/+0
| | | | | | | | All attrition and no execution gives test a dull edge.
| * Removed src/detach.Paul Phillips2012-12-1237-3449/+0
| | | | | | | | | | Prying one more stowaway off the side of the train. This isn't used, hasn't been used, and won't be used.
* | Merge pull request #1679 from rtyley/nodeseq-attribute-operatorAdriaan Moors2012-12-142-0/+12
|\ \ | |/ |/| Add convenience attribute operator to NodeSeq
| * Add convenience attribute operator to NodeSeqRoberto Tyley2012-11-272-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compared to the current method of reading the string text of an attribute: (x \ "@bar").text ...the new operator removes the need for a pair of parenthesis and shortens the overall expression by 7 chars : x \@ "bar" Discussion on scala-internals: https://groups.google.com/d/topic/scala-internals/BZ-tfbebDqE/discussion
* | Merge pull request #1749 from paulp/pr/6595Paul Phillips2012-12-123-1/+20
|\ \ | | | | | | Fix for SI-6595, lost modifiers in early defs.
| * | Fix for SI-6595, lost modifiers in early defs.Paul Phillips2012-12-103-1/+20
| | | | | | | | | | | | | | | | | | | | | Saw this by accident; the trees created for early defs would wholesale replace the modifiers with PRESUPER rather than combining them. FINAL was lost that way, as would be any other modifiers which might be valid there.
* | | Merge pull request #1743 from paulp/pr/shared-treesPaul Phillips2012-12-1216-120/+119
|\ \ \ | | | | | | | | reduce sharing between trees
| * | | Normalized TRUE/FALSE trees in the pattern matcher.Paul Phillips2012-12-126-17/+12
| | | | | | | | | | | | | | | | | | | | | | | | There's no longer any need to maintain a distinction, as the tree sharing among literals which it is trying to avoid no longer takes place.
| * | | Eliminated some sources of tree sharing.Paul Phillips2012-12-123-19/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tracking shared trees led to various perpetrators, the simplest of which are addressed herein. More consideration will be required: we need to approach the problem with sufficient command to assure both that trees are only shared when safe (which might without architectural changes be "never") but also that we do not duplicate definition trees unless it is appropriate. Why do we care about tree sharing? Sometimes, a lot of the time even, you can get away with sharing trees - but that's also why it's responsible for all kinds of trouble. If the compiler would break obviously and immediately then we wouldn't be doing it. The danger of sharing is that one piece of an AST may undergo a transformation or mutation and an unrelated piece of the AST will be partially dragged into the change. The danger has become more urgent with the arrival of macros. The first step in preventing tree sharing mishaps is to reduce the amount the compiler does so whatever is left is a lot easier to see. As a happy accident, it will also fix bugs.
| * | | Cleanup in module var creation.Paul Phillips2012-12-1211-84/+84
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When all the logic in a method is for symbol creation, and then at the last minute it throws on a hastily zipped ValDef, it's really not a tree generation method, it's a symbol creation method. Eliminated redundancy and overgeneralization; marked some bits for further de-duplication. Did my best with my limited archeological skills to document what is supposed to be happening in eliminateModuleDefs.
* | | Merge pull request #1757 from paulp/merge-2.10-into-masterPaul Phillips2012-12-12151-515/+1832
|\ \ \ | | | | | | | | Merge 2.10.x into master.
| * | | Merge branch 'merge-wip-into-2.10.x' into merge-2.10-into-masterPaul Phillips2012-12-11151-515/+1832
|/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * merge-wip-into-2.10.x: (44 commits) Cleanups of reifyBoundTerm and reifyBoundType SI-5841 reification of renamed imports Share the empty LinkedList between first0/last0. SI-4922 Show default in Scaladoc for generic methods. SI-6614 Test case for fixed ArrayStack misconduct. SI-6690 Release reference to last dequeued element. SI-5789 Use the ReplTest framework in the test SI-5789 Checks in the right version of the test SI-5789 Removes assertion about implclass flag in Mixin.scala SI-6766 Makes the -Pcontinuations:enable flag a project specific preference more ListOfNil => Nil DummyTree => CannotHaveAttrs evicts assert(false) from the compiler introduces global.pendingSuperCall refactors handling of parent types unifies approaches to call analysis in TreeInfo TypeApply + Select and their type-level twins SI-6696 removes "helper" tree factory methods SI-6766 Create a continuations project in eclipse Now the test suite runs MIMA for compatibility testing. ... Conflicts: src/compiler/scala/reflect/reify/codegen/GenUtils.scala src/compiler/scala/tools/nsc/ast/Trees.scala src/compiler/scala/tools/nsc/backend/icode/GenICode.scala src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala src/compiler/scala/tools/nsc/typechecker/Contexts.scala src/compiler/scala/tools/nsc/typechecker/Namers.scala src/compiler/scala/tools/nsc/typechecker/Typers.scala src/eclipse/scala-compiler/.classpath src/eclipse/scalap/.classpath src/reflect/scala/reflect/internal/StdNames.scala src/reflect/scala/reflect/internal/TreeInfo.scala
| * | | Merge remote-tracking branch 'origin/2.10.0-wip' into merge-wip-into-2.10.xPaul Phillips2012-12-114-6/+17
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # By Eugene Burmako (1) and others # Via Adriaan Moors (2) and others * origin/2.10.0-wip: Fixing OSGi distribution. Fix for rangepos crasher. SI-6685 fixes error handling in typedApply
| * \ \ \ Merge pull request #1752 from scalamacros/ticket/5841Adriaan Moors2012-12-1116-55/+203
| |\ \ \ \ | | | | | | | | | | | | Ticket/5841
| | * | | | Cleanups of reifyBoundTerm and reifyBoundTypeAndriy Polishchuk2012-12-111-62/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cases in reifyBoundTerm are merged by constructors; conditions in reifyBoundType are linearized; also, in latter, or-patterns are used to merge some cases; and some minor stuff not worth mentioning.
| | * | | | SI-5841 reification of renamed importsAndriy Polishchuk2012-12-1116-0/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reification of renamed imports is done by catching Selects with name != their tree.symbol.name, replacing this name with tree.symbol.name, and then doing reifyProduct in case of renamed terms and reifyBoundType (inner) in case of renamed types.
| * | | | | Merge pull request #1701 from retronym/ticket/5877Adriaan Moors2012-12-104-3/+50
| |\ \ \ \ \ | | | | | | | | | | | | | | SI-5877 Support implicit classes in package objects
| | * | | | | SI-5877 Tweak the check for package object owner.Jason Zaugg2012-12-041-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reuses existing function `isInPackageObject` and reads better.
| | * | | | | SI-5877 Support implicit classes in package objectsJason Zaugg2012-12-043-1/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This used to crash, as both the package and the package object had the synthetic method in `decls`, and the typer tried to add the tree to both places. Now, synthetics in the package object are excluded from the pacakge itself.
| | * | | | | Adds debug logging for synthetic registration.Jason Zaugg2012-12-041-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Investigatory tools for SI-5877
| * | | | | | Merge pull request #1691 from retronym/ticket/6558Adriaan Moors2012-12-105-1/+64
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-6558: typecheck lazy annotation info using non-silent context
| | * | | | | | Split test case to workaround incomplete error report.Jason Zaugg2012-12-034-3/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reporting some errors prevents reporting others. This residual issue had been lodged as SI-6758.
| | * | | | | | SI-6558 Expand test case for annotation typosJason Zaugg2012-12-022-5/+26
| | | | | | | |
| | * | | | | | Fixes SI-6558: typecheck lazy annotation info using non-silent context.Hubert Plociniczak2012-12-023-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make context for typing lazy annotations always non-silent. If lazy annotation info was created in local (silent) context, error could go unnoticed because later they would still use silent typer for typing the annotation.
| * | | | | | | Merge pull request #1744 from retronym/ticket/4922Adriaan Moors2012-12-103-1/+43
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI-4922 Show default in Scaladoc for generic methods.
| | * | | | | | | SI-4922 Show default in Scaladoc for generic methods.Jason Zaugg2012-12-103-1/+43
| | | |_|/ / / / | | |/| | | | | | | | | | | | | | | | | | | | | We must account for cloned symbols.
| * | | | | | | Merge pull request #1733 from retronym/ticket/6614Adriaan Moors2012-12-102-0/+19
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI-6614 Test case for fixed ArrayStack misconduct.
| | * | | | | | | SI-6614 Test case for fixed ArrayStack misconduct.Jason Zaugg2012-12-082-0/+19
| | |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not sure when it was fixed, but in 2.9.2 things were messed up: scala> (for (i <- 0 to 10) yield { val in = ArrayStack.tabulate(i)(_.toString); (in, (in filter (_ => true)) == in) }).mkString("\n") res14: String = (ArrayStack(),true) (ArrayStack(0),true) (ArrayStack(0, 1),true) (ArrayStack(1, 2, null),false) (ArrayStack(0, 1, 2, 3),true) (ArrayStack(3, 4, null, null, null),false) (ArrayStack(2, 3, 4, 5, null, null),false) (ArrayStack(1, 2, 3, 4, 5, 6, null),false) (ArrayStack(0, 1, 2, 3, 4, 5, 6, 7),true) (ArrayStack(7, 8, null, null, null, null, null, null, null),false) (ArrayStack(6, 7, 8, 9, null, null, null, null, null, null),false)
| * | | | | | | Merge pull request #1732 from retronym/ticket/6690Adriaan Moors2012-12-103-16/+84
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI-6690 Release reference to last dequeued element.
| | * | | | | | | Share the empty LinkedList between first0/last0.Jason Zaugg2012-12-102-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is in line with the existing implementation of `MutableList#clear`, and in line with an newly created empty collection.
| | * | | | | | | SI-6690 Release reference to last dequeued element.Jason Zaugg2012-12-083-16/+84
| | | |_|/ / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoids leaks in MutableList and its more better known child, mutable.Queue, when the last element is dequeued or when we take the tail of a one element collection. Refactors copy/pasted code between the two implementations of tail.
| * | | | | | | Merge pull request #1729 from JamesIry/SI-5789-2_2.10.xAdriaan Moors2012-12-103-2/+29
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI-5789 Removes assertion about implclass flag in Mixin.scala
| | * | | | | | | SI-5789 Use the ReplTest framework in the testJames Iry2012-12-072-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't check for the crashed message, just dump the output from the REPL. Use the ReplTest framework to the make the test clean
| | * | | | | | | SI-5789 Checks in the right version of the testJames Iry2012-12-071-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In my other commit I had a version of the test that didn't actually reproduce the problem because it didn't set the optimize flag
| | * | | | | | | SI-5789 Removes assertion about implclass flag in Mixin.scalaJames Iry2012-12-073-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The assertion that the class being mixed from should be an implclass seems reasonable, but the flag isn't always set. In order to stop the bleeding this fix turns the assertion into a debug warning. Issue SI-6782 will track figuring out the root cause of the missing flag.
| * | | | | | | | Merge pull request #1713 from retronym/ticket/5894Adriaan Moors2012-12-104-155/+116
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-5894 Don't emit static forwarders for macros.
| | * | | | | | | | SI-5894 Don't emit static forwarders for macros.Jason Zaugg2012-12-052-1/+18
| | | | | | | | | |
| | * | | | | | | | Remove some low-hanging duplication beween GenJVM / GenASM.Jason Zaugg2012-12-053-155/+99
| | | |/ / / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactoring of the the zero-risk variety. The extraction of `ExcludedForwarderFlags` is the motivation here; we'll need that next commit to fix SI-5894.
| * | | | | | | | Merge pull request #1711 from retronym/ticket/1672Adriaan Moors2012-12-105-1/+115
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-1672 Catches are in tail position without finally.
| | * | | | | | | | Addtional test cases for tail calls in catches.Jason Zaugg2012-12-053-1/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Includes a run test to check bytecode verifies and behaves - Show this isn't possible when try is used as an expression, and a `liftedTree` local method is needed.
| | * | | | | | | | SI-1672 Catches are in tail position without finally.Jason Zaugg2012-12-054-1/+73
| | |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | So we can eliminate tail calls within.
| * | | | | | | | Merge pull request #1705 from paulp/warn-case-collisionAdriaan Moors2012-12-104-1/+30
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Warn when generated classfiles differ only in case.
| | * | | | | | | | Warn when generated classfiles differ only in case.Paul Phillips2012-12-054-1/+30
| | |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We should most likely prohibit it completely, but warning is a start.
| * | | | | | | | Merge pull request #1700 from retronym/ticket/6535Adriaan Moors2012-12-104-2/+27
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-6535 Step back from the precipice of a cycle
| | * | | | | | | | SI-6535 Step back from the precipice of a cycleJason Zaugg2012-12-044-2/+27
| | |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding any non-local parent to WrapAsScala will trigger a valid cyclic reference error. By moving the import of `Wrapper._` inside `WrapAsScala` and `WrapAsJava`, it is not in scope when typing the parents of those, and we avoid the cycle. Adds a test case to show the essense of the promiscious mutual imports that triggers this.
| * | | | | | | | Merge pull request #1699 from retronym/ticket/6549Adriaan Moors2012-12-103-3/+56
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-6549 Improve escaping in REPL codegen.