summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAntonio Cunei <antonio.cunei@epfl.ch>2011-04-11 09:05:45 +0000
committerAntonio Cunei <antonio.cunei@epfl.ch>2011-04-11 09:05:45 +0000
commit825f3691fae26d3cc54dc04b4a559d197c46f780 (patch)
tree85ec520f743d57148ca2bd9b5c777832e4281e1e /test
parent74a967da857ead23ec5d976c6616ac98fb7c33ef (diff)
downloadscala-825f3691fae26d3cc54dc04b4a559d197c46f780.tar.gz
scala-825f3691fae26d3cc54dc04b4a559d197c46f780.tar.bz2
scala-825f3691fae26d3cc54dc04b4a559d197c46f780.zip
Merged revisions 24573,24583-24584,24592-24604,...
Merged revisions 24573,24583-24584,24592-24604,24607-24612,24614-24646,24648,24651-24667, 24672-24706,24708-24717,24719-24724 via svnmerge from https://lampsvn.epfl.ch/svn-repos/scala/scala/trunk ........ r24573 | dragos | 2011-03-24 18:48:14 +0100 (Thu, 24 Mar 2011) | 1 line Added synchronous version of askStructure, needed by the IDE to avoid deadlocks. review by odersky. ........ r24583 | magarcia | 2011-03-25 15:40:35 +0100 (Fri, 25 Mar 2011) | 3 lines for Scala.NET bootstrapping. Given that flatten does not run in forMSIL mode, there may be several recursive activations of the case clause, and part of that activation state needs to be saved/restored. forJVM behavior remains unchanged. ........ r24584 | extempore | 2011-03-25 15:49:31 +0100 (Fri, 25 Mar 2011) | 5 lines I guess windows can show a < 500x difference and still give us confidence there isn't a 100,000x difference. Testing situation continues to confound and amaze. Trying to make 4279 not fail on windows, one more time and I will delete it and burn the bodies. No review. ........ r24592 | extempore | 2011-03-25 22:13:52 +0100 (Fri, 25 Mar 2011) | 3 lines Figured out why -Ydebug has been such a deathtrap for a while. I'm the culprit. Making -Ydebug less likely to kill a compile, no review. ........ r24593 | extempore | 2011-03-25 22:21:27 +0100 (Fri, 25 Mar 2011) | 2 lines Fixed the "poor resilience to error conditions" crasher mentioned in #3625, no review. ........ r24594 | kzys | 2011-03-25 23:55:19 +0100 (Fri, 25 Mar 2011) | 2 lines [scaladoc] Stop wiki syntax parsing inside HTML. Review by pedrofurla. ........ r24595 | kzys | 2011-03-26 00:08:19 +0100 (Sat, 26 Mar 2011) | 2 lines [scaladoc] Add a test for #4180. No review. ........ r24596 | kzys | 2011-03-26 01:39:35 +0100 (Sat, 26 Mar 2011) | 2 lines [scaladoc] Fix wiki formatting to close #4359. Review by malayeri. ........ r24597 | kzys | 2011-03-26 02:25:13 +0100 (Sat, 26 Mar 2011) | 2 lines [scaladoc] Closes #4371. Review by pedrofurla. ........ r24598 | kzys | 2011-03-26 04:26:40 +0100 (Sat, 26 Mar 2011) | 2 lines [scaladoc] Cleanup tests. No review. ........ r24599 | extempore | 2011-03-26 17:05:14 +0100 (Sat, 26 Mar 2011) | 2 lines Fix for cygwin: jline.UnixTerminal is now scala.tools.jline.UnixTerminal. No review. ........ r24600 | extempore | 2011-03-26 19:22:27 +0100 (Sat, 26 Mar 2011) | 2 lines Added some explanatory output when jline reader fails to create. No review. ........ r24601 | extempore | 2011-03-26 20:42:25 +0100 (Sat, 26 Mar 2011) | 1 line Some accumulated work and polish on classpath and jars. No review. ........ r24602 | extempore | 2011-03-26 20:42:44 +0100 (Sat, 26 Mar 2011) | 1 line Cleaning up util.Tracer and its usage in Erasure. No review. ........ r24603 | extempore | 2011-03-26 20:43:00 +0100 (Sat, 26 Mar 2011) | 3 lines Suppressed unnecessary checkcasts on Throwables which were letting AnyRefs reach the backend. Looks like this was my doing when trying to wake back up the icode checker. Closes #4393, no review. ........ r24604 | cunei | 2011-03-26 21:47:47 +0100 (Sat, 26 Mar 2011) | 4 lines Introducing xz compression in nightly builds. Also removed some obsolete targets related to the old 1.4 version. ........ r24607 | magarcia | 2011-03-27 16:41:46 +0200 (Sun, 27 Mar 2011) | 2 lines needed when compiling the (jdk2ivkm'd) Scala library with Scala.NET, and doesn't hurt in forJVM mode. ........ r24608 | extempore | 2011-03-27 17:37:15 +0200 (Sun, 27 Mar 2011) | 1 line Made :javap less crashy on windows, no review. ........ r24609 | extempore | 2011-03-27 21:46:12 +0200 (Sun, 27 Mar 2011) | 18 lines Fix for linked lists closes #4080 and proves my desire not to ship obviously broken code is even greater than my will to hold out for any help. I threw in a free fix for this which I noticed while in there. scala> scala.collection.mutable.LinkedList[Int]().head res0: Int = 0 Also was reminded how useless tests can be: val ten = DoubleLinkedList(1 to 10: _*) ten.insert(DoubleLinkedList(11)) // Post-insert position test require(ten.last == 11) Fortunately a test confirming buggy behavior still serves a purpose by breaking when you fix the bug which allowed it to pass, thus letting you fix the broken test too. Life's (very) little compensations. Linked list code should still be presumed broken. No review. ........ r24610 | extempore | 2011-03-28 01:27:05 +0200 (Mon, 28 Mar 2011) | 16 lines Trying to get fsc doing the right thing with respect to absolute and relative paths. My knowledge of the problem had heretofore been second hand, and my understanding of it incomplete. The real problem I have determined is that there are a bunch of different things which go wrong if relative paths start being resolved from a different base, each of which needs custom handling. classpath-style options, e.g. fsc -cp ../foo.jar path-style options, e.g. fsc -d ../mydir file arguments, e.g. fsc ../foo.scala So it was more work than I had realized, or I probably wouldn't have even touched it. But now it seems to be working as one would want. I also poured some readability onto the fsc help output. Closes #4395, no review, but community input would be great. ........ r24611 | extempore | 2011-03-28 05:10:44 +0200 (Mon, 28 Mar 2011) | 2 lines A paltry 570 cases failing in -Xcheckinit due to some uninitialized val or other. It is but a trifle! No review. ........ r24612 | extempore | 2011-03-28 09:34:04 +0200 (Mon, 28 Mar 2011) | 4 lines Learned an interesting lesson about having an implicit object with a "def apply(x: Any): List[String]" method imported into power mode. Let's just say this is not advised. This and other rough edges eliminated from power mode, no review. ........ r24614 | magarcia | 2011-03-28 15:59:16 +0200 (Mon, 28 Mar 2011) | 1 line (1) The msil library can now parse modreq and modopt, (2) bug fix in GenMSIL. review by rytz. Updated msil.jar coming soon. ........ r24615 | magarcia | 2011-03-28 18:00:13 +0200 (Mon, 28 Mar 2011) | 1 line msil.jar updated with changeset 24614 ........ r24616 | plocinic | 2011-03-28 18:21:52 +0200 (Mon, 28 Mar 2011) | 1 line Don't analyse symbols with error types. can happen for java symbols that are forced during the analysis. Partial fix for #1000238 in eclipse ide, related issue is in #4402. no review ........ r24617 | kzys | 2011-03-28 18:58:54 +0200 (Mon, 28 Mar 2011) | 2 lines [scaladoc] Remove whitespace around colon and parentheses. Closes #4372. Review by pedrofurla. ........ r24618 | extempore | 2011-03-28 21:20:58 +0200 (Mon, 28 Mar 2011) | 3 lines Added some implicitNotFound annotations to commonly used classes, and some documentation to Manifest. (Said documentation is invisible for the moment due to #4404.) No review. ........ r24619 | extempore | 2011-03-28 22:07:02 +0200 (Mon, 28 Mar 2011) | 2 lines Expanding the test which tries to use the collections from java. No review. ........ r24620 | extempore | 2011-03-28 23:44:33 +0200 (Mon, 28 Mar 2011) | 2 lines Looks like another java5/java6 difference gets me on a test. At least this time I was looking for that. No review. ........ r24621 | extempore | 2011-03-28 23:53:12 +0200 (Mon, 28 Mar 2011) | 3 lines Removed some bitrotted ant directives which were keeping us from getting Manifest docs. Thanks to dmharrah. Also removed RichUnit, fare thee well. Closes #4404, no review. ........ r24622 | extempore | 2011-03-28 23:57:47 +0200 (Mon, 28 Mar 2011) | 4 lines Eliminated option -Xwarninit, which is warning about a change which took place 2.5 years ago and is only likely to add to option confusion at this point. No review. (But let me know if we still need this for some reason: many more of our options should be culled.) ........ r24623 | extempore | 2011-03-29 00:45:53 +0200 (Tue, 29 Mar 2011) | 3 lines Made ScalaRunTime.stringOf more general by separating out the part which formats it for a repl result, and cleaned up some string functions around the repl. No review. ........ r24624 | extempore | 2011-03-29 04:59:31 +0200 (Tue, 29 Mar 2011) | 26 lines Polishing the programmatic interface to the repl and other bits of machinery which we'll have to live with for a while. The repl classloader now works more like you'd expect a classloader to, as seen here: % scala -Dscala.repl.power scala> class Bippus extends Traversable[Int] { def foreach[U](f: Int => U) = () } defined class Bippus scala> intp.classLoader.getResourceAsStream("Bippus").bytes() res0: Array[Byte] = Array(-54, -2, -70, ... scala> res0.size res1: Int = 23954 scala> case class Bippy(x: Int) defined class Bippy // classBytes is shorter way to say the same thing scala> intp.classLoader.classBytes("Bippy").size res2: Int = 2356 scala> intp.classLoader.classBytes("Bippy$").size res3: Int = 1741 Closes #4399, no review. ........ r24625 | extempore | 2011-03-29 05:25:38 +0200 (Tue, 29 Mar 2011) | 1 line And so my attempt to have a performance test draws the final curtain, no review. ........ r24626 | kzys | 2011-03-29 16:55:30 +0200 (Tue, 29 Mar 2011) | 2 lines [scaladoc] Add a test of colon and parentheses (#4372). No review. ........ r24627 | kzys | 2011-03-29 17:40:21 +0200 (Tue, 29 Mar 2011) | 2 lines [scaladoc] Cleanup code. No review. ........ r24628 | kzys | 2011-03-29 18:21:02 +0200 (Tue, 29 Mar 2011) | 2 lines [scaladoc] Don't create broken link to private companion object. Closes #4374. Review by pedrofurla. ........ r24629 | extempore | 2011-03-29 20:41:08 +0200 (Tue, 29 Mar 2011) | 5 lines A bunch of scaladoc cleanups. Tags with the wrong name, tags in the wrong places, tags saying the wrong thing. I sorted types and values so deprecated ones are at the end. I think they should be hidden by default, but this is a big improvement. Leaving #3914 open so they can be made invisible. No review. ........ r24630 | extempore | 2011-03-29 22:22:22 +0200 (Tue, 29 Mar 2011) | 2 lines Disabled all the script tests. They're not run from ant and they're breaking the distribution build. No review. ........ r24631 | extempore | 2011-03-29 22:22:40 +0200 (Tue, 29 Mar 2011) | 2 lines Fixing the scalap test rig to work like other test types so it doesn't break the distribution build. No review. ........ r24632 | extempore | 2011-03-29 22:22:53 +0200 (Tue, 29 Mar 2011) | 2 lines Transcript pastes now work with leading whitespace (such as my commit message in r24624), no review. ........ r24633 | extempore | 2011-03-29 22:44:33 +0200 (Tue, 29 Mar 2011) | 2 lines A change to a test to defend against output change when run with a plugin enabled. No review. ........ r24634 | cunei | 2011-03-29 23:18:34 +0200 (Tue, 29 Mar 2011) | 2 lines include files/specialized/*.txt in the set of files packaged in the test sbp. ........ r24635 | cunei | 2011-03-29 23:39:29 +0200 (Tue, 29 Mar 2011) | 2 lines Excluding presentation test from sbaz-packaged test suite. ........ r24636 | extempore | 2011-03-30 02:55:20 +0200 (Wed, 30 Mar 2011) | 11 lines Wanting to deprecate -make, first I had to write a way to deprecate -make. So there's that, now you can do val s = SomeSetting(...) withDeprecationMessage "don't use this" And it will do the usual deprecation things. And, deprecated -make. And couldn't resist fixing a bug in -make, it would crash if you gave it its own default option (i.e. -make:all.) Let's deprecate more! I also did further cleaning up of our help outputs. Do I smell a pulitzer in the making? No review. ........ r24637 | rytz | 2011-03-30 09:06:08 +0200 (Wed, 30 Mar 2011) | 1 line fix get-scala-revision script for the case when svn prints some warnings. no review ........ r24638 | extempore | 2011-03-30 22:40:46 +0200 (Wed, 30 Mar 2011) | 10 lines Issue warning when doccomments have $variables which go unfulfilled. Started with patch by dmharrah. Noticed expandVariables never incremented its recursion guard and ended up rewriting it. To avoid spurious warnings you can escape $'s, as in this comment: /** The decoded name of the symbol, e.g. `==` instead of `\$eq\$eq`. */ The above will be ignored during expansion and translated to $eq$eq for output. Closes #4412, no review. ........ r24639 | extempore | 2011-03-30 23:00:08 +0200 (Wed, 30 Mar 2011) | 2 lines Addressing most of the warnings revealed by the patch to warn about unknown scaladoc variables. Updated and reran genprod. No review. ........ r24640 | extempore | 2011-03-31 00:47:00 +0200 (Thu, 31 Mar 2011) | 3 lines Warn about unqualified names in scaladoc links because they don't work. I think it would be better to just make them work, but the way things are structured it looks involved. Closes #3696, no review. ........ r24641 | kzys | 2011-03-31 01:38:18 +0200 (Thu, 31 Mar 2011) | 2 lines [scaladoc] Scaladoc should expand macros recursively. Closes #3484. Review by dubochet. ........ r24642 | extempore | 2011-03-31 05:59:42 +0200 (Thu, 31 Mar 2011) | 6 lines Modified some typer logic to allow annotation arguments for constants which don't have the form Literal(_). The current logic seems to be avoided most of the time, but scaladoc breaks when it runs into it. This closes #4301. I can't figure out from the ticket what the deal is with #2764 and what is presently happening, but it seems like this patch could only improve the situation. Review by rytz. ........ r24643 | extempore | 2011-03-31 05:59:57 +0200 (Thu, 31 Mar 2011) | 2 lines Incidental work on scaladoc while trying to figure out what is up with usecases. Did a little rewrite of recent patch. No review. ........ r24644 | extempore | 2011-03-31 06:59:35 +0200 (Thu, 31 Mar 2011) | 2 lines Making the scaladoc command line help look as pretty as all the others ones do now. No review. ........ r24645 | extempore | 2011-03-31 07:58:01 +0200 (Thu, 31 Mar 2011) | 2 lines Some minor sensibility improvements to previous patch, and tearing out some obsolete pieces of scalap. No review. ........ r24646 | extempore | 2011-03-31 08:09:14 +0200 (Thu, 31 Mar 2011) | 2 lines Fix for interpreter issue with missing newlines wreaking havoc. No review. ........ r24648 | kzys | 2011-03-31 14:59:56 +0200 (Thu, 31 Mar 2011) | 2 lines [scaladoc] Don't link to syntetic companion. Closes #4325. Review by dubochet. ........ r24651 | dragos | 2011-03-31 16:36:38 +0200 (Thu, 31 Mar 2011) | 1 line One breakage too many, this test is a pest -> disabled. no review. ........ r24652 | dragos | 2011-03-31 16:39:19 +0200 (Thu, 31 Mar 2011) | 1 line Fixed failing presentation compiler test. no review. ........ r24653 | extempore | 2011-03-31 18:41:51 +0200 (Thu, 31 Mar 2011) | 1 line Emptiness check in swing, closes #1578 no review. ........ r24654 | extempore | 2011-03-31 18:42:05 +0200 (Thu, 31 Mar 2011) | 4 lines Added some null checks in swing. I assumed the behavior when the input verifier is null should be "assume it verifies" not "assume it doesn't" but since I don't actually know anything about swing this guess could be wrong. Closes #3783, review by imaier. ........ r24655 | odersky | 2011-03-31 18:46:48 +0200 (Thu, 31 Mar 2011) | 1 line recommitted 24578: All compiler control methods now do something sensible when called from presentation compiler thread itself. ........ r24656 | extempore | 2011-03-31 21:26:24 +0200 (Thu, 31 Mar 2011) | 3 lines Printing refinement types in scaladoc. Actually only printing one-member refinements, for bigger ones printing the number of members. Should be improved. Closes #484, no review. ........ r24657 | extempore | 2011-03-31 21:26:37 +0200 (Thu, 31 Mar 2011) | 3 lines Fix for a little breakage which crept into power mode. This is why real things with real types are better than generating code and remembering to update your strings. No review. ........ r24658 | extempore | 2011-03-31 22:44:29 +0200 (Thu, 31 Mar 2011) | 7 lines Separated abstract and concrete value members in scaladoc. This looks like such a runaway improvement to me that I'm just checking it in, but if anyone feels differently say the word. I eliminated the abstract/concrete filter entirely as it is extraneous once you can just see which is which. Closes #3831, review by malayeri. ........ r24659 | extempore | 2011-04-01 00:18:43 +0200 (Fri, 01 Apr 2011) | 2 lines A quick fix for the weird string output one gets in the repl when calling .par. No review. ........ r24660 | extempore | 2011-04-01 04:18:53 +0200 (Fri, 01 Apr 2011) | 5 lines Working on the documentation of core classes. Trying to withdraw some of the goodness I banked a while ago with the AnyVal types. Started on what will culminate in the total elimination of SourcelessComments. Cleaned up the docs on ancient classes like Product. More to come. No review. ........ r24661 | extempore | 2011-04-01 07:02:30 +0200 (Fri, 01 Apr 2011) | 2 lines A less ad hoc infrastructure for generating AnyVal sources. A few more comments on said sources. No review. ........ r24662 | extempore | 2011-04-01 08:41:46 +0200 (Fri, 01 Apr 2011) | 1 line Fix for parsing bug in scaladoc closes #4420, no review. ........ r24663 | extempore | 2011-04-01 18:00:50 +0200 (Fri, 01 Apr 2011) | 3 lines Since somewhere before 2.8.0 shipped scalac has disgorged a stack trace for the misdemeanor of specifying a non-existent directory for -d. No more, no review. ........ r24664 | kzys | 2011-04-01 19:09:59 +0200 (Fri, 01 Apr 2011) | 2 lines Put "\n" between superclass's comment and subclass's. Closes #4289. Review by pedrofurla. ........ r24665 | extempore | 2011-04-01 19:18:34 +0200 (Fri, 01 Apr 2011) | 14 lines Finding myself wanting a working -Ystop, I did the following. -Ystop-after:phase works -Ystop-before:phase works -Ystop:phase is a backward compat alias for -Ystop-after Until now -Ystop, although documented to "stop after phase", actually stopped before phase, to the consternation of some. Furthermore the programmatic way to influence the stop phase (protected def stopPhase in Global#Run) involved returning true if you wanted to stop before the phase. So now the command line option works as advertised, and the method has the same semantics. The only potential loser is some script which uses -Ystop: based on the actual behavior rather than the documented behavior. Well, someone had to lose. No review. ........ r24666 | kzys | 2011-04-01 20:57:36 +0200 (Fri, 01 Apr 2011) | 2 lines On Scaladoc, we should escape meta characters before compile regexp. No review. ........ r24667 | extempore | 2011-04-02 01:55:01 +0200 (Sat, 02 Apr 2011) | 2 lines A double completion whammy: crasher for edge condition and method signatures not being cleaned of their $iws. Closes #4434, no review. ........ r24672 | malayeri | 2011-04-04 15:57:56 +0200 (Mon, 04 Apr 2011) | 1 line [scaladoc] Add explicit link to show linear supertypes and known subclasses. Closes #4416. Modifications to style sheets to reduce number of colors and make the documentation more readable (includes contributions from Ruediger Keller). No review. ........ r24673 | malayeri | 2011-04-04 16:34:29 +0200 (Mon, 04 Apr 2011) | 1 line [scaladoc] Add missing files. ........ r24674 | cunei | 2011-04-04 16:52:55 +0200 (Mon, 04 Apr 2011) | 2 lines Fix for windows batch files. Closes #4439. ........ r24675 | malayeri | 2011-04-04 17:22:09 +0200 (Mon, 04 Apr 2011) | 1 line [scaladoc] Minor CSS tweaks. No review. ........ r24676 | kzys | 2011-04-04 18:19:32 +0200 (Mon, 04 Apr 2011) | 2 lines Every tag element (even @define and @usecase) end before the next recognised tag. Closes #4409. Review by extempore. ........ r24677 | odersky | 2011-04-04 18:34:02 +0200 (Mon, 04 Apr 2011) | 1 line Fixed crashes in IDE on default parameters in constructors. ........ r24678 | malayeri | 2011-04-04 18:36:27 +0200 (Mon, 04 Apr 2011) | 1 line [scaladoc] Change div id's of abstract and concrete members so that "order by inheritance" action works properly. Fixes issue introduced in r24658. Review by extempore. ........ r24679 | malayeri | 2011-04-04 18:37:51 +0200 (Mon, 04 Apr 2011) | 1 line [scaladoc] Make object/template name be a link to the companion. Closes #4411. Review by extempore to make sure the design makes sense. ........ r24680 | malayeri | 2011-04-04 18:38:11 +0200 (Mon, 04 Apr 2011) | 1 line [scaladoc] Fix minor CSS issue. No review. ........ r24681 | odersky | 2011-04-04 19:35:19 +0200 (Mon, 04 Apr 2011) | 1 line Some localized code cleanup. ........ r24682 | malayeri | 2011-04-04 20:17:26 +0200 (Mon, 04 Apr 2011) | 1 line [scaladoc] Updated trait, package, class, and object icons. No review. ........ r24683 | extempore | 2011-04-05 03:48:11 +0200 (Tue, 05 Apr 2011) | 12 lines Added a long overdue warning for when people define a class and then an object or vice versa in the repl. scala> object Bippy { implicit val myImplicitsDontWork = 5 } defined module Bippy scala> trait Bippy { val x = "hello" } defined trait Bippy warning: previously defined object Bippy is not a companion to trait Bippy. Companions must be defined together; you may wish to use :paste mode for this. No review. ........ r24684 | extempore | 2011-04-05 03:48:31 +0200 (Tue, 05 Apr 2011) | 6 lines Enhancing the repl-testing code by turning it into a transcript producing machine. "Here's some code." "Here's a transcript!" "Good day to you, sir!" "No, good day to YOU!" These changes are awesome. Look at the checkfile diffs for god's sake, they'll make you weep with joy. No review. ........ r24685 | rytz | 2011-04-05 09:50:41 +0200 (Tue, 05 Apr 2011) | 1 line make natives test run on win64. no review ........ r24686 | rytz | 2011-04-05 09:54:41 +0200 (Tue, 05 Apr 2011) | 1 line svn property: mark the dll as binary. no review. ........ r24687 | malayeri | 2011-04-05 10:36:32 +0200 (Tue, 05 Apr 2011) | 1 line [scaladoc] Fix failing test. No review. ........ r24688 | odersky | 2011-04-05 14:19:10 +0200 (Tue, 05 Apr 2011) | 1 line Fixes #4298, by correcting doc comment ........ r24689 | dragos | 2011-04-05 18:19:45 +0200 (Tue, 05 Apr 2011) | 3 lines Wrapped exceptions coming from calls to 'ask' in a FailedException. This allows to get a stack trace from both the presentation compiler thread and the calling thread. review by odersky. ........ r24690 | odersky | 2011-04-05 18:22:21 +0200 (Tue, 05 Apr 2011) | 1 line better handling of on-same-thread calls. ........ r24691 | dragos | 2011-04-05 19:03:51 +0200 (Tue, 05 Apr 2011) | 1 line Forgot a import in the last commit. no review. ........ r24692 | extempore | 2011-04-06 01:19:26 +0200 (Wed, 06 Apr 2011) | 3 lines Some accumulated cleanups around the interpreter loop commands as I attempt to make my way all the way to the promised land of documenting it. No review. ........ r24693 | extempore | 2011-04-06 06:33:15 +0200 (Wed, 06 Apr 2011) | 1 line Fixed an edge case setting crasher, no review. ........ r24694 | extempore | 2011-04-06 06:33:27 +0200 (Wed, 06 Apr 2011) | 3 lines Fixed a failure output regression I introduced working around a process bug. Unrolled the code I'd put in to work around the now-fixed process bug. No review. ........ r24695 | extempore | 2011-04-06 06:33:46 +0200 (Wed, 06 Apr 2011) | 1 line Misc cleanups and crash avoidance, no review. ........ r24696 | malayeri | 2011-04-06 16:23:25 +0200 (Wed, 06 Apr 2011) | 1 line Set "synthetic" flag for methods $asInstanceOf and $isInstanceOf. Closes #4368. No review. ........ r24697 | malayeri | 2011-04-06 16:24:30 +0200 (Wed, 06 Apr 2011) | 1 line [scaladoc] Reduce horizontal lines in html output, refactor Template.css to improve readability. No review. ........ r24698 | malayeri | 2011-04-06 16:28:41 +0200 (Wed, 06 Apr 2011) | 1 line Update documentation of MutableList. Closes #4397. No review. ........ r24699 | odersky | 2011-04-06 16:32:32 +0200 (Wed, 06 Apr 2011) | 1 line More refinements to avoid deadlocks systematically when asking from presentation compiler thread ........ r24700 | extempore | 2011-04-06 20:48:15 +0200 (Wed, 06 Apr 2011) | 3 lines The beautification of repl pasting had the problem that the new beautiful output was not itself pastable. Now I have achieved "paste idempotence". No review. ........ r24701 | extempore | 2011-04-07 09:30:38 +0200 (Thu, 07 Apr 2011) | 2 lines Clamping down on some more breakage which snuck into power mode. I really need some power tests. No review. ........ r24702 | extempore | 2011-04-07 09:31:02 +0200 (Thu, 07 Apr 2011) | 9 lines Deleted SourcelessComments. Created source files for Any, AnyRef, Nothing and Null with improved documentation of their particulars and convinced scaladoc to parse them without leaving scalac institutionalized. Now rather than seeing our hardcoded documentation strings bitrot in a shadowy flight from classes which do not exist, we are championing the cause of the innocent and powerless. Nothing and Null aren't above the law! So now any responsible party can fire up their text editor and go to town on Nothing.scala. As I'm sure they will. Review by malayeri. ........ r24703 | extempore | 2011-04-07 09:31:14 +0200 (Thu, 07 Apr 2011) | 2 lines Added a comment to Dynamic sharing that if you don't supply mr. -Xexperimental, it won't work. No review. ........ r24704 | malayeri | 2011-04-07 15:34:14 +0200 (Thu, 07 Apr 2011) | 1 line [scaladoc] Make links to classes and traits not be the entire line, but just the template name. Closes #4444. No review. ........ r24705 | malayeri | 2011-04-07 16:03:49 +0200 (Thu, 07 Apr 2011) | 1 line [scaladoc] Don't generate an attributes block if its contents are empty. No review. ........ r24706 | odersky | 2011-04-07 16:30:56 +0200 (Thu, 07 Apr 2011) | 1 line Fixes #2808 without redefining what override means. Review by extempore. ........ r24708 | extempore | 2011-04-07 19:43:41 +0200 (Thu, 07 Apr 2011) | 10 lines Made power mode more configurable. Don't think of this as the long-term configuration answer, but what I have any chance of doing before 2.9 ships. // file to interpret when entering power mode instead of default -Dscala.repl.power.initcode=/path/to/file // file holding banner to display instead of default -Dscala.repl.power.banner=/path/to/file No review. ........ r24709 | magarcia | 2011-04-08 13:38:48 +0200 (Fri, 08 Apr 2011) | 1 line [MSIL] handling of volatile fields. review by rytz. ........ r24710 | malayeri | 2011-04-08 16:26:22 +0200 (Fri, 08 Apr 2011) | 1 line [scaladoc] Separate sections for "linear supertype" and "known subclasses" using patch provided by Ruediger Keller. Closes #4456. Closes #4304. ........ r24711 | malayeri | 2011-04-08 17:10:32 +0200 (Fri, 08 Apr 2011) | 1 line [scaladoc] Don't generate long comments if they are the same as the short comment. Closes #4455. No review. ........ r24712 | odersky | 2011-04-08 18:31:26 +0200 (Fri, 08 Apr 2011) | 1 line Closes #4431. Review by extempore. ........ r24713 | extempore | 2011-04-08 18:42:18 +0200 (Fri, 08 Apr 2011) | 2 lines Factoring the imports related code out of the main Interpreter class, no review. ........ r24714 | extempore | 2011-04-08 18:42:38 +0200 (Fri, 08 Apr 2011) | 1 line Added :imports command, no review. ........ r24715 | extempore | 2011-04-10 04:17:28 +0200 (Sun, 10 Apr 2011) | 1 line Made the reading of y/n a little more robust. No review. ........ r24716 | extempore | 2011-04-10 04:18:08 +0200 (Sun, 10 Apr 2011) | 2 lines More fun with xml and elements not appearing equal. Closes #4387, no review. ........ r24717 | extempore | 2011-04-10 04:18:32 +0200 (Sun, 10 Apr 2011) | 2 lines Changed scala.io.Position into something other than a fixed object which throws exceptions when the position overflows. Closes #4382, no review. ........ r24719 | extempore | 2011-04-11 05:04:47 +0200 (Mon, 11 Apr 2011) | 2 lines Improving the repl help infrastructure, and made the :wrap command more robust. No review. ........ r24720 | extempore | 2011-04-11 07:01:17 +0200 (Mon, 11 Apr 2011) | 4 lines Found there was still all kinds of detritus remaining from the deceased IMPLICITMETHODtpe and ImplicitMethodType. Applied wrecking ball, review by moors. (Can I do the same thing with DEBRUIJNINDEXtpe and DeBruijnIndex?) ........ r24721 | eugenevigdorchik | 2011-04-11 08:42:47 +0200 (Mon, 11 Apr 2011) | 1 line Tighten the visibility of interactive.Global. No review. ........ r24722 | odersky | 2011-04-11 09:01:55 +0200 (Mon, 11 Apr 2011) | 1 line Closes #4396. No review. ........ r24723 | odersky | 2011-04-11 10:53:51 +0200 (Mon, 11 Apr 2011) | 1 line Closes #4380. No review. ........ r24724 | odersky | 2011-04-11 10:56:57 +0200 (Mon, 11 Apr 2011) | 1 line Deleted debug output that made it into previous commit. ........
Diffstat (limited to 'test')
-rw-r--r--test/disabled/presentation/simple-tests/SimpleInteractiveTest.scala (renamed from test/files/presentation/simple-tests/SimpleInteractiveTest.scala)0
-rw-r--r--test/disabled/presentation/simple-tests/src/Tester.scala (renamed from test/files/presentation/simple-tests/src/Tester.scala)0
-rw-r--r--test/disabled/run/bug4279.scala (renamed from test/files/run/bug4279.scala)4
-rw-r--r--test/disabled/script/fact.args (renamed from test/files/script/fact.args)0
-rwxr-xr-xtest/disabled/script/fact.bat (renamed from test/files/script/fact.bat)0
-rw-r--r--test/disabled/script/fact.check (renamed from test/files/script/fact.check)0
-rwxr-xr-xtest/disabled/script/fact.scala (renamed from test/files/script/fact.scala)0
-rwxr-xr-xtest/disabled/script/second.bat (renamed from test/files/script/second.bat)0
-rw-r--r--test/disabled/script/second.check (renamed from test/files/script/second.check)0
-rwxr-xr-xtest/disabled/script/second.scala (renamed from test/files/script/second.scala)0
-rwxr-xr-xtest/disabled/script/t1015.bat (renamed from test/files/script/t1015.bat)0
-rwxr-xr-xtest/disabled/script/t1015.scala (renamed from test/files/script/t1015.scala)0
-rwxr-xr-xtest/disabled/script/t1017.bat (renamed from test/files/script/t1017.bat)0
-rwxr-xr-xtest/disabled/script/t1017.scala (renamed from test/files/script/t1017.scala)0
-rw-r--r--test/files/jvm/interpreter.check339
-rwxr-xr-xtest/files/jvm/mkLibNatives.bat3
-rw-r--r--test/files/jvm/natives-64.dllbin0 -> 37376 bytes
-rw-r--r--test/files/neg/annot-nonconst.check2
-rw-r--r--test/files/neg/bug3736.check5
-rw-r--r--test/files/neg/super-cast-or-test.check7
-rw-r--r--test/files/neg/super-cast-or-test.scala3
-rw-r--r--test/files/neg/t3399.check2
-rw-r--r--test/files/neg/t3507.check2
-rw-r--r--test/files/neg/t4431.check7
-rw-r--r--test/files/neg/t4431.scala16
-rw-r--r--test/files/pos/javaReadsSigs/fromjava.java77
-rw-r--r--test/files/presentation/find-trees.check2
-rw-r--r--test/files/run/bug3376.check13
-rw-r--r--test/files/run/bug4080.check1
-rw-r--r--test/files/run/bug4080.scala12
-rw-r--r--test/files/run/bug4285.check11
-rw-r--r--test/files/run/bug4387.scala12
-rw-r--r--test/files/run/constrained-types.check132
-rw-r--r--test/files/run/constrained-types.scala146
-rw-r--r--test/files/run/programmatic-main.scala2
-rw-r--r--test/files/run/repl-assign.check20
-rw-r--r--test/files/run/repl-assign.scala10
-rw-r--r--test/files/run/repl-paste-2.check56
-rw-r--r--test/files/run/repl-paste-2.scala17
-rw-r--r--test/files/run/repl-paste.check16
-rw-r--r--test/files/run/repl-transcript.check27
-rw-r--r--test/files/run/t3361.scala6
-rw-r--r--test/files/run/t4396.check5
-rw-r--r--test/files/run/t4396.scala35
-rw-r--r--test/files/run/treePrint.scala2
-rwxr-xr-xtest/partest3
-rw-r--r--test/scaladoc/resources/Trac3484.scala27
-rw-r--r--test/scaladoc/resources/Trac4180.scala4
-rw-r--r--test/scaladoc/resources/Trac4289.scala13
-rw-r--r--test/scaladoc/resources/Trac4325.scala5
-rw-r--r--test/scaladoc/resources/Trac4358.scala8
-rw-r--r--test/scaladoc/resources/Trac4372.scala5
-rw-r--r--test/scaladoc/resources/Trac4374.scala5
-rw-r--r--test/scaladoc/resources/Trac4409.scala14
-rw-r--r--test/scaladoc/resources/Trac4420.scala14
-rw-r--r--test/scaladoc/resources/Trac484.scala18
-rw-r--r--test/scaladoc/scala/html/HtmlFactoryTest.scala246
-rw-r--r--test/scaladoc/scala/model/CommentFactoryTest.scala43
58 files changed, 1043 insertions, 354 deletions
diff --git a/test/files/presentation/simple-tests/SimpleInteractiveTest.scala b/test/disabled/presentation/simple-tests/SimpleInteractiveTest.scala
index 014fd24b6f..014fd24b6f 100644
--- a/test/files/presentation/simple-tests/SimpleInteractiveTest.scala
+++ b/test/disabled/presentation/simple-tests/SimpleInteractiveTest.scala
diff --git a/test/files/presentation/simple-tests/src/Tester.scala b/test/disabled/presentation/simple-tests/src/Tester.scala
index cb62187514..cb62187514 100644
--- a/test/files/presentation/simple-tests/src/Tester.scala
+++ b/test/disabled/presentation/simple-tests/src/Tester.scala
diff --git a/test/files/run/bug4279.scala b/test/disabled/run/bug4279.scala
index 89a27fc065..d0afc3a032 100644
--- a/test/files/run/bug4279.scala
+++ b/test/disabled/run/bug4279.scala
@@ -32,7 +32,7 @@ object Test {
// warmup
{ val r = new Runner(1000000, 10) ; r.straightSlice ; r.iteratorSlice ; r.viewSlice }
- new Runner(10000000, 10) run 100
- new Runner(10000000, 50) run 50
+ new Runner(10000000, 10) run 500
+ new Runner(10000000, 50) run 300
}
}
diff --git a/test/files/script/fact.args b/test/disabled/script/fact.args
index 7ed6ff82de..7ed6ff82de 100644
--- a/test/files/script/fact.args
+++ b/test/disabled/script/fact.args
diff --git a/test/files/script/fact.bat b/test/disabled/script/fact.bat
index bee0ba25c6..bee0ba25c6 100755
--- a/test/files/script/fact.bat
+++ b/test/disabled/script/fact.bat
diff --git a/test/files/script/fact.check b/test/disabled/script/fact.check
index 22aa60821e..22aa60821e 100644
--- a/test/files/script/fact.check
+++ b/test/disabled/script/fact.check
diff --git a/test/files/script/fact.scala b/test/disabled/script/fact.scala
index d48dac6f0f..d48dac6f0f 100755
--- a/test/files/script/fact.scala
+++ b/test/disabled/script/fact.scala
diff --git a/test/files/script/second.bat b/test/disabled/script/second.bat
index 0d7085954d..0d7085954d 100755
--- a/test/files/script/second.bat
+++ b/test/disabled/script/second.bat
diff --git a/test/files/script/second.check b/test/disabled/script/second.check
index a105b862a1..a105b862a1 100644
--- a/test/files/script/second.check
+++ b/test/disabled/script/second.check
diff --git a/test/files/script/second.scala b/test/disabled/script/second.scala
index 48b8d73815..48b8d73815 100755
--- a/test/files/script/second.scala
+++ b/test/disabled/script/second.scala
diff --git a/test/files/script/t1015.bat b/test/disabled/script/t1015.bat
index 7475313d7e..7475313d7e 100755
--- a/test/files/script/t1015.bat
+++ b/test/disabled/script/t1015.bat
diff --git a/test/files/script/t1015.scala b/test/disabled/script/t1015.scala
index 52d67bd6cc..52d67bd6cc 100755
--- a/test/files/script/t1015.scala
+++ b/test/disabled/script/t1015.scala
diff --git a/test/files/script/t1017.bat b/test/disabled/script/t1017.bat
index 369dbd2aca..369dbd2aca 100755
--- a/test/files/script/t1017.bat
+++ b/test/disabled/script/t1017.bat
diff --git a/test/files/script/t1017.scala b/test/disabled/script/t1017.scala
index d1b43ea923..d1b43ea923 100755
--- a/test/files/script/t1017.scala
+++ b/test/disabled/script/t1017.scala
diff --git a/test/files/jvm/interpreter.check b/test/files/jvm/interpreter.check
index 3c0ee7b4bd..dd0f39551c 100644
--- a/test/files/jvm/interpreter.check
+++ b/test/files/jvm/interpreter.check
@@ -2,222 +2,360 @@ Type in expressions to have them evaluated.
Type :help for more information.
scala>
-scala>
-scala> res0: Int = 7
-scala> | | | | gcd: (x: Int,y: Int)Int
+scala> // basics
+
+scala> 3+4
+res0: Int = 7
-scala> five: Int = 5
+scala> def gcd(x: Int, y: Int): Int = {
+ if (x == 0) y
+ else if (y == 0) x
+ else gcd(y%x, x)
+}
+gcd: (x: Int,y: Int)Int
-scala> x: Int = 1
+scala> val five = gcd(15,35)
+five: Int = 5
-scala> x: Int = 2
+scala> var x = 1
+x: Int = 1
-scala> three: Int = 3
+scala> x = 2
+x: Int = 2
-scala> defined type alias anotherint
+scala> val three = x+1
+three: Int = 3
-scala> four: anotherint = 4
+scala> type anotherint = Int
+defined type alias anotherint
-scala> <console>:8: error: type mismatch;
+scala> val four: anotherint = 4
+four: anotherint = 4
+
+scala> val bogus: anotherint = "hello"
+<console>:8: error: type mismatch;
found : java.lang.String("hello")
required: anotherint
val bogus: anotherint = "hello"
^
-scala> defined trait PointlessTrait
+scala> trait PointlessTrait
+defined trait PointlessTrait
-scala> x: Int = 2
+scala> val (x,y) = (2,3)
+x: Int = 2
y: Int = 3
-scala> hello
+scala> println("hello")
+hello
scala>
-scala>
-scala> t1513: Array[Null] = Array(null)
-scala>
-scala> atom: scala.xml.Atom[Unit] = ()
+scala> // ticket #1513
-scala>
-scala> defined class S
+scala> val t1513 = Array(null)
+t1513: Array[Null] = Array(null)
-scala> fish: S = fish
+scala> // ambiguous toString problem from #547
-scala>
-scala> arr: Array[java.lang.String] = Array(What's, up, doc?)
+scala> val atom = new scala.xml.Atom()
+atom: scala.xml.Atom[Unit] = ()
-scala>
-scala> arrInt: Any = Array(1, 2, 3)
+scala> // overriding toString problem from #1404
-scala>
-scala> arrArrInt: Any = Array(Array(1, 2), Array(3, 4))
+scala> class S(override val toString : String)
+defined class S
-scala>
-scala>
-scala> defined class Foo
+scala> val fish = new S("fish")
+fish: S = fish
-scala> defined class Bar
+scala> // Test that arrays pretty print nicely.
-scala> foo2bar: (foo: Foo)Bar
+scala> val arr = Array("What's", "up", "doc?")
+arr: Array[java.lang.String] = Array(What's, up, doc?)
-scala> bar: Bar = Bar(3)
+scala> // Test that arrays pretty print nicely, even when we give them type Any
+
+scala> val arrInt : Any = Array(1,2,3)
+arrInt: Any = Array(1, 2, 3)
+
+scala> // Test that nested arrays are pretty-printed correctly
+
+scala> val arrArrInt : Any = Array(Array(1, 2), Array(3, 4))
+arrArrInt: Any = Array(Array(1, 2), Array(3, 4))
scala>
+
+scala> // implicit conversions
+
+scala> case class Foo(n: Int)
+defined class Foo
+
+scala> case class Bar(n: Int)
+defined class Bar
+
+scala> implicit def foo2bar(foo: Foo) = Bar(foo.n)
+foo2bar: (foo: Foo)Bar
+
+scala> val bar: Bar = Foo(3)
+bar: Bar = Bar(3)
+
scala>
+
+scala> // importing from a previous result
+
scala> import bar._
+import bar._
-scala> m: Int = 3
+scala> val m = n
+m: Int = 3
scala>
-scala>
-scala> one: Int = 1
-scala> one: Int = 1
+scala> // stressing the imports mechanism
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
-scala> one: Int = 1
+scala> val one = 1
+one: Int = 1
+
+scala> val one = 1
+one: Int = 1
+
+scala> val one = 1
+one: Int = 1
scala>
+
scala>
-scala> x1: Int = 1
-scala> x2: Int = 1
+scala> val x1 = 1
+x1: Int = 1
-scala> x3: Int = 1
+scala> val x2 = 1
+x2: Int = 1
-scala> x4: Int = 1
+scala> val x3 = 1
+x3: Int = 1
-scala> x5: Int = 1
+scala> val x4 = 1
+x4: Int = 1
-scala> x6: Int = 1
+scala> val x5 = 1
+x5: Int = 1
-scala> x7: Int = 1
+scala> val x6 = 1
+x6: Int = 1
-scala> x8: Int = 1
+scala> val x7 = 1
+x7: Int = 1
-scala> x9: Int = 1
+scala> val x8 = 1
+x8: Int = 1
-scala> x10: Int = 1
+scala> val x9 = 1
+x9: Int = 1
-scala> x11: Int = 1
+scala> val x10 = 1
+x10: Int = 1
-scala> x12: Int = 1
+scala> val x11 = 1
+x11: Int = 1
-scala> x13: Int = 1
+scala> val x12 = 1
+x12: Int = 1
-scala> x14: Int = 1
+scala> val x13 = 1
+x13: Int = 1
-scala> x15: Int = 1
+scala> val x14 = 1
+x14: Int = 1
-scala> x16: Int = 1
+scala> val x15 = 1
+x15: Int = 1
-scala> x17: Int = 1
+scala> val x16 = 1
+x16: Int = 1
-scala> x18: Int = 1
+scala> val x17 = 1
+x17: Int = 1
-scala> x19: Int = 1
+scala> val x18 = 1
+x18: Int = 1
-scala> x20: Int = 1
+scala> val x19 = 1
+x19: Int = 1
-scala>
-scala> two: Int = 2
+scala> val x20 = 1
+x20: Int = 1
scala>
+
+scala> val two = one + x5
+two: Int = 2
+
scala>
-scala>
-scala> xs: Array[_] = Array(1, 2)
-scala> res2: Int = 2
+scala> // handling generic wildcard arrays (#2386)
-scala> res3: Any = 1
+scala> // It's put here because type feedback is an important part of it.
-scala> res4: Array[_] = Array(2)
+scala> val xs: Array[_] = Array(1, 2)
+xs: Array[_] = Array(1, 2)
-scala> res5: Array[java.lang.String] = Array(abc, abc)
+scala> xs.size
+res2: Int = 2
-scala> res6: scala.collection.mutable.ArraySeq[_] = ArraySeq(1, 2)
+scala> xs.head
+res3: Any = 1
-scala> res7: Array[(_$1, _$1)] forSome { type _$1 } = Array((1,1), (2,2))
+scala> xs filter (_ == 2)
+res4: Array[_] = Array(2)
+
+scala> xs map (_ => "abc")
+res5: Array[java.lang.String] = Array(abc, abc)
+
+scala> xs map (x => x)
+res6: scala.collection.mutable.ArraySeq[_] = ArraySeq(1, 2)
+
+scala> xs map (x => (x, x))
+res7: Array[(_$1, _$1)] forSome { type _$1 } = Array((1,1), (2,2))
scala>
-scala>
-scala>
-scala> <console>:1: error: '=' expected but '=>' found.
+
+scala> // interior syntax errors should *not* go into multi-line input mode.
+
+scala> // both of the following should abort immediately:
+
+scala> def x => y => z
+<console>:1: error: '=' expected but '=>' found.
def x => y => z
^
-scala> <console>:1: error: illegal start of definition
+scala> [1,2,3]
+<console>:1: error: illegal start of definition
[1,2,3]
^
scala>
+
scala>
-scala>
-scala> | | | | res8: scala.xml.Elem =
+
+scala> // multi-line XML
+
+scala> <a>
+<b
+ c="c"
+ d="dd"
+/></a>
+res8: scala.xml.Elem =
<a>
<b c="c" d="dd"></b></a>
scala>
+
scala>
-scala> | | | |
-scala>
+
+scala> /*
+ /*
+ multi-line comment
+ */
+*/
+
scala>
+
scala>
-scala> | | | res9: java.lang.String =
+
+scala> // multi-line string
+
+scala> """
+hello
+there
+"""
+res9: java.lang.String =
"
hello
there
"
scala>
-scala> | | You typed two blank lines. Starting a new command.
-scala>
-scala> match: Int
+scala> (1 + // give up early by typing two blank lines
-scala> x: Int = 1
+
+You typed two blank lines. Starting a new command.
+
+scala> // defining and using quoted names should work (ticket #323)
+
+scala> def `match` = 1
+match: Int
+
+scala> val x = `match`
+x: Int = 1
scala>
-scala>
-scala> defined class Exp
+
+scala> // multiple classes defined on one line
+
+scala> sealed class Exp; class Fact extends Exp; class Term extends Exp
+defined class Exp
defined class Fact
defined class Term
-scala> | | <console>:18: warning: match is not exhaustive!
+scala> def f(e: Exp) = e match { // non-exhaustive warning here
+ case _:Fact => 3
+}
+<console>:18: warning: match is not exhaustive!
missing combination Exp
missing combination Term
@@ -226,6 +364,7 @@ missing combination Term
f: (e: Exp)Int
scala>
+
scala>
plusOne: (x: Int)Int
res0: Int = 6
diff --git a/test/files/jvm/mkLibNatives.bat b/test/files/jvm/mkLibNatives.bat
index 100246af79..e11b6ee21c 100755
--- a/test/files/jvm/mkLibNatives.bat
+++ b/test/files/jvm/mkLibNatives.bat
@@ -4,6 +4,9 @@ rem ##########################################################################
rem # Author : Stephane Micheloud
rem ##########################################################################
+rem # For building the -64.dll, you need: Visual C++ Express, Microsoft SDK (to
+rem # get the 64bit compiler / libraries), adapt this script.
+
rem ##########################################################################
rem # variables
diff --git a/test/files/jvm/natives-64.dll b/test/files/jvm/natives-64.dll
new file mode 100644
index 0000000000..f892f088f5
--- /dev/null
+++ b/test/files/jvm/natives-64.dll
Binary files differ
diff --git a/test/files/neg/annot-nonconst.check b/test/files/neg/annot-nonconst.check
index 385f066baa..e4166e08b6 100644
--- a/test/files/neg/annot-nonconst.check
+++ b/test/files/neg/annot-nonconst.check
@@ -11,7 +11,7 @@ class Ann2(value: String) extends ClassfileAnnotation
annot-nonconst.scala:6: error: annotation argument needs to be a constant; found: n
@Length(n) def foo = "foo"
^
-annot-nonconst.scala:7: error: annotation argument needs to be a constant; found: null
+annot-nonconst.scala:7: error: annotation argument cannot be null
@Ann2(null) def bar = "bar"
^
two warnings found
diff --git a/test/files/neg/bug3736.check b/test/files/neg/bug3736.check
index 8a91088914..cc222d1221 100644
--- a/test/files/neg/bug3736.check
+++ b/test/files/neg/bug3736.check
@@ -1,6 +1,9 @@
bug3736.scala:4: error: super not allowed here: use this.isInstanceOf instead
def f2 = super.isInstanceOf[String]
^
+bug3736.scala:5: error: super not allowed here: use this.asInstanceOf instead
+ def f3 = super.asInstanceOf[AnyRef]
+ ^
bug3736.scala:6: error: super not allowed here: use this.== instead
def f4 = super.==(new AnyRef)
^
@@ -10,4 +13,4 @@ bug3736.scala:7: error: super not allowed here: use this.!= instead
bug3736.scala:8: error: super not allowed here: use this.## instead
def f6 = super.##
^
-four errors found
+5 errors found
diff --git a/test/files/neg/super-cast-or-test.check b/test/files/neg/super-cast-or-test.check
new file mode 100644
index 0000000000..8e5eed62bd
--- /dev/null
+++ b/test/files/neg/super-cast-or-test.check
@@ -0,0 +1,7 @@
+super-cast-or-test.scala:1: error: super not allowed here: use this.asInstanceOf instead
+trait A { def f = super.asInstanceOf[AnyRef] }
+ ^
+super-cast-or-test.scala:2: error: super not allowed here: use this.isInstanceOf instead
+trait B { def g = super.isInstanceOf[AnyRef] }
+ ^
+two errors found
diff --git a/test/files/neg/super-cast-or-test.scala b/test/files/neg/super-cast-or-test.scala
new file mode 100644
index 0000000000..a0f86d8081
--- /dev/null
+++ b/test/files/neg/super-cast-or-test.scala
@@ -0,0 +1,3 @@
+trait A { def f = super.asInstanceOf[AnyRef] }
+trait B { def g = super.isInstanceOf[AnyRef] }
+
diff --git a/test/files/neg/t3399.check b/test/files/neg/t3399.check
index eb6c679704..987da944c6 100644
--- a/test/files/neg/t3399.check
+++ b/test/files/neg/t3399.check
@@ -1,4 +1,4 @@
-t3399.scala:23: error: could not find implicit value for parameter e: =:=[Nats.Add[Nats._1,Nats._1],Nats._1]
+t3399.scala:23: error: Cannot prove that Nats.Add[Nats._1,Nats._1] =:= Nats._1.
implicitly[ Add[_1, _1] =:= _1]
^
one error found
diff --git a/test/files/neg/t3507.check b/test/files/neg/t3507.check
index 1246a20d09..ab38280c1f 100644
--- a/test/files/neg/t3507.check
+++ b/test/files/neg/t3507.check
@@ -1,4 +1,4 @@
-t3507.scala:13: error: could not find implicit value for evidence parameter of type Manifest[object _1.b.c]
+t3507.scala:13: error: No Manifest available for object _1.b.c.
mani/*[object _1.b.c]*/(c) // kaboom in manifestOfType / TreeGen.mkAttributedQualifier
^
one error found
diff --git a/test/files/neg/t4431.check b/test/files/neg/t4431.check
new file mode 100644
index 0000000000..7896ec1a62
--- /dev/null
+++ b/test/files/neg/t4431.check
@@ -0,0 +1,7 @@
+t4431.scala:5: error: class BB needs to be abstract, since there is a deferred declaration of method f which is not implemented in a subclass
+ class BB extends B { def f (): Unit }
+ ^
+t4431.scala:8: error: trait cannot redefine final method from class AnyRef
+ trait C { def wait (): Unit }
+ ^
+two errors found
diff --git a/test/files/neg/t4431.scala b/test/files/neg/t4431.scala
new file mode 100644
index 0000000000..5fbb239e04
--- /dev/null
+++ b/test/files/neg/t4431.scala
@@ -0,0 +1,16 @@
+object Test {
+ // this works.
+ class B { final def f(): Unit = () }
+ trait A extends B { def f (): Unit }
+ class BB extends B { def f (): Unit }
+
+ // this earns a VerifyError.
+ trait C { def wait (): Unit }
+ class D { }
+
+ def main(args: Array[String]): Unit = {
+ new B with A { }
+ new BB
+// new D with C { }
+ }
+}
diff --git a/test/files/pos/javaReadsSigs/fromjava.java b/test/files/pos/javaReadsSigs/fromjava.java
index d31244bb95..745fb84efd 100644
--- a/test/files/pos/javaReadsSigs/fromjava.java
+++ b/test/files/pos/javaReadsSigs/fromjava.java
@@ -1,16 +1,75 @@
+import scala.*;
+import scala.math.Ordering;
+import scala.math.Numeric;
+import scala.collection.Seq;
+import scala.collection.Traversable;
+import scala.collection.Traversable$;
+import scala.collection.immutable.Set;
+import scala.collection.immutable.HashSet;
+import scala.collection.immutable.Map;
+import scala.collection.immutable.Map$;
+import scala.collection.immutable.HashMap;
import scala.collection.immutable.Vector;
import scala.collection.immutable.List;
+import scala.collection.generic.CanBuildFrom;
-public class fromjava {
+class A { };
+class B { };
+
+// This one compiles but it would be better if it didn't.
+// Checking in under pos anyway in the interests of making sure
+// we are informed if the status changes.
+class Contra {
+ // Not an Ordering<Character>.
+ static Ordering<Object> charOrd = scala.math.Ordering$Char$.MODULE$;
+
+ public boolean useCharOrd() {
+ return charOrd.compare(new Object(), new Object()) == 0;
+ }
+
+ static Numeric<?> intNum = scala.math.Numeric$IntIsIntegral$.MODULE$;
+}
- void main(String[] args, Vector<String> x) {
- Vector<String> y = x.take(2);
- String h = y.head();
- System.out.println(h);
+public class fromjava {
+ public static Function1<A, B> f1 = new scala.runtime.AbstractFunction1<A, B>() {
+ public B apply(A a) {
+ return null;
}
- void main(String[] args, List<String> x) {
- List<String> y = x.drop(2);
- String h = y.head();
- System.out.println(h);
+ };
+
+ public static Function1<Tuple2<? extends Object, B>, B> f2 = new scala.runtime.AbstractFunction1<Tuple2<? extends Object, B>, B>() {
+ public B apply(Tuple2<? extends Object, B> tup) {
+ return tup._2();
}
+ };
+
+ public static String vector(Vector<String> x) {
+ Vector<String> y = x.take(2);
+ return y.head();
+ }
+ public static String list(List<String> x) {
+ List<String> y = x.drop(2);
+ return y.head();
+ }
+ public static Tuple2<String, Integer> map(Map<String, Integer> x) {
+ Traversable<Tuple2<String, Integer>> y = x.drop(2);
+ return y.head();
+ }
+ public static <T> Object sum(Traversable<T> x) {
+ return x.sum(Contra.intNum);
+ }
+ // Looks like sum as given below fails under java5, so disabled.
+ //
+ // [partest] testing: [...]/files/pos/javaReadsSigs [FAILED]
+ // [partest] files/pos/javaReadsSigs/fromjava.java:62: name clash: sum(scala.collection.Traversable<A>) and <T>sum(scala.collection.Traversable<T>) have the same erasure
+ // [partest] public static B sum(Traversable<A> x) {
+ // [partest] ^
+ //
+ //
+ // can't make this work with an actual CanBuildFrom: see #4389.
+ // public static B sum(Traversable<A> x) {
+ // // have to cast it unfortunately: map in TraversableLike returns
+ // // "That" and such types seem to be signature poison.
+ // return ((Traversable<B>)x.map(f1, null)).head();
+ // }
} \ No newline at end of file
diff --git a/test/files/presentation/find-trees.check b/test/files/presentation/find-trees.check
index 33213dd911..9f60d4fb52 100644
--- a/test/files/presentation/find-trees.check
+++ b/test/files/presentation/find-trees.check
@@ -3,4 +3,4 @@ asking position at 19:4
retrieved tree: InteractiveTest.this.settings
====================
asking position at 20:16
-retrieved tree: lazy private[this] var compiler: scala.tools.nsc.interactive.CompilerControl = new Global(InteractiveTest.this.settings, InteractiveTest.this.reporter)
+retrieved tree: lazy private[this] var compiler: scala.tools.nsc.interactive.CompilerControl = new Global(InteractiveTest.this.settings, InteractiveTest.this.reporter, interactive.this.Global.init$default$3)
diff --git a/test/files/run/bug3376.check b/test/files/run/bug3376.check
index 7286096022..3a1d7d581b 100644
--- a/test/files/run/bug3376.check
+++ b/test/files/run/bug3376.check
@@ -2,12 +2,17 @@ Type in expressions to have them evaluated.
Type :help for more information.
scala>
-scala> defined class M
-scala> m1: M[Int] = mmm
+scala> class M[@specialized T] { override def toString = "mmm" }
+defined class M
-scala> m2: M[Float] = mmm
+scala> val m1 = new M[Int]()
+m1: M[Int] = mmm
-scala> m3: M[String] = mmm
+scala> val m2 = new M[Float]()
+m2: M[Float] = mmm
+
+scala> val m3 = new M[String]()
+m3: M[String] = mmm
scala>
diff --git a/test/files/run/bug4080.check b/test/files/run/bug4080.check
new file mode 100644
index 0000000000..66ce31bb43
--- /dev/null
+++ b/test/files/run/bug4080.check
@@ -0,0 +1 @@
+LinkedList(1, 0, 2, 3)
diff --git a/test/files/run/bug4080.scala b/test/files/run/bug4080.scala
new file mode 100644
index 0000000000..92740ed776
--- /dev/null
+++ b/test/files/run/bug4080.scala
@@ -0,0 +1,12 @@
+import scala.collection.mutable.LinkedList
+
+object Test {
+ def main(args: Array[String]) {
+ val ll = LinkedList(1, 2, 3)
+ ll.insert(LinkedList(0))
+ println(ll)
+ val ll2 = LinkedList[Int]()
+ try println(ll2.head)
+ catch { case _ => () }
+ }
+}
diff --git a/test/files/run/bug4285.check b/test/files/run/bug4285.check
index 5a3c9811c3..84f8929e43 100644
--- a/test/files/run/bug4285.check
+++ b/test/files/run/bug4285.check
@@ -2,11 +2,16 @@ Type in expressions to have them evaluated.
Type :help for more information.
scala>
-scala> x: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7)
-scala> y: scala.collection.mutable.WrappedArray[Int] = WrappedArray(2, 4, 6, 8, 10, 12, 14)
+scala> val x = Array(1,2,3,4,5,6,7)
+x: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7)
-scala> 56
+scala> val y = x transform (_ * 2)
+y: scala.collection.mutable.WrappedArray[Int] = WrappedArray(2, 4, 6, 8, 10, 12, 14)
+
+scala> println(y.sum)
+56
scala>
+
scala>
diff --git a/test/files/run/bug4387.scala b/test/files/run/bug4387.scala
new file mode 100644
index 0000000000..f51c9b0572
--- /dev/null
+++ b/test/files/run/bug4387.scala
@@ -0,0 +1,12 @@
+object Test {
+ import xml.XML.loadString
+ def mkElem(arg: String) = <foo a="1" b="2" c="3" d="4" e={arg} />
+
+ val x1 = mkElem("5")
+ val x2 = mkElem("50")
+
+ def main(args: Array[String]): Unit = {
+ assert(x1 == loadString("" + x1))
+ assert(x2 != loadString("" + x1))
+ }
+}
diff --git a/test/files/run/constrained-types.check b/test/files/run/constrained-types.check
index e22e3a58d5..6919eca9bc 100644
--- a/test/files/run/constrained-types.check
+++ b/test/files/run/constrained-types.check
@@ -1,102 +1,110 @@
-class Annot(obj: Any) extends annotation.Annotation with annotation.TypeConstraint
+Type in expressions to have them evaluated.
+Type :help for more information.
+
+scala>
+
+scala>
+
+scala> class Annot(obj: Any) extends annotation.Annotation with annotation.TypeConstraint
defined class Annot
------
-class A {
+scala>
+
+scala> class A {
val x = "hello"
val y: Int @Annot(x) = 10
override def toString = "an A"
}
defined class A
------
-val a = new A
+scala>
+
+scala> val a = new A
a: A = an A
------
-val y = a.y // should rewrite "this.x" to "a.x"
+scala> val y = a.y // should rewrite "this.x" to "a.x"
y: Int @Annot(a.x) = 10
------
-var a2 = new A
+scala> var a2 = new A
a2: A = an A
------
-val y2 = a2.y // should drop the annotation
+scala> val y2 = a2.y // should drop the annotation
y2: Int = 10
------
-object Stuff {
+scala>
+
+scala> object Stuff {
val x = "hello"
val y : Int @Annot(x) = 10
}
defined module Stuff
------
-val y = Stuff.y // should rewrite the annotation
+scala>
+
+scala> val y = Stuff.y // should rewrite the annotation
y: Int @Annot(Stuff.x) = 10
------
-class B {
+scala>
+
+scala> class B {
val y: Int @Annot(Stuff.x) = 10
override def toString = "a B"
}
defined class B
------
-val b = new B
+scala>
+
+scala> val b = new B
b: B = a B
------
-val y = b.y // should keep the annotation
+scala> val y = b.y // should keep the annotation
y: Int @Annot(Stuff.x) = 10
------
-def m(x: String): String @Annot(x) = x
+scala> def m(x: String): String @Annot(x) = x
m: (x: String)String @Annot(x)
------
-val three = "three"
+scala>
+
+scala> val three = "three"
three: java.lang.String = three
------
-val three2 = m(three:three.type) // should change x to three
+scala> val three2 = m(three:three.type) // should change x to three
three2: String @Annot(three) = three
------
-var four = "four"
+scala> var four = "four"
four: java.lang.String = four
------
-val four2 = m(four) // should have an existential bound
+scala> val four2 = m(four) // should have an existential bound
four2: java.lang.String @Annot(x) forSome { val x: java.lang.String } = four
------
-val four3 = four2 // should have the same type as four2
+scala> val four3 = four2 // should have the same type as four2
four3: java.lang.String @Annot(x) forSome { val x: java.lang.String } = four
------
-val stuff = m("stuff") // should not crash
+scala> val stuff = m("stuff") // should not crash
stuff: String @Annot("stuff") = stuff
------
-class peer extends annotation.Annotation // should not crash
+scala>
+
+scala> class peer extends annotation.Annotation // should not crash
defined class peer
------
-class NPE[T <: NPE[T] @peer] // should not crash
+scala>
+
+scala> class NPE[T <: NPE[T] @peer] // should not crash
defined class NPE
------
-def m = {
+scala>
+
+scala> def m = {
val x = "three"
val y : String @Annot(x) = x
y
} // x should not escape the local scope with a narrow type
m: String @Annot("three")
------
-def n(y: String) = {
+scala>
+
+scala> def n(y: String) = {
def m(x: String) : String @Annot(x) = {
(if (x == "")
m("default")
@@ -107,30 +115,40 @@ def n(y: String) = {
} // x should be existentially bound
n: (y: String)java.lang.String @Annot(x) forSome { val x: String }
------
-class rep extends annotation.Annotation
+scala>
+
+scala> class rep extends annotation.Annotation { }
defined class rep
------
-object A { val x = "hello" : String @ rep }
+scala>
+
+scala> object A { val x = "hello" : String @ rep }
defined module A
+warning: previously defined class A is not a companion to object A.
+Companions must be defined together; you may wish to use :paste mode for this.
------
-val y = a.x // should drop the annotation
+scala>
+
+scala> val y = a.x // should drop the annotation
y: java.lang.String = hello
------
-val x = 3 : Int @Annot(e+f+g+h) //should have a graceful error message
+scala>
+
+scala> val x = 3 : Int @Annot(e+f+g+h) // should have a graceful error message
<console>:8: error: not found: value e
- val x = 3 : Int @Annot(e+f+g+h) //should have a graceful error message
+ val x = 3 : Int @Annot(e+f+g+h) // should have a graceful error message
^
------
-class Where(condition: Boolean) extends annotation.Annotation
+scala>
+
+scala> class Where(condition: Boolean) extends annotation.Annotation
defined class Where
------
-val x : Int @Where(self > 0 && self < 100) = 3
+scala>
+
+scala> val x : Int @Where(self > 0 && self < 100) = 3
x: Int @Where(self.>(0).&&(self.<(100))) = 3
------
+scala>
+
+scala>
diff --git a/test/files/run/constrained-types.scala b/test/files/run/constrained-types.scala
index 86fcaade6e..5f7eb7adde 100644
--- a/test/files/run/constrained-types.scala
+++ b/test/files/run/constrained-types.scala
@@ -3,103 +3,91 @@
* of DeBruijn's . It runs the test using the interpreter so that
* the resulting annotated types can be printed out.
*/
-import scala.tools.nsc._
-import java.io._
-import scala.Console
+import scala.tools.nsc.Settings
+import scala.tools.partest.ReplTest
-object Test {
+object Test extends ReplTest {
+ def code = """
- val testCode = List(
- "class Annot(obj: Any) extends annotation.Annotation with annotation.TypeConstraint",
+class Annot(obj: Any) extends annotation.Annotation with annotation.TypeConstraint
- """class A {
- | val x = "hello"
- | val y: Int @Annot(x) = 10
- | override def toString = "an A"
- |} """,
-
-
-
- "val a = new A",
-
- """val y = a.y // should rewrite "this.x" to "a.x" """,
-
-
- "var a2 = new A",
- "val y2 = a2.y // should drop the annotation",
-
-
- """object Stuff {
- | val x = "hello"
- | val y : Int @Annot(x) = 10
- |}""",
-
- "val y = Stuff.y // should rewrite the annotation",
+class A {
+ val x = "hello"
+ val y: Int @Annot(x) = 10
+ override def toString = "an A"
+}
- """class B {
- | val y: Int @Annot(Stuff.x) = 10
- | override def toString = "a B"
- |}""",
+val a = new A
+val y = a.y // should rewrite "this.x" to "a.x"
+var a2 = new A
+val y2 = a2.y // should drop the annotation
- "val b = new B",
- "val y = b.y // should keep the annotation",
+object Stuff {
+ val x = "hello"
+ val y : Int @Annot(x) = 10
+}
+val y = Stuff.y // should rewrite the annotation
- "def m(x: String): String @Annot(x) = x",
- "val three = \"three\"",
- "val three2 = m(three:three.type) // should change x to three",
- "var four = \"four\"",
- "val four2 = m(four) // should have an existential bound",
- "val four3 = four2 // should have the same type as four2",
+class B {
+ val y: Int @Annot(Stuff.x) = 10
+ override def toString = "a B"
+}
- """val stuff = m("stuff") // should not crash""",
+val b = new B
+val y = b.y // should keep the annotation
+def m(x: String): String @Annot(x) = x
+
+val three = "three"
+val three2 = m(three:three.type) // should change x to three
+var four = "four"
+val four2 = m(four) // should have an existential bound
+val four3 = four2 // should have the same type as four2
+val stuff = m("stuff") // should not crash
+
+class peer extends annotation.Annotation // should not crash
+
+class NPE[T <: NPE[T] @peer] // should not crash
+
+def m = {
+ val x = "three"
+ val y : String @Annot(x) = x
+ y
+} // x should not escape the local scope with a narrow type
+
+def n(y: String) = {
+ def m(x: String) : String @Annot(x) = {
+ (if (x == "")
+ m("default")
+ else
+ x)
+ }
+ m("stuff".stripMargin)
+} // x should be existentially bound
- """class peer extends annotation.Annotation // should not crash""", // reported by Manfred Stock
- """class NPE[T <: NPE[T] @peer] // should not crash""", // reported by Manfred Stock
+class rep extends annotation.Annotation { }
- """def m = {
- | val x = "three"
- | val y : String @Annot(x) = x
- | y
- |} // x should not escape the local scope with a narrow type""",
+object A { val x = "hello" : String @ rep }
- """def n(y: String) = {
- | def m(x: String) : String @Annot(x) = {
- | (if (x == "")
- | m("default")
- | else
- | x)
- | }
- | m("stuff".stripMargin)
- |} // x should be existentially bound""",
+val y = a.x // should drop the annotation
- "class rep extends annotation.Annotation",
- """object A { val x = "hello" : String @ rep }""",
- "val y = a.x // should drop the annotation",
+val x = 3 : Int @Annot(e+f+g+h) // should have a graceful error message
- "val x = 3 : Int @Annot(e+f+g+h) //should have a graceful error message",
+class Where(condition: Boolean) extends annotation.Annotation
- "class Where(condition: Boolean) extends annotation.Annotation",
- "val x : Int @Where(self > 0 && self < 100) = 3"
- ).map(_.stripMargin)
+val x : Int @Where(self > 0 && self < 100) = 3
+"""
+ override def settings: Settings = {
+ val s = new Settings
- def main(args: Array[String]) {
- val settings = new Settings
- settings.Xexperimental.value = true
- settings.selfInAnnots.value = true
- settings.deprecation.value = true
+ s.Xexperimental.value = true
+ s.selfInAnnots.value = true
+ s.deprecation.value = true
// when running that compiler, give it a scala-library to the classpath
- settings.classpath.value = System.getProperty("java.class.path")
-
- val interp = new Interpreter(settings)
+ s.classpath.value = sys.props("java.class.path")
- for (cmd <- testCode) {
- println(cmd)
- interp.interpret(cmd)
- println()
- println("-----")
- }
+ s
}
}
diff --git a/test/files/run/programmatic-main.scala b/test/files/run/programmatic-main.scala
index 3a88252fd3..7fec0f3f98 100644
--- a/test/files/run/programmatic-main.scala
+++ b/test/files/run/programmatic-main.scala
@@ -8,7 +8,7 @@ object Test {
def main(args: Array[String]): Unit = {
Console.withErr(Console.out) {
- Main process (baseargs ++ Array("-Xshow-phases"))
+ Main process (baseargs ++ "-Xpluginsdir /does/not/exist/foo/quux -Xshow-phases".split(' '))
}
}
}
diff --git a/test/files/run/repl-assign.check b/test/files/run/repl-assign.check
new file mode 100644
index 0000000000..c6b0458f04
--- /dev/null
+++ b/test/files/run/repl-assign.check
@@ -0,0 +1,20 @@
+Type in expressions to have them evaluated.
+Type :help for more information.
+
+scala>
+
+scala> var x = 10
+x: Int = 10
+
+scala> var y = 11
+y: Int = 11
+
+scala> x = 12
+x: Int = 12
+
+scala> y = 13
+y: Int = 13
+
+scala>
+
+scala>
diff --git a/test/files/run/repl-assign.scala b/test/files/run/repl-assign.scala
new file mode 100644
index 0000000000..ee3c1649d8
--- /dev/null
+++ b/test/files/run/repl-assign.scala
@@ -0,0 +1,10 @@
+import scala.tools.partest.ReplTest
+
+object Test extends ReplTest {
+ def code = """
+var x = 10
+var y = 11
+x = 12
+y = 13
+ """
+} \ No newline at end of file
diff --git a/test/files/run/repl-paste-2.check b/test/files/run/repl-paste-2.check
index fb7a818f1a..435592567d 100644
--- a/test/files/run/repl-paste-2.check
+++ b/test/files/run/repl-paste-2.check
@@ -2,30 +2,60 @@ Type in expressions to have them evaluated.
Type :help for more information.
scala>
-scala> // Replaying 7 commands from transcript.
-val res0 = { 123 }
-res0: Int = 123
+scala> scala> 0123
+res4: Int = 0123
-val res1 = { 567 }
-res1: Int = 567
+scala> 123
+res5: Int = 123
-val res2 = { res0 + res1 }
-res2: Int = 690
+scala> 567
+res6: Int = 567
-val x = dingus
+scala> res5 + res6
+res7: Int = 690
+
+scala> val x = dingus
+<console>:7: error: not found: value dingus
+ val x = dingus
+ ^
+
+scala> val x = "dingus"
+x: java.lang.String = dingus
+
+scala> x.length
+res9: Int = 6
+
+scala> x.length + res5
+res10: Int = 12
+
+// Replaying 8 commands from transcript.
+
+scala> 0123
+res0: Int = 83
+
+scala> val res5 = { 123 }
+res5: Int = 123
+
+scala> val res6 = { 567 }
+res6: Int = 567
+
+scala> res5 + res6
+res1: Int = 690
+
+scala> val x = dingus
<console>:7: error: not found: value dingus
val x = dingus
^
-val x = "dingus"
+scala> val x = "dingus"
x: java.lang.String = dingus
-val res3 = { x.length }
-res3: Int = 6
+scala> x.length
+res2: Int = 6
-val res4 = { x.length + res3 }
-res4: Int = 12
+scala> x.length + res5
+res3: Int = 129
scala>
diff --git a/test/files/run/repl-paste-2.scala b/test/files/run/repl-paste-2.scala
index 802c627701..f62927791d 100644
--- a/test/files/run/repl-paste-2.scala
+++ b/test/files/run/repl-paste-2.scala
@@ -2,14 +2,17 @@ import scala.tools.partest.ReplTest
object Test extends ReplTest {
def code = """
+scala> 0123
+res4: Int = 0123
+
scala> 123
-res0: Int = 123
+res5: Int = 123
scala> 567
-res1: Int = 567
+res6: Int = 567
-scala> res0 + res1
-res2: Int = 690
+scala> res5 + res6
+res7: Int = 690
scala> val x = dingus
<console>:7: error: not found: value dingus
@@ -20,9 +23,9 @@ scala> val x = "dingus"
x: java.lang.String = dingus
scala> x.length
-res3: Int = 6
+res9: Int = 6
-scala> x.length + res3
-res4: Int = 12
+scala> x.length + res5
+res10: Int = 12
"""
} \ No newline at end of file
diff --git a/test/files/run/repl-paste.check b/test/files/run/repl-paste.check
index 4c9de85e67..50589433cd 100644
--- a/test/files/run/repl-paste.check
+++ b/test/files/run/repl-paste.check
@@ -1,7 +1,21 @@
Type in expressions to have them evaluated.
Type :help for more information.
-scala> // Entering paste mode (ctrl-D to finish)
+scala> :paste
+// Entering paste mode (ctrl-D to finish)
+
+
+ class Dingus
+ {
+ private val x = 5
+ def y = Dingus.x * 2
+ }
+ object Dingus
+ {
+ private val x = 55
+ }
+
+ val x = (new Dingus).y
// Exiting paste mode, now interpreting.
diff --git a/test/files/run/repl-transcript.check b/test/files/run/repl-transcript.check
index b2a8d2e156..03162451b6 100644
--- a/test/files/run/repl-transcript.check
+++ b/test/files/run/repl-transcript.check
@@ -2,21 +2,36 @@ Type in expressions to have them evaluated.
Type :help for more information.
scala>
-scala> // Replaying 5 commands from transcript.
-class Bippity
+scala> scala> class Bippity
defined class Bippity
-def f = new Bippity
+scala> def f = new Bippity
f: Bippity
-val res5 = { 123 }
+scala> 123
res5: Int = 123
-val res6 = { 1 to 100 map (_ + 1) }
+scala> 1 to 100 map (_ + 1)
res6: scala.collection.immutable.IndexedSeq[Int] = Vector(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101)
-res6.sum + res5
+scala> res6.sum + res5
+
+// Replaying 5 commands from transcript.
+
+scala> class Bippity
+defined class Bippity
+
+scala> def f = new Bippity
+f: Bippity
+
+scala> val res5 = { 123 }
+res5: Int = 123
+
+scala> val res6 = { 1 to 100 map (_ + 1) }
+res6: scala.collection.immutable.IndexedSeq[Int] = Vector(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101)
+
+scala> res6.sum + res5
res0: Int = 5273
diff --git a/test/files/run/t3361.scala b/test/files/run/t3361.scala
index 17af89a67c..892e36dbd9 100644
--- a/test/files/run/t3361.scala
+++ b/test/files/run/t3361.scala
@@ -39,10 +39,8 @@ object Test extends App {
def insert_1 {
val ten = DoubleLinkedList(1 to 10: _*)
- ten.insert(DoubleLinkedList(11)) match {
- case _: Unit => require(true)
- case _ => require(false)
- }
+ ten.append(DoubleLinkedList(11))
+
// Post-insert size test
require(11 == ten.size)
// Post-insert data test
diff --git a/test/files/run/t4396.check b/test/files/run/t4396.check
new file mode 100644
index 0000000000..58f4fc5138
--- /dev/null
+++ b/test/files/run/t4396.check
@@ -0,0 +1,5 @@
+hallo
+constructor
+out:22
+bye
+foo
diff --git a/test/files/run/t4396.scala b/test/files/run/t4396.scala
new file mode 100644
index 0000000000..d67eaa378e
--- /dev/null
+++ b/test/files/run/t4396.scala
@@ -0,0 +1,35 @@
+// #43896
+trait M extends DelayedInit {
+ def delayedInit(body : => Unit) {
+ println("hallo")
+ body
+ println("bye")
+ }
+}
+
+class C(init : Int) extends M {
+ def foo = init
+ println("constructor")
+ var x = init
+ println("out:"+x)
+}
+
+// #4380
+object Main {
+ def main(argv: Array[String]) {
+ class Bip {
+ class Foo { override def toString() = "foo" }
+ object Main extends App {
+ val cbn = new Foo()
+ }
+ Main.main(Array())
+ println(Main.cbn)
+ }
+ new Bip
+ }
+}
+
+object Test extends App {
+ new C(22)
+ Main.main(Array())
+}
diff --git a/test/files/run/treePrint.scala b/test/files/run/treePrint.scala
index ce7dd04499..452aaf390d 100644
--- a/test/files/run/treePrint.scala
+++ b/test/files/run/treePrint.scala
@@ -35,7 +35,7 @@ object Test {
settings.Ycompacttrees.value = true
val intp = new IMain(settings, new PrintWriter(new NullOutputStream))
- val power = new Power(intp)
+ val power = Power(intp)
intp.interpret("""def initialize = "Have to interpret something or we get errors." """)
power trees code foreach println
}
diff --git a/test/partest b/test/partest
index 5f89588d1f..44f7130968 100755
--- a/test/partest
+++ b/test/partest
@@ -74,8 +74,7 @@ if $cygwin; then
EXT_CLASSPATH=`cygpath --path --$format "$EXT_CLASSPATH"`
fi
-# Reminder: substitution ${JAVA_OPTS:=-Xmx256M -Xms16M} DO NOT work on Solaris
-[ -n "$JAVA_OPTS" ] || JAVA_OPTS="-Xmx512M -Xms16M"
+[ -n "$JAVA_OPTS" ] || JAVA_OPTS="-Xmx1024M -Xms16M"
[ -n "$SCALAC_OPTS" ] || SCALAC_OPTS="-deprecation"
partestDebugStr=""
diff --git a/test/scaladoc/resources/Trac3484.scala b/test/scaladoc/resources/Trac3484.scala
new file mode 100644
index 0000000000..9656ec268d
--- /dev/null
+++ b/test/scaladoc/resources/Trac3484.scala
@@ -0,0 +1,27 @@
+class cbf[A, B, C]
+
+/**
+ * @define Coll Traversable
+ * @define bfreturn $Coll
+ */
+class Collection[A] {
+ /** What map does...
+ *
+ * $bfreturn
+ * @usecase def map[B](f: A => B): $bfreturn[B]
+ *
+ */
+ def map[B, That](f: A => B)(implicit fact: cbf[Collection[A], B, That]) =
+ null
+}
+
+/**
+ * @define b John
+ * @define a Mister $b
+ */
+class SR704 {
+ /**
+ * Hello $a.
+ */
+ def foo = 123
+}
diff --git a/test/scaladoc/resources/Trac4180.scala b/test/scaladoc/resources/Trac4180.scala
new file mode 100644
index 0000000000..3d6922803b
--- /dev/null
+++ b/test/scaladoc/resources/Trac4180.scala
@@ -0,0 +1,4 @@
+trait Trac4180 {
+ type A
+ object A
+}
diff --git a/test/scaladoc/resources/Trac4289.scala b/test/scaladoc/resources/Trac4289.scala
new file mode 100644
index 0000000000..1644e18bd4
--- /dev/null
+++ b/test/scaladoc/resources/Trac4289.scala
@@ -0,0 +1,13 @@
+class Superclass {
+ /**
+ * @return 123
+ */
+ def foo = 123
+}
+
+class Subclass extends Superclass {
+ /**
+ * hello
+ */
+ override def foo = 456
+}
diff --git a/test/scaladoc/resources/Trac4325.scala b/test/scaladoc/resources/Trac4325.scala
new file mode 100644
index 0000000000..ffb968d571
--- /dev/null
+++ b/test/scaladoc/resources/Trac4325.scala
@@ -0,0 +1,5 @@
+case class WithSynthetic
+
+case class WithObject
+object WithObject
+
diff --git a/test/scaladoc/resources/Trac4358.scala b/test/scaladoc/resources/Trac4358.scala
new file mode 100644
index 0000000000..961c82160e
--- /dev/null
+++ b/test/scaladoc/resources/Trac4358.scala
@@ -0,0 +1,8 @@
+trait Trac4358 {
+ /**
+ * Implicit conversion that invokes the <code>expect</code> method on the <code>EasyMock</code> companion object (<em>i.e.</em>, the
+ * static <code>expect</code> method in Java class <code>org.easymock.EasyMock</code>).
+ *
+ */
+ val foo = 123
+}
diff --git a/test/scaladoc/resources/Trac4372.scala b/test/scaladoc/resources/Trac4372.scala
new file mode 100644
index 0000000000..03da659eee
--- /dev/null
+++ b/test/scaladoc/resources/Trac4372.scala
@@ -0,0 +1,5 @@
+class Trac4372 {
+ def method(n: Int) = n
+ def +:(n: Int) = n
+ val -: = 1
+}
diff --git a/test/scaladoc/resources/Trac4374.scala b/test/scaladoc/resources/Trac4374.scala
new file mode 100644
index 0000000000..4dd8ba2ae8
--- /dev/null
+++ b/test/scaladoc/resources/Trac4374.scala
@@ -0,0 +1,5 @@
+class WithPublic
+object WithPublic
+
+class WithPrivate
+private object WithPrivate
diff --git a/test/scaladoc/resources/Trac4409.scala b/test/scaladoc/resources/Trac4409.scala
new file mode 100644
index 0000000000..f93d3e238e
--- /dev/null
+++ b/test/scaladoc/resources/Trac4409.scala
@@ -0,0 +1,14 @@
+/**
+ * @define xxx
+ *
+ * The value of xxx don't contain since tag.
+ *
+ * @since 1.0
+ */
+
+class Trac4409 {
+ /**
+ * $xxx
+ */
+ def foo = 123
+}
diff --git a/test/scaladoc/resources/Trac4420.scala b/test/scaladoc/resources/Trac4420.scala
new file mode 100644
index 0000000000..dbe053f3da
--- /dev/null
+++ b/test/scaladoc/resources/Trac4420.scala
@@ -0,0 +1,14 @@
+import java.io.File
+
+/**
+ * @define PP This class is an instance of XXX so it's members are not called directly.
+ * Instead these classes are instantiated via a driver's ''process''. See YYY for more details. */
+abstract class test
+
+/**
+ * TestA class
+ *
+ * this is a description.
+ *
+ * $PP */
+class TestA extends test
diff --git a/test/scaladoc/resources/Trac484.scala b/test/scaladoc/resources/Trac484.scala
new file mode 100644
index 0000000000..b4f81ae172
--- /dev/null
+++ b/test/scaladoc/resources/Trac484.scala
@@ -0,0 +1,18 @@
+class RefinementAndExistentials {
+ type Foo = {
+ type Dingus
+ def bippy(x: Int): String
+ def dingus(): String
+ }
+ type Bar = {
+ type Dingus <: T forSome { type T <: String }
+ }
+ def f(x: Foo) = 51
+ def g(x: T forSome { type T <: String }) = x
+ def h(x: Float): { def quux(x: Int, y: Int): Int } = new {
+ def quux(x: Int, y: Int) = 55
+ }
+ def hh(x: Float) = new { def quux(x: Int, y: Int) = 55 }
+ def j(x: Int): Bar = sys.error("")
+ def k(): AnyRef { type Dingus <: T forSome { type T <: String } } = sys.error("")
+}
diff --git a/test/scaladoc/scala/html/HtmlFactoryTest.scala b/test/scaladoc/scala/html/HtmlFactoryTest.scala
index ecdbb3cf46..c0a3f1ad95 100644
--- a/test/scaladoc/scala/html/HtmlFactoryTest.scala
+++ b/test/scaladoc/scala/html/HtmlFactoryTest.scala
@@ -18,23 +18,6 @@ object XMLUtil {
case _ => seq
}
}
-
- def attributeIs(key: String, value: String) = {
- (element: Node) => {
- element.attribute(key) match {
- case Some(v) =>
- v.toString == value
- case _ =>
- false
- }
- }
- }
-
- def textIs(value: String) = {
- (node: Node) => {
- node.descendant.exists((n) => n.toString.trim == value)
- }
- }
}
object Test extends Properties("HtmlFactory") {
@@ -52,18 +35,18 @@ object Test extends Properties("HtmlFactory") {
(paths ++ morepaths).mkString(java.io.File.pathSeparator)
}
- def createTemplates(basename: String) = {
- val result = scala.collection.mutable.Map[String, scala.xml.NodeSeq]()
+ def createFactory = {
+ val settings = new Settings({Console.err.println(_)})
+ settings.classpath.value = getClasspath
- val factory = {
- val settings = new Settings({Console.err.println(_)})
- settings.classpath.value = getClasspath
+ val reporter = new scala.tools.nsc.reporters.ConsoleReporter(settings)
+ new DocFactory(reporter, settings)
+ }
- val reporter = new scala.tools.nsc.reporters.ConsoleReporter(settings)
- new DocFactory(reporter, settings)
- }
+ def createTemplates(basename: String) = {
+ val result = scala.collection.mutable.Map[String, scala.xml.NodeSeq]()
- factory.makeUniverse(List("test/scaladoc/resources/"+basename)) match {
+ createFactory.makeUniverse(List("test/scaladoc/resources/"+basename)) match {
case Some(universe) => {
val index = IndexModelFactory.makeIndex(universe)
(new HtmlFactory(universe, index)).writeTemplates((page) => {
@@ -76,19 +59,30 @@ object Test extends Properties("HtmlFactory") {
result
}
- property("Trac #3790") = {
- import XMLUtil._
+ def createTemplate(scala: String) = {
+ val html = scala.stripSuffix(".scala") + ".html"
+ createTemplates(scala)(html)
+ }
- val files = createTemplates("Trac3790.scala")
- files("Trac3790.html") match {
+ def shortComments(root: scala.xml.Node) =
+ XMLUtil.stripGroup(root).descendant.flatMap {
+ case e: scala.xml.Elem => {
+ if (e.attribute("class").toString.contains("shortcomment")) {
+ Some(e)
+ } else {
+ None
+ }
+ }
+ case _ => None
+ }
+
+ property("Trac #3790") = {
+ createTemplate("Trac3790.scala") match {
case node: scala.xml.Node => {
- val comments = (stripGroup(node) \\ "div").flatMap {
- case e: scala.xml.Elem => Some(e)
- case _ => None
- }.filter { attributeIs("class", "fullcomment")(_) }
+ val comments = shortComments(node)
- comments.filter(textIs("A lazy String")(_)).length == 1 &&
- comments.filter(textIs("A non-lazy String")(_)).length == 1
+ comments.exists { _.toString.contains(">A lazy String\n</p>") } &&
+ comments.exists { _.toString.contains(">A non-lazy String\n</p>") }
}
case _ => false
}
@@ -100,28 +94,176 @@ object Test extends Properties("HtmlFactory") {
}
property("Trac #4366") = {
- val files = createTemplates("Trac4366.scala")
- files("Trac4366.html") match {
+ createTemplate("Trac4366.scala") match {
case node: scala.xml.Node => {
- val comments = XMLUtil.stripGroup(node).descendant.flatMap {
- case e: scala.xml.Elem => {
- if (e.attribute("class").toString.contains("shortcomment")) {
- Some(e)
- } else {
- None
- }
- }
- case _ => None
+ shortComments(node).exists { n => {
+ val str = n.toString
+ str.contains("<code>foo</code>") && str.contains("</strong>")
+ } }
+ }
+ case _ => false
+ }
+ }
+
+ property("Trac #4358") = {
+ createTemplate("Trac4358.scala") match {
+ case node: scala.xml.Node =>
+ ! shortComments(node).exists {
+ _.toString.contains("<em>i.</em>")
}
+ case _ => false
+ }
+ }
+
+ property("Trac #4180") = {
+ createTemplate("Trac4180.scala") != None
+ }
- comments.exists {
- (e) => {
- val s = e.toString
- s.contains("<code>foo</code>") && s.contains("</strong>")
- }
+ property("Trac #4372") = {
+ createTemplate("Trac4372.scala") match {
+ case node: scala.xml.Node => {
+ val html = node.toString
+ html.contains("<span class=\"name\">+:</span>\n") &&
+ html.contains("<span class=\"name\">-:</span>\n") &&
+ html.contains("""<span class="params">(<span name="n">n: <span name="scala.Int" class="extype">Int</span></span>)</span><span class="result">: <span name="scala.Int" class="extype">Int</span></span>""")
+ }
+ case _ => false
+ }
+ }
+
+ property("Trac #4374 - public") = {
+ val files = createTemplates("Trac4374.scala")
+ files("WithPublic.html") match {
+ case node: scala.xml.Node => {
+ val s = node.toString
+ s.contains("""href="WithPublic$.html"""") &&
+ files.get("WithPublic$.html") != None
+ }
+ case _ => false
+ }
+ }
+
+ property("Trac #4374 - private") = {
+ val files = createTemplates("Trac4374.scala")
+ files("WithPrivate.html") match {
+ case node: scala.xml.Node => {
+ val s = node.toString
+ ! s.contains("""href="WithPrivate$.html"""") &&
+ files.get("WithPrivate$.html") == None
+ }
+ case _ => false
+ }
+ }
+
+ property("Trac #3484") = {
+ val files = createTemplates("Trac3484.scala")
+
+ files("Collection.html") match {
+ case node: scala.xml.Node => {
+ val s = node.toString
+ s.contains("""<span class="result">: Traversable[B]</span>""")
+ }
+ case _ => false
+ }
+ }
+
+ property("Trac #3484 - SR704") = {
+ val files = createTemplates("Trac3484.scala")
+
+ files("SR704.html") match {
+ case node: scala.xml.Node => {
+ val s = node.toString
+ s.contains("Hello Mister John.")
+ }
+ case _ => false
+ }
+ }
+
+ property("Trac #4325 - files") = {
+ val files = createTemplates("Trac4325.scala")
+
+ files.get("WithSynthetic.html") != None &&
+ files.get("WithSynthetic$.html") == None &&
+ files.get("WithObject.html") != None &&
+ files.get("WithObject$.html") != None
+ }
+
+ property("Trac #4325 - Don't link to syntetic companion") = {
+ val files = createTemplates("Trac4325.scala")
+
+ files("WithSynthetic.html") match {
+ case node: scala.xml.Node => {
+ val s = node.toString
+ ! s.contains("""href="WithSynthetic$.html"""")
+ }
+ case _ => false
+ }
+ }
+
+ property("Trac #4325 - Link to companion") = {
+ val files = createTemplates("Trac4325.scala")
+
+ files("WithObject.html") match {
+ case node: scala.xml.Node => {
+ val s = node.toString
+ s.contains("""href="WithObject$.html"""")
+ }
+ case _ => false
+ }
+ }
+
+ property("Trac #4420 - no whitespace at end of line") = {
+ val files = createTemplates("Trac4420.scala")
+
+ files("TestA.html") match {
+ case node: scala.xml.Node => {
+ val s = node.toString
+ s.contains("""See YYY for more details""")
+ }
+ case _ => false
+ }
+ }
+
+ property("Trac #484 - refinements and existentials") = {
+ val files = createTemplates("Trac484.scala")
+ val lines = """
+ |type Bar = AnyRef { type Dingus <: T forSome { type T <: String } }
+ |type Foo = AnyRef { ... /* 3 definitions in type refinement */ }
+ |def g (x: T forSome { type T <: String }): String
+ |def h (x: Float): AnyRef { def quux(x: Int,y: Int): Int }
+ |def hh (x: Float): AnyRef { def quux(x: Int,y: Int): Int }
+ |def j (x: Int): Bar
+ |def k (): AnyRef { type Dingus <: T forSome { type T <: String } }
+ """.stripMargin.trim.lines map (_.trim)
+
+ files("RefinementAndExistentials.html") match {
+ case node: scala.xml.Node => {
+ val s = node.text.replaceAll("\\s+", " ")
+ lines forall (s contains _)
+ }
+ case _ => false
+ }
+ }
+
+ property("Trac #4289") = {
+ val files = createTemplates("Trac4289.scala")
+
+ files("Subclass.html") match {
+ case node: scala.xml.Node => {
+ node.toString.contains {
+ """<dt>returns</dt><dd class="cmt"><p>123</p></dd>"""
}
}
case _ => false
}
}
+
+ property("Trac #4409") = {
+ createTemplate("Trac4409.scala") match {
+ case node: scala.xml.Node => {
+ ! node.toString.contains("""<div class="block"><ol>since""")
+ }
+ case _ => false
+ }
+ }
}
diff --git a/test/scaladoc/scala/model/CommentFactoryTest.scala b/test/scaladoc/scala/model/CommentFactoryTest.scala
index 25a91b1fa2..9f60d2a1b7 100644
--- a/test/scaladoc/scala/model/CommentFactoryTest.scala
+++ b/test/scaladoc/scala/model/CommentFactoryTest.scala
@@ -92,11 +92,9 @@ object Test extends Properties("CommentFactory") {
*
*/""",
Chain(List(Text(""), Text("\n"),
- HtmlTag("<pre>"), Text("\n"),
- Text("hello "), Chain(List(Text("^"),
- Chain(List(Text("world"),
- Text("\n"),
- HtmlTag("</pre>")))))))
+
+
+ HtmlTag("<pre>\nhello ^world\n</pre>")))
)
property("Trac #4366 - body") = {
@@ -109,8 +107,7 @@ object Test extends Properties("CommentFactory") {
)
body == Body(List(Paragraph(Chain(List(
- Summary(Chain(List(Chain(List(HtmlTag("<strong>"), HtmlTag("<code>foo</code>"), Text(" has been deprecated and will be removed in a future version"))), Text(".")))),
- Chain(List(Text(" Please call "), HtmlTag("<code>bar</code>"), Text(" instead."), HtmlTag("</strong>"), Text("\n"), Text("")))
+ Summary(Chain(List(HtmlTag("<strong><code>foo</code> has been deprecated and will be removed in a future version. Please call <code>bar</code> instead.</strong>"), Text("\n"), Text(""))))
)))))
}
@@ -122,7 +119,37 @@ object Test extends Properties("CommentFactory") {
*/
"""
)
+ body.summary == Some(Chain(List(HtmlTag("<strong><code>foo</code> has been deprecated and will be removed in a future version. Please call <code>bar</code> instead.</strong>"), Text("\n"), Text(""))))
+ }
- body.summary == Some(Chain(List(Chain(List(HtmlTag("<strong>"), HtmlTag("<code>foo</code>"), Text(" has been deprecated and will be removed in a future version"))), Text("."))))
+ property("Trac #4358 - body") = {
+ factory.createBody(
+ """
+ /**
+ * Implicit conversion that invokes the <code>expect</code> method on the <code>EasyMock</code> companion object (<em>i.e.</em>, the
+ * static <code>expect</code> method in Java class <code>org.easymock.EasyMock</code>).
+ */
+ """
+ ) match {
+ case Body(List(Paragraph(Chain(List(Summary(Chain(List(Chain(List(
+ Text("Implicit conversion that invokes the "),
+ HtmlTag("<code>expect</code>"),
+ Text(" method on the "),
+ HtmlTag("<code>EasyMock</code>"),
+ Text(" companion object ("),
+ HtmlTag("<em>i.e.</em>"),
+ Text(", the\nstatic "),
+ HtmlTag("<code>expect</code>"),
+ Text(" method in Java class "),
+ HtmlTag("<code>org.easymock.EasyMock</code>"),
+ Text(")")
+ )), Text(".")))), Text("\n")))))) =>
+ true
+ case other => {
+ println(other)
+ false
+ }
+ }
}
+
}