summaryrefslogtreecommitdiff
path: root/test/junit
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #3566 from adriaanm/t6455Grzegorz Kossakowski2014-02-251-0/+35
|\ | | | | SI-6455 no longer rewrite .withFilter to .filter
| * SI-6455 util.Try supports withFilterAdriaan Moors2014-02-241-0/+35
| |
* | PrintersTest commentedVladimirNik2014-02-201-1151/+809
| |
* | printOwners support added to Printers; whitespaces removedVladimirNik2014-02-201-155/+155
| |
* | lazy vals printing fixed for typechecked treesVladimirNik2014-02-201-1/+24
| |
* | printers flag processing improvements: printRootPkg flag fixed, comments to ↵VladimirNik2014-02-201-2/+7
| | | | | | | | flags metadata printing added
* | Attributed val/var processing for syntactics (SI-8180)VladimirNik2014-02-201-820/+1134
|/ | | | | | TypedTreesPrinter added changes based on pull request comments: print root packages flag; tests for syntactics; SyntacticEmptyTypeTree added to Printers
* Merge pull request #3452 from xeno-by/topic/palladium0Jason Zaugg2014-02-193-836/+850
|\ | | | | SI-8063 and its seventy friends
| * Merge remote-tracking branch 'origin/master' into topic/palladium0Eugene Burmako2014-02-161-0/+7
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: src/compiler/scala/reflect/macros/compiler/Resolvers.scala src/compiler/scala/reflect/macros/contexts/Typers.scala src/compiler/scala/tools/reflect/ToolBoxFactory.scala src/reflect/scala/reflect/api/BuildUtils.scala
| * | establishes scala.reflect.api#internalEugene Burmako2014-02-142-836/+844
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reflection API exhibits a tension inherent to experimental things: on the one hand we want it to grow into a beautiful and robust API, but on the other hand we have to deal with immaturity of underlying mechanisms by providing not very pretty solutions to enable important use cases. In Scala 2.10, which was our first stab at reflection API, we didn't have a systematic approach to dealing with this tension, sometimes exposing too much of internals (e.g. Symbol.deSkolemize) and sometimes exposing too little (e.g. there's still no facility to change owners, to do typing transformations, etc). This resulted in certain confusion with some internal APIs living among public ones, scaring the newcomers, and some internal APIs only available via casting, which requires intimate knowledge of the compiler and breaks compatibility guarantees. This led to creation of the `internal` API module for the reflection API, which provides advanced APIs necessary for macros that push boundaries of the state of the art, clearly demarcating them from the more or less straightforward rest and providing compatibility guarantees on par with the rest of the reflection API. This commit does break source compatibility with reflection API in 2.10, but the next commit is going to introduce a strategy of dealing with that.
| * | Merge remote-tracking branch 'origin/master' into topic/palladium0Eugene Burmako2014-02-141-1/+18
| |\ \
| * | | additional class tags for reflection APIEugene Burmako2014-02-141-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduces a test that iterates all abstract types in reflection API and makes sure that every one of them has an associated class tag. After being introduced, the test has immediately failed exposing the lack of tags for TreeCopier, Mirror and RuntimeClass, which has been subsequently fixed in this commit.
* | | | Group settings should honor user-set individual optionsJason Zaugg2014-02-171-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the last commit, we added the ability to explicitly disable boolean settings form the command line. This commit changes group settings (like -optimize), to leave them alone if set explicitly. Examples: `scalac -Xlint -Ywarn-unused:false -optimize -Yinline:false` The mechanism for such settings has also been refactored to `MutableSettings`, to let use reuse this for `-Xlint`.
* | | | Expose a means to disable boolean settingsJason Zaugg2014-02-171-0/+28
| |_|/ |/| | | | | | | | | | | | | | Enables `-Yboolean-setting:{true,false}`. This will be exploited in the next commit to enable one to turn off a single component of a group setting, such as `-Xlint` or `-optimize`.
* | | SI-8264 scala.collection.immutable.HashSet#- returns broken SetRex Kerr2014-02-141-0/+7
| |/ |/| | | | | | | | | Was an error in HashSet's handling of removal of an element when a HashTrieSet should turn into a HashSet1. Also slightly modified HashMap's filter0 to more closely match HashSet (by adding the same comment).
* | Merge pull request #3437 from Ichoran/issue/6736Adriaan Moors2014-02-121-1/+18
|\ \ | |/ |/| SI-6736 Range.contains is wrong
| * Reasonable Range operations consistently work when overfull.Rex Kerr2014-02-091-3/+15
| | | | | | | | | | | | Operations are reasonable when they don't require indexing or conversion into a collection. These include head, tail, init, last, drop, take, dropWhile, takeWhile, dropRight, takeRight, span. Tests added also to verify the new behavior.
| * SI-6736 Range.contains is wrongRex Kerr2014-02-091-1/+6
| | | | | | | | Removed once-used private method that was calculating ranges in error and corrected the contains method (plus improved performance).
* | Merge pull request #3409 from xeno-by/ticket/6411Jason Zaugg2014-02-101-0/+1
|\ \ | | | | | | SI-6411 SI-7328 value class fixes for runtime reflection
| * | SI-6411 reflection is now aware of posterasureEugene Burmako2014-01-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `transformedType` method, which is used to bring Scala types to Java world, was written in pre-valueclass times. Therefore, this method only called transforms from erasure, uncurry and refChecks. Now runtime reflection becomes aware of posterasure and as a consequence methods, which have value classes in their signatures, can be called without having to wrap them in catch-a-crash clause. Another facet to this fix was the realization that value classes need to be unwrapped, e.g. C(2) needs to be transformed to just 2, when they are used naked in method signatures (i.e. `c` in `def foo(c: C)` needs to be unwrapped, whereas `cs: List[C]`, `cs: C*` and even `cs: Array[C]` do not).
* | | SI-8154 AnyRefMap iterates its way to ((null, null))Rex Kerr2014-02-091-1/+20
| |/ |/| | | | | | | | | Changed logic to prevent mutation between hasNext and next from delivering invalid results. Also fixed superscripts in scaladoc.
* | SI-8213 AnyRefMap.getOrElseUpdate is faultyRex Kerr2014-01-301-0/+12
| | | | | | | | | | | | Altered getOrElseUpdate to be robust to the map changing out from under it as a result of calling the default value method. Side-effects FTW! Made a comparable change in LongMap also, as it was also affected. And added a test to SetMapConsistencyTest.
* | SI-8205 Don't include CR in lineSom Snytt2014-01-291-0/+22
| | | | | | | | | | | | | | | | | | | | | | More penance. Extend the unit test and don't include CR in the line text. This is obvious, which shows how dangerous it is to refactor without unit tests. My very favorite bugs are off-by-one and EOL handling, followed closely by off-by-Int.MaxValue.
* | SI-8205 Avoid long, slow march to AIIOBE in SourceFile#lineContentJason Zaugg2014-01-291-0/+33
|/ | | | | | | | | | | | | | | | | | Fixing a regression from SI-8015. The failure mode is kind of amusing: a while loop in `lineToString` would count all the way to `Int.MaxValue`, and integer overflow would foil a bounds check when looking for the 'LF' in 'CR'-'LF'. Given that we're not a style checker to enforce that source files end in a new-line, this commit accounts for EOF, and fixed the overflow problem too. A JUnit test exercises the bug and a few other variations of `lineContent`. While i was in the neighbourhood, I opted for a more efficient means to slice out that line.
* Problem with EOL in tests for Printers is fixedVladimirNik2014-01-171-2/+7
|
* SI-4370 Range bug: Wrong result for Long.MinValue to Long.MaxValue by ↵Rex Kerr2014-01-151-0/+123
| | | | | | | | | | | | | | Int.MaxValue Fixed by rewriting the entire logic for the count method. This is necessary because the old code was making all kinds of assumptions about what numbers were, but the interface is completely generic. Those assumptions still made have been explicitly specified. Note that you have to make some or you end up doing a binary search, which is not exactly fast. The existing routine is 10-20% slower than the old (broken) one in the worst cases. This seems close enough to me to not bother special-casing Long and BigInt, though I note that this could be done for improved performance. Note that ranges that end up in Int ranges defer to Range for count. We can't assume that one is the smallest increment, so both endpoints and the step need to be Int. A new JUnit test has been added to verify that the test works. It secretly contains an alternate BigInt implementation, but that is a lot slower (>5x) than Long.
* Merge pull request #3316 from Ichoran/topic/big-decimal-correctnessAdriaan Moors2014-01-151-0/+225
|\ | | | | Quasi-comprehensive BigDecimal soundness/correctness fix.
| * Quasi-comprehensive BigDecimal soundness/correctness fix.Rex Kerr2014-01-141-0/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes issues SI-6153, SI-6173, SI-6456, SI-6699, and SI-8116, along with a number of other similar possible issues. Relevant changes include * Changes to avoid heap explosion when working with BigInt - to isWhole - to hashCode - to equals - to BigInt's equals * Changes to enable equality matching hashCode - Only for sufficiently small BigInt - For identical values with different precision * Changes to isValidDouble - Takes precision into account now - New methods added to test whether even if the Double is not represented exactly, it's a representation of a certain type - New companion methods added to allow intended expansion of Double (binary/decimal difference) * Changes to constructor - Null arguments are not allowed (these can throw NPEs later at awkward/unexpected times) * New JUnit test to test all these things * Fixed existing tests to expect new behavior * Modified scaladocs to explain the issues * Deprecated problematic methods * Made application of MathContext more consistent (it is where you expect it and not where you don't) These changes are coordinated, for the most part, hence the monolithic commit.
* | Merge pull request #3321 from VladimirNik/sprinterJason Zaugg2014-01-151-0/+815
|\ \ | |/ |/| Add tree-based code generation
| * toCode renamed to showCodeVladimirNik2014-01-131-2/+2
| |
| * Annotated trees processing is modifiedVladimirNik2014-01-071-0/+29
| | | | | | | | | | 1. Problem with multiple parameter lists in annotations is resolved 2. Tests for Annotated trees are added
| * Tests for ParsedTreePrinterVladimirNik2014-01-051-0/+786
| |
* | SI-6615 junit testAdriaan Moors2014-01-131-0/+16
| |
* | Merge pull request #3325 from clhodapp/fix/double.absJason Zaugg2014-01-081-0/+18
|\ \ | | | | | | Fix (postfix abs for -0.0)
| * | SI-8102 -0.0.abs must equal 0.0clhodapp2014-01-061-0/+18
| |/ | | | | | | | | | | SI-8102 points out that -0.0.abs returns -0.0 (in error). The same issue exists for -0.0f. This commit fixes the issue for both by delegating to math.abs.
* | Merge pull request #3306 from Ichoran/topic/junit-set-mapJason Zaugg2014-01-081-0/+479
|\ \ | | | | | | Improved testing framework for sets and maps.
| * | Improved testing framework for sets and maps.Rex Kerr2013-12-261-0/+479
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Switched to JUnit testing framework for sets and maps. They now test broadly against each other for consistency. Tests for mutable.AnyRefMap and mutable.LongMap are folded in here (originals removed). There is still lots of redundancy with other tests that has not been removed. This framework is also designed to enable more robust testing of changes to implementations of sets and maps; although it's still quite possible to get a broken implementation through, these tests should make it harder to get the fundamentals wrong.
* | | SI-7837 quickSort, along with Ordering[K], may result in stackoverflow ↵Rex Kerr2013-12-311-0/+29
| |/ |/| | | | | | | | | | | | | because the code uses '==' instead of 'equiv' == instead of equiv (from Ordering) was used by mistake. Fixed. Also created a test to make sure that == is not used by throwing an exception if it is (as suggested by Jason).
* | makes well-known packages and package classes consistent with each otherEugene Burmako2013-12-291-0/+18
|/ | | | | | As discovered in https://groups.google.com/forum/#!topic/scala-user/RckXE90LoXo, RootClass.sourceModule and EmptyPackageClass.sourceModule used to incorrectly return NoSymbol instead of RootModule and EmptyPackage. This is now fixed.
* Merge pull request #3218 from som-snytt/issue/8027-repl-dbltabJason Zaugg2013-12-121-0/+52
|\ | | | | SI-8027 REPL double tab regression
| * SI-8027 REPL double tab regressionSom Snytt2013-12-031-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Where did double tab go? "The shadow knows." The regression was introduced by the last flurry before we were left to wallow in whatever white space remained. Some xs put other xs under erasure. It's clear that somebody's daughter walked into the room and asked for a story, because, shockingly, the case arrows don't line up. We need a plug-in for Jenkins, or I guess Travis, to fail the build if arrows and equals don't align, because it clearly indicates a lapse of some kind.
* | add method dequeueOption to immutable.QueueThomas Geier2013-12-051-0/+28
| | | | | | | | | | | | This allows immutable.Queue to be used conveniently in functional code. Method is in the spirit of `headOption` on seqs or `get` on maps. Also adds a unit test for immutable.Queue.
* | Fixes SI-8014, regression in Vector ++ TraversableOnce.Rex Kerr2013-12-021-0/+51
|/ | | | | Now uses the cached copy instead of the exhausted iterator. Adds a JUnit test for ++.
* SI-8022 Backwards compatibility for Regex#unapplySeqJason Zaugg2013-12-011-0/+30
| | | | | | | | | | | | | | | The change in ce1bbfe / SI-6406 introduced overloads of `unapplySeq` with wider static and dynmaic result types than the now-deprecated alternative that accepted `Any`. This is subtly source incompatible and the change was noticed in Specs2. This commit uses `List` as the static and runtime type for the new overloads. For consistency, the same is done for the new method added in SI-7737 / 93e9623.
* Merge pull request #3147 from som-snytt/issue/repl-columnsAdriaan Moors2013-11-251-0/+85
|\ | | | | SI-7969 REPL -C columnar output
| * SI-7969 REPL variable columnar outputSom Snytt2013-11-181-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend column formatting to make columns only as wide as their widest element. This is similar to what `ls` does. Given the longest and shortest string, which bound the min and max column count, compute the layout for those possible column counts, and choose the minimal row count and minimal column count. The junit test is under pending because it uses expecty. (Edit: updated without expectytations.) Example that really benefits, witness the skinny columns: ``` scala> math. BigDecimal PartiallyOrdered cosh rint BigInt Pi exp round E ScalaNumber expm1 signum Equiv ScalaNumericAnyConversions floor sin Fractional ScalaNumericConversions hypot sinh IEEEremainder abs log sqrt Integral acos log10 tan LowPriorityEquiv asin log1p tanh LowPriorityOrderingImplicits atan max toDegrees Numeric atan2 min toRadians Ordered cbrt package ulp Ordering ceil pow PartialOrdering cos random ``` more
| * SI-7969 Refactor to trait with testSom Snytt2013-11-151-0/+41
| | | | | | | | Make REPL classes testable in junit. Test the Tabulator.
* | refactor out fresh name prefix extraction logicDen Shabalin2013-11-171-0/+47
|/ | | | | | | | | | | 1. refactor out FreshNameExtractor out of Quasiquotes cake into SymbolTable (can’t put it outside due to the fact that names are path-dependent) 2. add optional parameter to the fresh name creator to cover additional qq$ prefix needed for quasiquotes 3. add unit tests
* SI-7568 Adding PriorityQueueTestrjfwhite2013-11-111-0/+32
|
* Merge pull request #3006 from ivmaykov/masterAdriaan Moors2013-10-241-0/+49
|\ | | | | SI-7883 - don't iterate over all keys in MapWrapper.containsKey()