summaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | Merge pull request #1167 from Blaisorblade/topic/stream-const-spaceGrzegorz Kossakowski2012-08-221-0/+44
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | Make Stream.withFilter.{map,flatMap} run in constant stack space
| * | | | | Also check that Stream.toSeq gives the right result.Paolo Giarrusso2012-08-221-1/+3
| | | | | |
| * | | | | Improve test for Stream.withFilter.{map,flatMap}Paolo Giarrusso2012-08-221-10/+40
| | | | | | | | | | | | | | | | | | | | | | | | Test a wider range of functionality.
| * | | | | Cleanup testcasePaolo Giarrusso2012-08-202-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No need to check the output - checking programmatically that the produced streams are empty is enough.
| * | | | | Make Stream.withFilter.{map,flatMap} run in constant stack spacePaolo Giarrusso2012-08-202-0/+16
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The included test currently fails because `map` and `flatMap` do not run in constant stack space on a stream returned by `Stream.withFilter`, as I reported here: https://groups.google.com/d/msg/scala-language/WqJR38REXnk/saaSiDdmyqoJ Fix the problem and add a simple testcase. Note that the stack space consumed when producing an element of this stream is proportional to the number of elements failing the test before the next success. The stack space consumed to produce the stream itself is the space needed to produce the first element, that is, is proportional to the number of failures before the first success.
* | | | | Merge pull request #1176 from scalamacros/topic/nondeterministicPaul Phillips2012-08-214-36/+2
|\ \ \ \ \ | | | | | | | | | | | | fixes non-determinism in reflection-sorted-decls
| * | | | | fixes non-determinism in reflection-sorted-declsEugene Burmako2012-08-214-36/+2
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ordering of synthetic members on java7 with a lot of cores is non-deterministic that's not a problem, because the doc doesn't promise anything about synthetics hence I've adjusted the test, so that it no longer includes accessors discussion: http://groups.google.com/group/scala-internals/msg/087a7d4805313561
* / | | | Fix for SI-6264, crash in checkCheckable.Paul Phillips2012-08-213-0/+11
|/ / / / | | | | | | | | | | | | | | | | The classic fail of assuming you will only receive a specific subclass of Type.
* | | | Merge pull request #1165 from jsuereth/fix/try-catch-libsJosh Suereth2012-08-202-0/+18
|\ \ \ \ | |_|/ / |/| | | Fix/try catch libs
| * | | Adding test for try-catch library unification.Josh Suereth2012-08-202-0/+18
| |/ /
* / / Compilespeed improvements: Exists arguments and othersMartin Odersky2012-08-201-0/+26
|/ / | | | | | | | | | | | | | | | | | | | | | | It turns out that exists is not inlinable, even if put into List. We try to eliminate or hoist most closures passed to exists in Types. There are some other small improvements as well. -- (@gkossakowski): This commit contains also a fix to crasher prepared by @paulp. I squashed that commit and kept the test-case that came with it.
* | Merge pull request #1159 from scalamacros/topic/cleanupJosh Suereth2012-08-198-0/+18
|\ \ | | | | | | even more cleanup in Macros.scala
| * | cleanup for macroExpandEugene Burmako2012-08-188-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Error reporting is moved to ContextErrors to disentangle stuff in Macros.scala. With logics and error reporting intertwined it was an awful mess. Exceptions are used for the same reason. Instead of threading failures through the code polluting it with options/ifs, I outline the success path. It worked much better for typedMacroBody, but I'm also happy with the resulting code of macroExpand. To me a major factor towards applicability of exceptions was that they are short-lived and that there might be max one error per domain, after which we unconditionally bail.
* | | Merge pull request #1162 from paulp/aug19-scala-graphPaul Phillips2012-08-182-0/+6
|\ \ \ | | | | | | | | Fix for community build blocker.
| * | | Fix for community build blocker.Paul Phillips2012-08-182-0/+6
| |/ / | | | | | | | | | | | | | | | | | | | | | As two character bugfixes go, this was a doozy. I will forego elaborating at length and offer generic instructions for elucidation: % git log --grep=tpeHK
* / / SI-5788 correct test and symbol updateVlad Ureche2012-08-191-3/+2
|/ / | | | | | | | | | | Previously I thought it's fixed because I didn't include the correct testcase. Now it's the correct testcase and this prompted me to change the code a bit to make it work properly.
* | Merge pull request #1151 from scalamacros/topic/cleanupEugene Burmako2012-08-1718-20/+45
|\ \ | | | | | | more cleanup in Macros.scala
| * | more cleanup for typedMacroBodyEugene Burmako2012-08-1714-11/+36
| | |
| * | shaves more than 150 lines off typedMacroBodyEugene Burmako2012-08-174-9/+9
| |/
* | Fixes SI-6236.Aleksandar Prokopec2012-08-174-2/+32
| | | | | | | | | | | | | | In separate compilation runs, the static field symbol in the companion class of an object was not being recreated. Given that the singleton object was compiled separately, the static field symbol will be recreated on demand.
* | Fixes SI-6189.Aleksandar Prokopec2012-08-173-0/+60
| | | | | | | | | | | | | | | | Disable @static for the REPL code. The problem is that there are no companion classes generated for objects that contain the top-level declarations in the REPL. When there is no companion class, the selecting a @static field will translate to a getter call, instead of to a field load.
* | Merge pull request #1093 from jsuereth/fix/SI-6208-2.10.xPaul Phillips2012-08-161-0/+4
|\ \ | |/ |/| Fix SI-6208. mutable.Queue now returns mutable.Queue for collection met...
| * Fix SI-6208. mutable.Queue now returns mutable.Queue for collection methods ↵Josh Suereth2012-08-081-0/+4
| | | | | | | | rather than MutableList.
* | Merge pull request #1141 from VladUreche/issue/asmVlad Ureche2012-08-163-0/+34
|\ \ | | | | | | Fixes backend crash due to incorrect consumedTypes
| * | Fixes backend crash due to incorrect consumedTypesVlad Ureche2012-08-153-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This started out as a compiler crash after Greg copied the comprehension methods to List and made them final. The culprit was the dead code elimination phase, which after sweeping pieces of code was unable to restore the stack to its original state, thus causing the ASM backend to crash notifying the resulting bytecode is incorrect. The dead code elimination phase uses the icode Instructions' consumedTypes to determine what needs to be dropped from the stack when an instruction is eliminated, but the consumedTypes were only defined for a handful of instructions. So dce encountered a DUP instruction for which it did not have consumedTypes defined and did not restore the stack correctly. The consumedTypes/producedTypes for icode instructions are redundantly defined in 3 separate places: - Opcodes.scala (consumedTypes/producedTypes) - ICodeCheckers.scala (for checking icode) - TypeFlowAnalysis.scala (for computing types on the stack at each program point) Since the Opcodes types are the only ones visible outside, I suggest we use them in ICodeCheckers.scala and TypeFlowAnalysis.scala too. But we should make such changes after the release, as we're chilling out by the lake with a glass of good wine: SI-6234 The relevant discussion around it can be found at: https://groups.google.com/forum/?fromgroups#!topic/scala-internals/qcyTjk8euUI[1-25] Many thanks to Paul for his help! Review by @magarciaEPFL or @paulp.
* | | macroImplSigs => macroImplSigEugene Burmako2012-08-151-0/+1
| | | | | | | | | | | | | | | We no longer have multiple canonical signatures for macro implementations, so it was time to put the List-List-List-based logic to rest.
* | | cleanup of reflection- and macro-related stuffEugene Burmako2012-08-156-0/+6
|/ / | | | | | | | | | | mostly removes [Eugene] marks that I left back then and reviews related code some of those tokens got left in place, because I don't know to how fix them without imposing risks on 2.10.0
* | Add Scaladoc flag to specify hidden implicit conversionsingoem2012-08-141-1/+1
| |
* | Merge pull request #1101 from scalamacros/ticket/5940Josh Suereth2012-08-145-0/+58
|\ \ | | | | | | SI-5940 impls are no longer in macro def pickles
| * | macro implementations must be publicEugene Burmako2012-08-134-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The immediate motivator for this change was the desire to keep things simple during macro expansion. Here's the story. When you expand a macro, you need to reflectively load a macro implementation method and invoke it. However private methods in Scala can sometime have their names mangled, so the reflector has to check multiple variants of the same name (the normal one and the mangled one). The problem is that since the previous commit we don't have an access to a symbol of the macro impl, hence we cannot just use `impl.expandedName` like we did before. Sure I could duplicate the logic of expandedName, but I have a better suggestion. Let's prohibit non-public macro implementations. This doesn't seem to hurt, and it lets us avoid extra bit of complexity in Macros.scala. If this measure turns out to be a hassle during the trial period of macros, non-public macros can always be allowed. In fact, we can even have this feature back for free when we migrate from Java reflection to Scala reflection for invoking macro implementations (because Scala reflection knows how to account for mangled private names). But that's the 2.10.x business.
| * | SI-5940 impls are no longer in macro def picklesEugene Burmako2012-08-131-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The first officially released version of macros persisted macro def -> impl bindings across compilation runs using a neat trick. The right-hand side of macro definition (which contains a reference to an impl) was typechecked and then put verbatim into an annotation on macro definition. This solution is very simple, but unfortunately it's also lacking. If we use it then signatures of macro defs become transitively dependent on scala-reflect.jar (because they refer to macro impls, and macro impls refer to scala.reflect.macros.Context defined in scala-reflect.jar). More details can be found in https://issues.scala-lang.org/browse/SI-5940. Therefore we have to avoid putting macro impls into binding pickles and come up with our own serialization format. Situation is further complicated by the fact that it's not enough to just pickle impl's class and method names, because macro expansion needs knowledge about the shape of impl's signature (which we can't pickle). Hence we precompute necessary stuff (e.g. the layout of type parameters) when compiling macro defs.
* | | Merge pull request #1130 from non/si6223-2.10.xJosh Suereth2012-08-132-0/+15
|\ \ \ | | | | | | | | Move side-effecting call out of debuglog(). Fixes SI-6223.
| * | | Move side-effecting call out of debuglog(). Fixes SI-6223.Erik Osheim2012-08-132-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change fixes a situation in which method calls aren't being properly specialized. All the existing tests pass; in addition, it likely fixes other specialization bugs (and improves performance of specialized code). Also includes a small regression test.
* | | | Merge pull request #1100 from adriaanm/ticket-6022bJosh Suereth2012-08-131-0/+20
|\ \ \ \ | |/ / / |/| | | SI-6022 cleaner model of variable equality modulo <:
| * | | SI-6022 cleaner model of variable equality modulo <:Adriaan Moors2012-08-091-0/+20
| |/ / | | | | | | | | | | | | | | | | | | a more conservative "excludes": no need to reason about types (TODO: check we don't get any spurious unreachability errors in the eclipse build, which is a good canary for this kind of thing)
* | | Merge pull request #1125 from hubertp/2.10.x-issue/6214Josh Suereth2012-08-132-0/+11
|\ \ \ | | | | | | | | Fixes SI-6214.
| * | | Fixes SI-6214.Hubert Plociniczak2012-08-122-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | addSynthetics was calling typedStat that caused flushing error buffer. Typically that would result in errors being re-added but addSynthetics was the last thing to run in typedStats. Instead of adding yet another check I used this as an opportunity to cleanup the once necessary workaround for typing stats. Since we are now chaining buffers of contexts manual handling is no longer necessary. Review by @odersky (I recall that you were planning to cleanup that part at some point).
* | | | Merge pull request #1123 from paulp/topic/unpickle-resilience-2Josh Suereth2012-08-131-2/+3
|\ \ \ \ | | | | | | | | | | Topic/unpickle resilience 2
| * | | | More resilience to missing classes.Paul Phillips2012-08-111-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The situation (I don't know how to make partest test this) is package s class A ; class S { def f(): A = ??? } If one compiles this and removes A.class, should references to class S cause the compiler to explode eagerly and fail to load S, or explode lazily if and when it needs to know something about A? This patch takes us from the former strategy to the latter. Review by @xeno-by.
* | | | | Merge pull request #1120 from paulp/ticket-6184-revisedJosh Suereth2012-08-111-0/+7
|\ \ \ \ \ | |/ / / / |/| | | | Ticket 6184 revised
| * | | | SI-6184 don't introduce dummies in checkableTypeAdriaan Moors2012-08-091-0/+7
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | this should fix the crash in asSeenFrom that resulted from calling baseTypeSeq on a type that had an unbound type parameter in it also, simplify widenToClass
* | | | Merge pull request #1118 from scalamacros/ticket/6201Josh Suereth2012-08-111-0/+13
|\ \ \ \ | | | | | | | | | | SI-6201 minor fixes in key points
| * | | | SI-6201 minor fixes in key pointsEugene Burmako2012-08-111-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes several oversights that led to 6201. RootPackage should have been static, refactored implementation of hasSymbolWhich shouldn't have checked hasSymbol. Full discussion is here: http://groups.google.com/group/scala-internals/browse_thread/thread/9500348f273a8aa.
* | | | | Merge pull request #1105 from rklaehn/SI-6197Josh Suereth2012-08-112-0/+21
|\ \ \ \ \ | | | | | | | | | | | | Only create a HashTrieSet if necessary.
| * | | | | Added test to check that removing all but one element from a HashTrieSet ↵Ruediger Klaehn2012-08-112-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | yields a HashSet1 as it should
* | | | | | Merge pull request #1097 from rklaehn/SI-6198Josh Suereth2012-08-112-0/+24
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Si 6198
| * | | | | Added test for SI-6198Ruediger Klaehn2012-08-112-0/+24
| |/ / / / | | | | | | | | | | | | | | | This tests that ListSet.tail is O(1) as well as testing that a HashSetCollision1 is turned back into a HashSet1 when removing all but one element
* | | | | Merge pull request #1091 from paulp/topic/patmat-error-messagesJosh Suereth2012-08-108-12/+84
|\ \ \ \ \ | | | | | | | | | | | | Better pattern matcher error message.
| * | | | | Better pattern matcher error message.Paul Phillips2012-08-088-12/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the common case when someone hasn't quite grokked the significance of lower case in a pattern match. I'd like to make all the unreachables errors, not warnings, but there may be a bug or two to clear out first. class A { def badEquals(x: Any, y: Any) = x match { case y => true case _ => false } } a.scala:3: warning: patterns after a variable pattern cannot match (SLS 8.1.1) If you intended to match against parameter y of method badEquals, you must use backticks, like: case `y` => case y => true ^ a.scala:4: warning: unreachable code due to variable pattern 'y' on line 3 case _ => false ^ two warnings found
* | | | | | Merge pull request #1094 from scalamacros/ticket/6204Adriaan Moors2012-08-093-0/+25
|\ \ \ \ \ \ | | | | | | | | | | | | | | fixes to existential-related reification problems