Upcoming 2.9.0.RC1 (take 2)

84 views
Skip to first unread message

Antonio Cunei

unread,
Mar 16, 2011, 6:03:41 PM3/16/11
to scala-i...@googlegroups.com
All,

After a bit of additional time spent on fixing tickets and improving
features, we are aiming to get an RC1 release next week.

According to the messages I have seen so far, and the present status of
the code, I currently have this list of tickets that are still open, and
that various people considered important to address before the release
of RC1:

http://lampsvn.epfl.ch/trac/scala/ticket/4205 (assigned moors)
http://lampsvn.epfl.ch/trac/scala/ticket/4202 (assigned plocinic)
http://lampsvn.epfl.ch/trac/scala/ticket/4012 (assigned dragos)
http://lampsvn.epfl.ch/trac/scala/ticket/4248 (assigned cunei)
http://lampsvn.epfl.ch/trac/scala/ticket/3623 (assigned extempore)
http://lampsvn.epfl.ch/trac/scala/ticket/4214 (assigned extempore)
http://lampsvn.epfl.ch/trac/scala/ticket/4305 (assigned moors)
http://lampsvn.epfl.ch/trac/scala/ticket/4337 (pending)

Anything else? Please let me know if you have additional issues that
should definitely be addressed before 2.9.0, or if there is any further
code that you think should go in and that is currently still pending.

Thanks!
Toni

Seth Tisue

unread,
Mar 16, 2011, 6:41:27 PM3/16/11
to scala-i...@googlegroups.com
>>>>> "Antonio" == Antonio Cunei <antoni...@epfl.ch> writes:

Antonio> Anything else? Please let me know if you have additional
Antonio> issues that should definitely be addressed before 2.9.0, or if
Antonio> there is any further code that you think should go in and that
Antonio> is currently still pending.

I reviewed my list of watched tickets and the only one that jumped out
at me as possibly missing from your list is
http://lampsvn.epfl.ch/trac/scala/ticket/2671

fwiw, NetLogo seems to be running fine on the recent nightlies.
Libraries and tools we're using with 2.9 include sbt, ScalaTest,
ScalaCheck, and ProGuard.

--
Seth Tisue @ Northwestern University | http://tisue.net
lead developer, NetLogo: http://ccl.northwestern.edu/netlogo/

Antonio Cunei

unread,
Mar 16, 2011, 6:52:07 PM3/16/11
to scala-i...@googlegroups.com
On 16/03/2011 23:41, Seth Tisue wrote:
> I reviewed my list of watched tickets and the only one that jumped out
> at me as possibly missing from your list is
> http://lampsvn.epfl.ch/trac/scala/ticket/2671
>

Absolutely, thanks! I actually meant to include this one rather than
#4248 (but #4248 will be addressed as well).

> fwiw, NetLogo seems to be running fine on the recent nightlies.
> Libraries and tools we're using with 2.9 include sbt, ScalaTest,
> ScalaCheck, and ProGuard.
>

Excellent! :)
Thanks,
Toni

Josh Suereth

unread,
Mar 16, 2011, 8:25:38 PM3/16/11
to scala-i...@googlegroups.com, Antonio Cunei
I'm not sure what the priority is, but this one blocks Scala from using a few of our libs at work: https://lampsvn.epfl.ch/trac/scala/ticket/4283

Donna Malayeri

unread,
Mar 16, 2011, 9:41:15 PM3/16/11
to scala-i...@googlegroups.com
Unfortunately, according to Martin at last week's meeting, this one will be quite complicated to fix, due to the phase in which the cast is inserted. Since it requires such a big change, I strongly doubt it can be fixed for 2.9.0.

Donna

Bill Venners

unread,
Mar 17, 2011, 1:59:41 AM3/17/11
to scala-i...@googlegroups.com
Hi Antonio,

Is there a Maven repo with the latest 2.9.0 build? I keep hearing
people mention 2.9.0-SNAPSHOT, but I can't find any info on where it
is on scala-lang.org.

Thanks.

Bill

--
Bill Venners
Artima, Inc.
http://www.artima.com

Antonio Cunei

unread,
Mar 17, 2011, 2:21:53 AM3/17/11
to scala-i...@googlegroups.com
Hi Bill,

It's on scala-tools.org:

http://scala-tools.org/repo-snapshots/org/scala-lang/scala-compiler/2.9.0-SNAPSHOT/

You are right that it is not very visible on scala-lang; I'll add this
information to the page on nightly builds.
Toni

Bill Venners

unread,
Mar 17, 2011, 11:26:34 PM3/17/11
to scala-i...@googlegroups.com
Hi,

This bug has been reclassified as an enhancement, but this is clearly a bug:

https://lampsvn.epfl.ch/trac/scala/ticket/4233

If you look at just about any class or trait in this documentation,
which I built off of 2.9.0-SNAPSHOT, at least on Safari on the Mac,
you get a complete duplicate of the entire class or trait
documentation. The second one is indented slightly.

http://www.artima.com/scaladocprobs/

I did discover tonight that if I click in just the right place, the
lower one disappears magically. But I had to really hunt for that.
When I click again the whole thing bounces and then moves into a
different position, but still doesn't show the second copy. It took me
months before I realized if I clicked in one spot the duplicate copy
would vanish.

In the method descriptions there's also duplication. It looks really
stupid and amateurish. If this can't be fixed in JavaScript then you
should dump the JavaScript. JavaDoc works just fine by showing a table
of summaries and when you click on one it hops to a spot farther down
that has the detailed description. By trying to fix something that
wasn't broken you broke something that worked.

A few more that we will report as bugs tomorrow are:

1. &#8212; shows up in the output rather than being used as an HTML
entity. An example is here (search for 8212):

http://www.artima.com/scaladocprobs/org/scalatest/matchers/MatchResult.html

&#8220; and &#8221; have the same problem. An example is on this page
(search for 8221):

http://www.artima.com/scaladocprobs/org/scalatest/FunSuite.html

We submitted a bug report that entities weren't working inside <pre>
sections which may have been fixed, but if so we should have simply
said HTML entities don't work.

2. <em>i.e.</em> causes everything after the i. in the same paragraph
to be dropped, and the rest of the entire page to show up in italics.
An example is on the call method documentation on this page:

http://www.artima.com/scaladocprobs/org/scalatest/mock/EasyMockSugar.html

3. Any equals method has this:

The default implementations of this method is an
[http://en.wikipedia.org/wiki/Equivalence_relation equivalence
relation]: * It is reflexive: for any instance x of type Any,
x.equals(x) should return true. * It is symmetric: for any instances x
and y of type Any, x.equals(y) should return true if and only if
y.equals(x) returns true. * It is transitive: for any instances x, y,
and z of type AnyRef if x.equals(y) returns true and y.equals(z)
returns true, then x.equals(z) should return true.

Nice link to wikipedia there, except it isn't a link.

4. In JMockSugar. some of the methods take a Matcher, but it just says
Matcher. Well that's a org.hamcrest.Matcher, not a
org.scalatest.Matcher, and there's no way to tell from the
documentation. Example:

http://www.artima.com/scaladocprobs/org/scalatest/mock/JMockExpectations.html

So probably there's a general problem with figuring out when to show a
fully qualified name and when not to.

5. I have carat symbols (^) in the code examples on this page:

http://www.artima.com/scaladocprobs/org/scalatest/verb/CanVerb.html

But they are just dropped from the output. I use them to point to
things all over the place. You can see the same thing here:

http://www.artima.com/scaladocprobs/org/scalatest/matchers/Matchers$ResultOfNotWordForTraversable.html

In the ScalaDoc source I point to the exact part of the DSL syntax
that each method supports. And that's thrown away.

I've spent a lot of time today looking through trying to find
remaining problems, but I've probably missed some. In 2.8 several
large swaths of documentation were just dropped from the output, and I
didn't notice for a long time. I think those bugs are fixed. But
hopefully there aren't too many things I've missed.

I've gotten the vibe from EPFL that something like documentation is
very low priority. I understand they aren't as important as parallel
collecitons. But all these problems made ScalaTest much harder to use
since 2.8, and I think the state of Scaladoc in general reflects badly
on Scala itself. We'll submit more bugs tomorrow, and I hope you can
fix them in 2.9.0, because i don't think they'll take long to fix and
they are in a tool off to the side.

Thanks.

Bill

On Wed, Mar 16, 2011 at 3:03 PM, Antonio Cunei <antoni...@epfl.ch>
wrote:

--

Kato Kazuyoshi

unread,
Mar 18, 2011, 4:28:28 AM3/18/11
to scala-i...@googlegroups.com
Hi, I'm Kato Kazuyoshi. non-EPFL committer of Scaladoc.

On Fri, Mar 18, 2011 at 12:26 PM, Bill Venners <bi...@artima.com> wrote:
>
> This bug has been reclassified as an enhancement, but this is clearly a bug:
>
> https://lampsvn.epfl.ch/trac/scala/ticket/4233
>
> If you look at just about any class or trait in this documentation,
> which I built off of 2.9.0-SNAPSHOT, at least on Safari on the Mac,
> you get a complete duplicate of the entire class or trait
> documentation. The second one is indented slightly.
>
> http://www.artima.com/scaladocprobs/
>
> I did discover tonight that if I click in just the right place, the
> lower one disappears magically. But I had to really hunt for that.
> When I click again the whole thing bounces and then moves into a
> different position, but still doesn't show the second copy. It took me
> months before I realized if I clicked in one spot the duplicate copy
> would vanish.
>
> In the method descriptions there's also duplication. It looks really
> stupid and amateurish. If this can't be fixed in JavaScript then you
> should dump the JavaScript. JavaDoc works just fine by showing a table
> of summaries and when you click on one it hops to a spot farther down
> that has the detailed description. By trying to fix something that
> wasn't broken you broke something that worked.
>

Very sorry. I'll fix this as soon as possible.

Thank you for reporting. I'll see these problems.

> I've gotten the vibe from EPFL that something like documentation is
> very low priority. I understand they aren't as important as parallel
> collecitons. But all these problems made ScalaTest much harder to use
> since 2.8, and I think the state of Scaladoc in general reflects badly
> on Scala itself. We'll submit more bugs tomorrow, and I hope you can
> fix them  in 2.9.0, because i don't think they'll take long to fix and
> they are in a tool off to the side.

I can't feel the vibe. Probably, Switzerland is too far from Japan :)

Regards,

--
Kato Kazuyoshi

Grzegorz Balcerek

unread,
Mar 17, 2011, 5:46:23 PM3/17/11
to scala-i...@googlegroups.com
Antonio,

This one http://lampsvn.epfl.ch/trac/scala/ticket/4350 is related to:

> http://lampsvn.epfl.ch/trac/scala/ticket/4248 (assigned cunei)

Maybe it would be possible to fix them both together.
Do you need any help on any of them? I created both of them actually.

Regards
Grzegorz Balcerek

Bill Venners

unread,
Mar 18, 2011, 7:42:00 AM3/18/11
to scala-i...@googlegroups.com
Hi Kato,

Thanks. Sorry everyone for the tone of my email. I was frustrated to
find more problems yesterday when I went through ScalaTest's ScalaDoc
output with the latest 2.9.0-SNAPSHOT. I'll ask Darlene to submit the
new ones as bug reports through Trac later today so they'll be
official. Several are quite minor, but also fixing them should be
quick and easy and low risk. But I also understand that it is last
minute before the release so some could have to wait until next
release.

Another thing I did in ScalaTest 1.3 was replace a few parts of the
CSS file generated by ScalaDoc to try and improve the readability and
fix issues I could fix. I increased the distance between paragraphs
for example. I think I had to make a change to make strong actually
show up as bold, and to turn off an underline on <a name=...> things.
I also changed to a serif font to better distinguish the difference
between text and code font, but that kind of thing I don't mind doing
myself. I'll try and dig up what changes I made and submit that as a
suggestion as well. If I had more time I'd pitch in to help with
ScalaDoc, but unfortunately I just haven't been able to find the time
to do that this year.

Bill

--

Kato Kazuyoshi

unread,
Mar 18, 2011, 7:05:13 PM3/18/11
to scala-i...@googlegroups.com
Hi Bill,

I've checked the issue but I can't reproduce on my environment.

On Fri, Mar 18, 2011 at 8:42 PM, Bill Venners <bi...@artima.com> wrote:
>
> Another thing I did in ScalaTest 1.3 was replace a few parts of the
> CSS file generated by ScalaDoc to try and improve the readability and
> fix issues I could fix. I increased the distance between paragraphs
> for example. I think I had to make a change to make strong actually
> show up as bold, and to turn off an underline on <a name=...> things.
> I also changed to a serif font to better distinguish the difference
> between text and code font, but that kind of thing I don't mind doing
> myself. I'll try and dig up what changes I made and submit that as a
> suggestion as well. If I had more time I'd pitch in to help with
> ScalaDoc, but unfortunately I just haven't been able to find the time
> to do that this year.
>

Hmm, I've noticed that http://www.artima.com/scaladocprobs/lib/template.css
don't have "display: none" on #comment.

#comment {
display:none;
padding-right: 8px;
padding-left: 8px;
}

Regards,

--
Kato Kazuyoshi

Bill Venners

unread,
Mar 18, 2011, 7:20:36 PM3/18/11
to scala-i...@googlegroups.com
Hi Kato,

Thanks. I'll check into that. I had replaced the css file quite a
while back to try and work around issues. It is possible it was
updated since then.

Bill

--

Bill Venners

unread,
Mar 18, 2011, 7:52:45 PM3/18/11
to scala-i...@googlegroups.com
Hi Kato,

I got a stack trace when compiling under the latest 2.9.0-snapshot.
I'll try going back to an older 2.9. In case it is useful to people,
I've attached the stack trace below. Scala definitely has the most
impressive stack traces I've seen. This is all in a branch that I
created for working on the scaladoc issues:

https://scalatest.googlecode.com/svn/branches/scaladocprobs

If someone wants to reproduce the compiler exception, they could check
this out and say "ant compile".

Thanks.

Bill

...
compile-tests:
[scalac] Compiling 122 source files to
/Users/bv/nobkp/delus/st29/target/tests
[scalac] Compiling 0 scala and 12 java source files to
/Users/bv/nobkp/delus/st29/target/tests
[scalac] error: java.lang.AssertionError: assertion failed: method
$init$ in object
BeforeAndAfterFunctionsSuite$$anonfun$13$FunkySuite$class$1 in package
scalatest List(trait AbstractSuite, object AbstractSuite, anonymous
class Assertions$$anonfun$withClue$1, object
Assertions$$anonfun$withClue$1, class Assertions$, object Assertions$,
object Assertions$Equalizer, trait Assertions, object Assertions,
trait BeforeAndAfter, object BeforeAndAfter, trait BeforeAndAfterAll,
object BeforeAndAfterAll, trait BeforeAndAfterAllFunctions, object
BeforeAndAfterAllFunctions, trait BeforeAndAfterEach, object
BeforeAndAfterEach, trait BeforeAndAfterEachFunctions, object
BeforeAndAfterEachFunctions, class CatchReporter, object
CatchReporter, class ConcurrentInformer, object ConcurrentInformer,
anonymous class
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$2, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$2, anonymous
class DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$3, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$3, anonymous
class DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$4, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$4, anonymous
class DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$5, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$5, anonymous
class DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$6, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$6, anonymous
class DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$7, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$7, anonymous
class DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2,
object DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2,
anonymous class
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$apply$3, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$apply$3,
anonymous class DispatchReporter$$anonfun$1$$anonfun$apply$1, object
DispatchReporter$$anonfun$1$$anonfun$apply$1, anonymous class
DispatchReporter$$anonfun$1$Counter$1, object
DispatchReporter$$anonfun$1$Counter$1, anonymous class
DispatchReporter$$anonfun$1, object DispatchReporter$$anonfun$1, class
DispatchReporter$, object DispatchReporter$, class
DispatchReporter$Dispose$, object DispatchReporter$Dispose$, class
DispatchReporter, object DispatchReporter, trait Distributor, object
Distributor, class DuplicateTestNameException, object
DuplicateTestNameException, anonymous class
FailureMessages$$anonfun$apply$1, object
FailureMessages$$anonfun$apply$1, anonymous class
FailureMessages$$anonfun$prettifyArrays$1, object
FailureMessages$$anonfun$prettifyArrays$1, class FailureMessages$,
object FailureMessages$, class FailureMessages, object
FailureMessages, class FailureOf$, object FailureOf$, trait FailureOf,
object FailureOf, class FeatureParser$Onesie, object
FeatureParser$Onesie, class FeatureParser$Twosie, object
FeatureParser$Twosie, class FeatureParser$Zerosie, object
FeatureParser$Zerosie, class FeatureParser, object FeatureParser,
anonymous class FeatureSpec$$anon$1, object FeatureSpec$$anon$1,
anonymous class FeatureSpec$$anon$2, object FeatureSpec$$anon$2,
anonymous class FeatureSpec$$anon$3, object FeatureSpec$$anon$3,
anonymous class FeatureSpec$$anon$4, object FeatureSpec$$anon$4,
anonymous class FeatureSpec$$anonfun$1, object FeatureSpec$$anonfun$1,
anonymous class FeatureSpec$$anonfun$2, object FeatureSpec$$anonfun$2,
anonymous class FeatureSpec$$anonfun$ignore$1, object
FeatureSpec$$anonfun$ignore$1, anonymous class
FeatureSpec$$anonfun$org$scalatest$FeatureSpec$$runTestsInBranch$1,
object FeatureSpec$$anonfun$org$scalatest$FeatureSpec$$runTestsInBranch$1,
anonymous class FeatureSpec$$anonfun$registerTest$1, object
FeatureSpec$$anonfun$registerTest$1, anonymous class
FeatureSpec$$anonfun$runTest$1, object FeatureSpec$$anonfun$runTest$1,
anonymous class FeatureSpec$$anonfun$runTest$2, object
FeatureSpec$$anonfun$runTest$2, anonymous class
FeatureSpec$$anonfun$scenario$1, object
FeatureSpec$$anonfun$scenario$1, anonymous class
FeatureSpec$$anonfun$testNames$1, object
FeatureSpec$$anonfun$testNames$1, class FeatureSpec$Bundle$, object
FeatureSpec$Bundle$, class FeatureSpec$Bundle, object
FeatureSpec$Bundle, class FeatureSpec$RegistrationInformer, object
FeatureSpec$RegistrationInformer, trait FeatureSpec, object
FeatureSpec, anonymous class Filter$$anonfun$1, object
Filter$$anonfun$1, anonymous class Filter$$anonfun$2, object
Filter$$anonfun$2, anonymous class Filter$$anonfun$3, object
Filter$$anonfun$3, anonymous class Filter$$anonfun$4, object
Filter$$anonfun$4, anonymous class Filter$$anonfun$5, object
Filter$$anonfun$5, anonymous class
Filter$$anonfun$includedTestNames$1, object
Filter$$anonfun$includedTestNames$1, anonymous class
Filter$$anonfun$includedTestNames$2, object
Filter$$anonfun$includedTestNames$2, anonymous class
Filter$$anonfun$includedTestNames$3, object
Filter$$anonfun$includedTestNames$3, anonymous class
Filter$$anonfun$includedTestNames$4, object
Filter$$anonfun$includedTestNames$4, class Filter$, object Filter$,
class Filter, object Filter, anonymous class FlatSpec$$anon$1, object
FlatSpec$$anon$1, anonymous class FlatSpec$$anon$2, object
FlatSpec$$anon$2, anonymous class FlatSpec$$anon$3, object
FlatSpec$$anon$3, anonymous class FlatSpec$$anon$4, object
FlatSpec$$anon$4, anonymous class FlatSpec$$anonfun$1, object
FlatSpec$$anonfun$1, anonymous class
FlatSpec$$anonfun$2$$anon$5$$anon$6$$anonfun$is$6, object
FlatSpec$$anonfun$2$$anon$5$$anon$6$$anonfun$is$6, anonymous class
FlatSpec$$anonfun$2$$anon$5$$anon$6, object
FlatSpec$$anonfun$2$$anon$5$$anon$6, anonymous class
FlatSpec$$anonfun$2$$anon$5$$anonfun$is$5, object
FlatSpec$$anonfun$2$$anon$5$$anonfun$is$5, anonymous class
FlatSpec$$anonfun$2$$anon$5, object FlatSpec$$anonfun$2$$anon$5,
anonymous class FlatSpec$$anonfun$2, object FlatSpec$$anonfun$2,
anonymous class FlatSpec$$anonfun$3, object FlatSpec$$anonfun$3,
anonymous class FlatSpec$$anonfun$4, object FlatSpec$$anonfun$4,
anonymous class
FlatSpec$$anonfun$org$scalatest$FlatSpec$$registerTestToIgnore$1,
object FlatSpec$$anonfun$org$scalatest$FlatSpec$$registerTestToIgnore$1,
anonymous class
FlatSpec$$anonfun$org$scalatest$FlatSpec$$registerTestToRun$1, object
FlatSpec$$anonfun$org$scalatest$FlatSpec$$registerTestToRun$1,
anonymous class
FlatSpec$$anonfun$org$scalatest$FlatSpec$$runTestsInBranch$1, object
FlatSpec$$anonfun$org$scalatest$FlatSpec$$runTestsInBranch$1,
anonymous class FlatSpec$$anonfun$registerTest$1, object
FlatSpec$$anonfun$registerTest$1, anonymous class
FlatSpec$$anonfun$runTest$1, object FlatSpec$$anonfun$runTest$1,
anonymous class FlatSpec$$anonfun$runTest$2, object
FlatSpec$$anonfun$runTest$2, anonymous class
FlatSpec$$anonfun$testNames$1, object FlatSpec$$anonfun$testNames$1,
class FlatSpec$BehaviorWord, object FlatSpec$BehaviorWord, class
FlatSpec$Bundle$, object FlatSpec$Bundle$, class FlatSpec$Bundle,
object FlatSpec$Bundle, anonymous class
FlatSpec$IgnoreVerbString$$anonfun$is$4, object
FlatSpec$IgnoreVerbString$$anonfun$is$4, class
FlatSpec$IgnoreVerbString, object FlatSpec$IgnoreVerbString, anonymous
class FlatSpec$IgnoreVerbStringTaggedAs$$anonfun$is$3, object
FlatSpec$IgnoreVerbStringTaggedAs$$anonfun$is$3, class
FlatSpec$IgnoreVerbStringTaggedAs, object
FlatSpec$IgnoreVerbStringTaggedAs, class FlatSpec$IgnoreWord, object
FlatSpec$IgnoreWord, class FlatSpec$InAndIgnoreMethods, object
FlatSpec$InAndIgnoreMethods, class
FlatSpec$InAndIgnoreMethodsAfterTaggedAs, object
FlatSpec$InAndIgnoreMethodsAfterTaggedAs, anonymous class
FlatSpec$ItVerbString$$anonfun$is$2, object
FlatSpec$ItVerbString$$anonfun$is$2, class FlatSpec$ItVerbString,
object FlatSpec$ItVerbString, anonymous class
FlatSpec$ItVerbStringTaggedAs$$anonfun$is$1, object
FlatSpec$ItVerbStringTaggedAs$$anonfun$is$1, class
FlatSpec$ItVerbStringTaggedAs, object FlatSpec$ItVerbStringTaggedAs,
class FlatSpec$ItWord, object FlatSpec$ItWord, class
FlatSpec$RegistrationInformer, object FlatSpec$RegistrationInformer,
trait FlatSpec, object FlatSpec, anonymous class FunSuite$$anon$1,
object FunSuite$$anon$1, anonymous class FunSuite$$anon$2, object
FunSuite$$anon$2, anonymous class FunSuite$$anon$3, object
FunSuite$$anon$3, anonymous class FunSuite$$anon$4, object
FunSuite$$anon$4, anonymous class FunSuite$$anonfun$1, object
FunSuite$$anonfun$1, anonymous class FunSuite$$anonfun$2, object
FunSuite$$anonfun$2, anonymous class FunSuite$$anonfun$ignore$1,
object FunSuite$$anonfun$ignore$1, anonymous class
FunSuite$$anonfun$runTests$1, object FunSuite$$anonfun$runTests$1,
anonymous class FunSuite$$anonfun$test$1, object
FunSuite$$anonfun$test$1, class FunSuite$Bundle$, object
FunSuite$Bundle$, object FunSuite$Bundle, object FunSuite$FunNode,
class FunSuite$InfoNode$, object FunSuite$InfoNode$, object
FunSuite$InfoNode, object FunSuite$RegistrationInformer, class
FunSuite$TestNode$, object FunSuite$TestNode$, object
FunSuite$TestNode, trait FunSuite, object FunSuite, class
GivenWhenThen$, object GivenWhenThen$, trait GivenWhenThen, object
GivenWhenThen, class Group, object Group, class Ignore, object Ignore,
trait Informer, object Informer, class MessageRecordingInformer,
object MessageRecordingInformer, trait ModifiableMessage, object
ModifiableMessage, anonymous class NestedSuites$$anonfun$1, object
NestedSuites$$anonfun$1, class NestedSuites, object NestedSuites,
class NodeFamily$, object NodeFamily$, class NodeFamily$Branch, object
NodeFamily$Branch, class NodeFamily$DescriptionBranch$, object
NodeFamily$DescriptionBranch$, class NodeFamily$DescriptionBranch,
object NodeFamily$DescriptionBranch, class NodeFamily$InfoLeaf$,
object NodeFamily$InfoLeaf$, class NodeFamily$InfoLeaf, object
NodeFamily$InfoLeaf, class NodeFamily$Node, object NodeFamily$Node,
class NodeFamily$TestLeaf$, object NodeFamily$TestLeaf$, class
NodeFamily$TestLeaf, object NodeFamily$TestLeaf, class
NodeFamily$Trunk$, object NodeFamily$Trunk$, class NodeFamily$Trunk,
object NodeFamily$Trunk, class NodeFamily$VerbBranch$, object
NodeFamily$VerbBranch$, class NodeFamily$VerbBranch, object
NodeFamily$VerbBranch, class NodeFamily, object NodeFamily, class
NotAllowedException, object NotAllowedException, anonymous class
OneInstancePerTest$$anonfun$runTests$1, object
OneInstancePerTest$$anonfun$runTests$1, trait OneInstancePerTest,
object OneInstancePerTest, anonymous class
ParallelTestExecution$$anonfun$runTests$1, object
ParallelTestExecution$$anonfun$runTests$1, class
ParallelTestExecution, object ParallelTestExecution, class
PendingNothing, object PendingNothing, class PrivateMethodTester$,
object PrivateMethodTester$, class PrivateMethodTester$Invocation,
object PrivateMethodTester$Invocation, anonymous class
PrivateMethodTester$Invoker$$anonfun$1, object
PrivateMethodTester$Invoker$$anonfun$1, anonymous class
PrivateMethodTester$Invoker$$anonfun$2, object
PrivateMethodTester$Invoker$$anonfun$2, anonymous class
PrivateMethodTester$Invoker$$anonfun$3, object
PrivateMethodTester$Invoker$$anonfun$3, anonymous class
PrivateMethodTester$Invoker$$anonfun$4, object
PrivateMethodTester$Invoker$$anonfun$4, anonymous class
PrivateMethodTester$Invoker$$anonfun$5, object
PrivateMethodTester$Invoker$$anonfun$5, anonymous class
PrivateMethodTester$Invoker$$anonfun$6, object
PrivateMethodTester$Invoker$$anonfun$6, class
PrivateMethodTester$Invoker, object PrivateMethodTester$Invoker, class
PrivateMethodTester$PrivateMethod$, object
PrivateMethodTester$PrivateMethod$, class
PrivateMethodTester$PrivateMethod, object
PrivateMethodTester$PrivateMethod, trait PrivateMethodTester, object
PrivateMethodTester, class Report, object Report, class Reporter$,
object Reporter$, trait Reporter, object Reporter, class Rerunnable,
object Rerunnable, trait Rerunner, object Rerunner, trait
ResourcefulReporter, object ResourcefulReporter, class Resources$,
object Resources$, class Resources, object Resources, class
SequentialNestedSuiteExecution, object SequentialNestedSuiteExecution,
trait SeveredStackTraces, object SeveredStackTraces, anonymous class
Spec$$anon$1, object Spec$$anon$1, anonymous class Spec$$anon$2,
object Spec$$anon$2, anonymous class Spec$$anon$3, object
Spec$$anon$3, anonymous class Spec$$anon$4, object Spec$$anon$4,
anonymous class Spec$$anonfun$2, object Spec$$anonfun$2, anonymous
class Spec$$anonfun$ignore$1, object Spec$$anonfun$ignore$1, anonymous
class Spec$$anonfun$org$scalatest$Spec$$registerTest$1, object
Spec$$anonfun$org$scalatest$Spec$$registerTest$1, anonymous class
Spec$$anonfun$org$scalatest$Spec$$runTestsInBranch$1, object
Spec$$anonfun$org$scalatest$Spec$$runTestsInBranch$1, anonymous class
Spec$$anonfun$runTest$1, object Spec$$anonfun$runTest$1, anonymous
class Spec$$anonfun$runTest$2, object Spec$$anonfun$runTest$2,
anonymous class Spec$$anonfun$testNames$1, object
Spec$$anonfun$testNames$1, class Spec$Bundle$, object Spec$Bundle$,
object Spec$Bundle, anonymous class Spec$ItWord$$anonfun$1, object
Spec$ItWord$$anonfun$1, anonymous class Spec$ItWord$$anonfun$apply$1,
object Spec$ItWord$$anonfun$apply$1, object Spec$ItWord, object
Spec$RegistrationInformer, trait Spec, object Spec, class SpecReport,
object SpecReport, anonymous class
StackDepth$$anonfun$failedCodeFileNameAndLineNumberString$1$$anonfun$apply$1,
object StackDepth$$anonfun$failedCodeFileNameAndLineNumberString$1$$anonfun$apply$1,
anonymous class
StackDepth$$anonfun$failedCodeFileNameAndLineNumberString$1, object
StackDepth$$anonfun$failedCodeFileNameAndLineNumberString$1, trait
StackDepth, object StackDepth, class StackDepthException, object
StackDepthException, anonymous class
StackDepthExceptionHelper$$anonfun$1, object
StackDepthExceptionHelper$$anonfun$1, anonymous class
StackDepthExceptionHelper$$anonfun$10, object
StackDepthExceptionHelper$$anonfun$10, anonymous class
StackDepthExceptionHelper$$anonfun$11, object
StackDepthExceptionHelper$$anonfun$11, anonymous class
StackDepthExceptionHelper$$anonfun$2, object
StackDepthExceptionHelper$$anonfun$2, anonymous class
StackDepthExceptionHelper$$anonfun$3, object
StackDepthExceptionHelper$$anonfun$3, anonymous class
StackDepthExceptionHelper$$anonfun$4, object
StackDepthExceptionHelper$$anonfun$4, anonymous class
StackDepthExceptionHelper$$anonfun$5, object
StackDepthExceptionHelper$$anonfun$5, anonymous class
StackDepthExceptionHelper$$anonfun$6, object
StackDepthExceptionHelper$$anonfun$6, anonymous class
StackDepthExceptionHelper$$anonfun$7, object
StackDepthExceptionHelper$$anonfun$7, anonymous class
StackDepthExceptionHelper$$anonfun$8, object
StackDepthExceptionHelper$$anonfun$8, anonymous class
StackDepthExceptionHelper$$anonfun$9, object
StackDepthExceptionHelper$$anonfun$9, anonymous class
StackDepthExceptionHelper$$anonfun$getStackDepth$1, object
StackDepthExceptionHelper$$anonfun$getStackDepth$1, class
StackDepthExceptionHelper$, object StackDepthExceptionHelper$, class
StackDepthExceptionHelper, object StackDepthExceptionHelper, trait
Stopper, object Stopper, anonymous class Suite$$anon$1, object
Suite$$anon$1, anonymous class Suite$$anon$2, object Suite$$anon$2,
anonymous class Suite$$anon$3, object Suite$$anon$3, anonymous class
Suite$$anon$4, object Suite$$anon$4, anonymous class Suite$$anon$5,
object Suite$$anon$5, anonymous class Suite$$anon$6, object
Suite$$anon$6, anonymous class Suite$$anonfun$1, object
Suite$$anonfun$1, anonymous class Suite$$anonfun$2, object
Suite$$anonfun$2, anonymous class Suite$$anonfun$3, object
Suite$$anonfun$3, anonymous class Suite$$anonfun$4, object
Suite$$anonfun$4, anonymous class Suite$$anonfun$5, object
Suite$$anonfun$5, anonymous class Suite$$anonfun$getTags$1$1, object
Suite$$anonfun$getTags$1$1, anonymous class
Suite$$anonfun$runNestedSuites$1, object
Suite$$anonfun$runNestedSuites$1, anonymous class
Suite$$anonfun$runNestedSuites$2, object
Suite$$anonfun$runNestedSuites$2, anonymous class
Suite$$anonfun$runTests$1, object Suite$$anonfun$runTests$1, anonymous
class Suite$$anonfun$runTests$2, object Suite$$anonfun$runTests$2,
class Suite$, object Suite$, object Suite$NoArgTest, trait Suite,
object Suite, class SuiteRerunner, object SuiteRerunner, class
SuperSuite, object SuperSuite, class Tag$, object Tag$, class Tag,
object Tag, class TagAnnotation, object TagAnnotation, class
TestFailedException, object TestFailedException, class
TestPendingException, object TestPendingException, class
TestRegistrationClosedException, object
TestRegistrationClosedException, class TestRerunner, object
TestRerunner, class Tracker, object Tracker, class UnquotedString$,
object UnquotedString$, class UnquotedString, object UnquotedString,
anonymous class WordSpec$$anon$1, object WordSpec$$anon$1, anonymous
class WordSpec$$anon$2, object WordSpec$$anon$2, anonymous class
WordSpec$$anon$3, object WordSpec$$anon$3, anonymous class
WordSpec$$anon$4, object WordSpec$$anon$4, anonymous class
WordSpec$$anon$5, object WordSpec$$anon$5, anonymous class
WordSpec$$anonfun$1, object WordSpec$$anonfun$1, anonymous class
WordSpec$$anonfun$2, object WordSpec$$anonfun$2, anonymous class
WordSpec$$anonfun$3$$anonfun$4, object WordSpec$$anonfun$3$$anonfun$4,
anonymous class WordSpec$$anonfun$3, object WordSpec$$anonfun$3,
anonymous class
WordSpec$$anonfun$org$scalatest$WordSpec$$registerDescriptionBranch$1,
object WordSpec$$anonfun$org$scalatest$WordSpec$$registerDescriptionBranch$1,
anonymous class
WordSpec$$anonfun$org$scalatest$WordSpec$$registerTestToIgnore$1,
object WordSpec$$anonfun$org$scalatest$WordSpec$$registerTestToIgnore$1,
anonymous class
WordSpec$$anonfun$org$scalatest$WordSpec$$registerTestToRun$1, object
WordSpec$$anonfun$org$scalatest$WordSpec$$registerTestToRun$1,
anonymous class
WordSpec$$anonfun$org$scalatest$WordSpec$$registerVerbBranch$1, object
WordSpec$$anonfun$org$scalatest$WordSpec$$registerVerbBranch$1,
anonymous class
WordSpec$$anonfun$org$scalatest$WordSpec$$runTestsInBranch$1, object
WordSpec$$anonfun$org$scalatest$WordSpec$$runTestsInBranch$1,
anonymous class WordSpec$$anonfun$registerTest$1, object
WordSpec$$anonfun$registerTest$1, anonymous class
WordSpec$$anonfun$runTest$1, object WordSpec$$anonfun$runTest$1,
anonymous class WordSpec$$anonfun$runTest$2, object
WordSpec$$anonfun$runTest$2, anonymous class
WordSpec$$anonfun$testNames$1, object WordSpec$$anonfun$testNames$1,
class WordSpec$AfterWord, object WordSpec$AfterWord, class
WordSpec$Bundle$, object WordSpec$Bundle$, class WordSpec$Bundle,
object WordSpec$Bundle, class WordSpec$RegistrationInformer, object
WordSpec$RegistrationInformer, anonymous class
WordSpec$ResultOfTaggedAsInvocationOnString$$anonfun$is$1, object
WordSpec$ResultOfTaggedAsInvocationOnString$$anonfun$is$1, class
WordSpec$ResultOfTaggedAsInvocationOnString, object
WordSpec$ResultOfTaggedAsInvocationOnString, anonymous class
WordSpec$WordSpecStringWrapper$$anonfun$is$2, object
WordSpec$WordSpecStringWrapper$$anonfun$is$2, class
WordSpec$WordSpecStringWrapper, object WordSpec$WordSpecStringWrapper,
trait WordSpec, object WordSpec, class AssertionsSpec, object
AssertionsSpec, class BeforeAndAfterFunctionsSuite, object
BeforeAndAfterFunctionsSuite, class BeforeAndAfterSuite, object
BeforeAndAfterSuite, class BigSuite, object BigSuite, class
BigSuiteSuite, object BigSuiteSuite, class CatchReporterSuite, object
CatchReporterSuite, class ClueSpec, object ClueSpec, class
ConcurrentInformerSpec, object ConcurrentInformerSpec, class
EasySuite, object EasySuite, trait EmptyMocks, object EmptyMocks,
class ExamplesSuite, object ExamplesSuite, class FailureMessagesSuite,
object FailureMessagesSuite, class FailureOfSpec, object
FailureOfSpec, class FeatureSpecSpec, object FeatureSpecSpec, trait
FileMocks, object FileMocks, class FilterSpec, object FilterSpec,
class FlatSpecSpec, object FlatSpecSpec, trait FruitMocks, object
FruitMocks, class FunSuiteSpec, object FunSuiteSpec, class
FunSuiteSuite, object FunSuiteSuite, class GivenWhenThenSpec, object
GivenWhenThenSpec, class InformerSpec, object InformerSpec, class
NestedSuitesSpec, object NestedSuitesSpec, class
OneInstancePerTestSpec, object OneInstancePerTestSpec, class
OperatorNames, object OperatorNames, class PrivateMethodTesterSpec,
object PrivateMethodTesterSpec, trait ReturnsNormallyThrowsAssertion,
object ReturnsNormallyThrowsAssertion, class
SeveredStackTracesFailureSpec, object SeveredStackTracesFailureSpec,
class SeveredStackTracesSpec, object SeveredStackTracesSpec, trait
SharedHelpers, object SharedHelpers, class SpecSpec, object SpecSpec,
class SpecSuite, object SpecSuite, class StubReporter, object
StubReporter, class SuiteCompletedStatusReporter, object
SuiteCompletedStatusReporter, class SuiteSpec, object SuiteSpec, class
SuiteSuite, object SuiteSuite, class TestFailedExceptionSpec, object
TestFailedExceptionSpec, class TestFailedExceptionWithImportSpec,
object TestFailedExceptionWithImportSpec, class VariousWordSpec,
object VariousWordSpec, class WordSpecSpec, object WordSpecSpec,
package concurrent, package events, package fixture, package junit,
package matchers, package mock, package prop, package testng, package
tools, package verb, package jmock, class
BeforeAndAfterFunctionsExtendingSuite, class
BeforeAndAfterFunctionsExtendingFunSuite, class
BeforeAndAfterExtendingSuite, class BeforeAndAfterExtendingFunSuite,
package mytags, class TopLevelSuite, object TopLevelSuite, class
AmpersandWordSpec, class LoginUiWordSpec, object FastAsLight, class
FastAsLight, object HasField, class HasField, object
HasFieldAndGetMethod, class HasFieldAndGetMethod, object
HasFieldAndMethod, class HasFieldAndMethod, object
HasFieldMethodAndGetMethod, class HasFieldMethodAndGetMethod, object
PackageAccessConstructorSuite, class PackageAccessConstructorSuite,
object SlowAsMolasses, class SlowAsMolasses, object Spec$class, object
Suite$class, object Assertions$class, object FunSuite$class, object
BeforeAndAfterEachFunctions$class, object
BeforeAndAfterAllFunctions$class, object Stopper$class, trait
SharedHelpers$class, trait StackDepth$class, trait
BeforeAndAfterEach$class, trait BeforeAndAfterAll$class, trait
FlatSpec$class, trait EmptyMocks$class, trait FailureOf$class, trait
FeatureSpec$class, trait GivenWhenThen$class, trait FileMocks$class,
trait FruitMocks$class, trait WordSpec$class, trait
OneInstancePerTest$class, trait PrivateMethodTester$class, trait
ReturnsNormallyThrowsAssertion$class, trait SeveredStackTraces$class,
anonymous class AssertionsSpec$$anonfun$1, class Spec$Bundle, class
Spec$RegistrationInformer, class Spec$ItWord, trait Suite$NoArgTest,
class Assertions$Equalizer, object Assertions$class, object
Suite$class, object Spec$class, anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$1, anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$2, anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$4, anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$6, anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$9, anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$2$$anonfun$apply$3, anonymous
class AssertionsSpec$$anonfun$1$$anonfun$apply$4$$anonfun$apply$5,
anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$6$$anonfun$apply$7, anonymous
class AssertionsSpec$$anonfun$1$$anonfun$apply$6$$anonfun$apply$8,
anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$9$$anonfun$apply$10,
anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$9$$anonfun$apply$11,
anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$9$$anonfun$apply$12,
anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$9$$anonfun$apply$13, class
BeforeAndAfterFunctionsSuite$TheSuper, class
BeforeAndAfterFunctionsSuite$MySuite, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$5, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$6, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$7, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$8, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$9, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$10, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$11, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$13, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$15, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$17, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$19, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$21, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$23, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$25, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$27, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$30, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$32, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$35, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$37, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$40, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$42, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$45, class FunSuite$FunNode,
class FunSuite$TestNode, class FunSuite$InfoNode, class
FunSuite$Bundle, class FunSuite$RegistrationInformer, object
FunSuite$class, anonymous class
BeforeAndAfterFunctionsExtendingSuite$$anonfun$47, object
BeforeAndAfterEachFunctions$class, object
BeforeAndAfterAllFunctions$class, anonymous class
BeforeAndAfterFunctionsExtendingFunSuite$$anonfun$48, anonymous class
BeforeAndAfterFunctionsExtendingFunSuite$$anonfun$49, anonymous class
BeforeAndAfterFunctionsExtendingFunSuite$$anonfun$50, anonymous class
BeforeAndAfterFunctionsSuite$MySuite$$anonfun$1, anonymous class
BeforeAndAfterFunctionsSuite$MySuite$$anonfun$2, anonymous class
BeforeAndAfterFunctionsSuite$MySuite$$anonfun$3, anonymous class
BeforeAndAfterFunctionsSuite$MySuite$$anonfun$4, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$5$$anon$1, object Stopper$class,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$6$$anon$2,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$7$$anon$3,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$8$$anon$4,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$9$$anon$5,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$10$$anon$6,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$11$MySuite$5,
anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$11$$anonfun$apply$1, anonymous
class BeforeAndAfterFunctionsSuite$$anonfun$11$MySuite$5$$anonfun$12,
anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$11$$anonfun$apply$1$$anon$7,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$13$FunkySuite$1,
object BeforeAndAfterFunctionsSuite$$anonfun$13$FunkySuite$class$1,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$13$MySuite$1,
anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$13$$anonfun$apply$2, anonymous
class BeforeAndAfterFunctionsSuite$$anonfun$13$MySuite$1$$anonfun$14,
object BeforeAndAfterFunctionsSuite$$anonfun$13$FunkySuite$class$1)
[scalac] at scala.Predef$.assert(Predef.scala:100)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.scala$tools$nsc$transform$Mixin$MixinTransformer$$staticRef(Mixin.scala:578)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.staticCall$1(Mixin.scala:1163)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.scala$tools$nsc$transform$Mixin$MixinTransformer$$postTransform(Mixin.scala:1168)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer$$anonfun$23.apply(Mixin.scala:1233)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer$$anonfun$23.apply(Mixin.scala:1233)
[scalac] at scala.tools.nsc.symtab.SymbolTable.atPhase(SymbolTable.scala:96)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1233)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:877)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:875)
[scalac] at scala.collection.immutable.List.loop$1(List.scala:117)
[scalac] at scala.collection.immutable.List.mapConserve(List.scala:133)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:875)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:785)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1232)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$5.apply(Trees.scala:769)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$5.apply(Trees.scala:767)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:885)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:766)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1232)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:877)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:875)
[scalac] at scala.collection.immutable.List.loop$1(List.scala:117)
[scalac] at scala.collection.immutable.List.mapConserve(List.scala:133)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:875)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:783)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1232)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer.transformTemplate(Trees.scala:861)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:753)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:752)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:885)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:751)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1232)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:877)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:875)
[scalac] at scala.collection.immutable.List.loop$1(List.scala:117)
[scalac] at scala.collection.immutable.List.mapConserve(List.scala:133)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:875)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:747)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:747)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:885)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:746)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1232)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:878)
[scalac] at
scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
[scalac] at
scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:326)
[scalac] at
scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:326)
[scalac] at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:47)
[scalac] at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:326)
[scalac] at
scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:294)
[scalac] at
scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:294)
[scalac] at scala.collection.Iterator$class.foreach(Iterator.scala:651)
[scalac] at
scala.collection.mutable.ListBuffer$$anon$1.foreach(ListBuffer.scala:311)
[scalac] at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:294)
[scalac] at scala.tools.nsc.Global$Run.compileSources(Global.scala:896)
[scalac] at scala.tools.nsc.Global$Run.compile(Global.scala:997)
[scalac] at scala.tools.nsc.Main$.process(Main.scala:106)
[scalac] at scala.tools.nsc.Main$.main(Main.scala:123)
[scalac] at scala.tools.nsc.Main.main(Main.scala)
[scalac]
[scalac] Exception in thread "main" java.lang.AssertionError:
assertion failed: method $init$ in object
BeforeAndAfterFunctionsSuite$$anonfun$13$FunkySuite$class$1 in package
scalatest List(trait AbstractSuite, object AbstractSuite, anonymous
class Assertions$$anonfun$withClue$1, object
Assertions$$anonfun$withClue$1, class Assertions$, object Assertions$,
object Assertions$Equalizer, trait Assertions, object Assertions,
trait BeforeAndAfter, object BeforeAndAfter, trait BeforeAndAfterAll,
object BeforeAndAfterAll, trait BeforeAndAfterAllFunctions, object
BeforeAndAfterAllFunctions, trait BeforeAndAfterEach, object
BeforeAndAfterEach, trait BeforeAndAfterEachFunctions, object
BeforeAndAfterEachFunctions, class CatchReporter, object
CatchReporter, class ConcurrentInformer, object ConcurrentInformer,
anonymous class
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$2, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$2, anonymous
class DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$3, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$3, anonymous
class DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$4, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$4, anonymous
class DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$5, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$5, anonymous
class DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$6, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$6, anonymous
class DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$7, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$7, anonymous
class DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2,
object DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2,
anonymous class
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$apply$3, object
DispatchReporter$$anonfun$1$$anonfun$apply$1$$anonfun$apply$3,
anonymous class DispatchReporter$$anonfun$1$$anonfun$apply$1, object
DispatchReporter$$anonfun$1$$anonfun$apply$1, anonymous class
DispatchReporter$$anonfun$1$Counter$1, object
DispatchReporter$$anonfun$1$Counter$1, anonymous class
DispatchReporter$$anonfun$1, object DispatchReporter$$anonfun$1, class
DispatchReporter$, object DispatchReporter$, class
DispatchReporter$Dispose$, object DispatchReporter$Dispose$, class
DispatchReporter, object DispatchReporter, trait Distributor, object
Distributor, class DuplicateTestNameException, object
DuplicateTestNameException, anonymous class
FailureMessages$$anonfun$apply$1, object
FailureMessages$$anonfun$apply$1, anonymous class
FailureMessages$$anonfun$prettifyArrays$1, object
FailureMessages$$anonfun$prettifyArrays$1, class FailureMessages$,
object FailureMessages$, class FailureMessages, object
FailureMessages, class FailureOf$, object FailureOf$, trait FailureOf,
object FailureOf, class FeatureParser$Onesie, object
FeatureParser$Onesie, class FeatureParser$Twosie, object
FeatureParser$Twosie, class FeatureParser$Zerosie, object
FeatureParser$Zerosie, class FeatureParser, object FeatureParser,
anonymous class FeatureSpec$$anon$1, object FeatureSpec$$anon$1,
anonymous class FeatureSpec$$anon$2, object FeatureSpec$$anon$2,
anonymous class FeatureSpec$$anon$3, object FeatureSpec$$anon$3,
anonymous class FeatureSpec$$anon$4, object FeatureSpec$$anon$4,
anonymous class FeatureSpec$$anonfun$1, object FeatureSpec$$anonfun$1,
anonymous class FeatureSpec$$anonfun$2, object FeatureSpec$$anonfun$2,
anonymous class FeatureSpec$$anonfun$ignore$1, object
FeatureSpec$$anonfun$ignore$1, anonymous class
FeatureSpec$$anonfun$org$scalatest$FeatureSpec$$runTestsInBranch$1,
object FeatureSpec$$anonfun$org$scalatest$FeatureSpec$$runTestsInBranch$1,
anonymous class FeatureSpec$$anonfun$registerTest$1, object
FeatureSpec$$anonfun$registerTest$1, anonymous class
FeatureSpec$$anonfun$runTest$1, object FeatureSpec$$anonfun$runTest$1,
anonymous class FeatureSpec$$anonfun$runTest$2, object
FeatureSpec$$anonfun$runTest$2, anonymous class
FeatureSpec$$anonfun$scenario$1, object
FeatureSpec$$anonfun$scenario$1, anonymous class
FeatureSpec$$anonfun$testNames$1, object
FeatureSpec$$anonfun$testNames$1, class FeatureSpec$Bundle$, object
FeatureSpec$Bundle$, class FeatureSpec$Bundle, object
FeatureSpec$Bundle, class FeatureSpec$RegistrationInformer, object
FeatureSpec$RegistrationInformer, trait FeatureSpec, object
FeatureSpec, anonymous class Filter$$anonfun$1, object
Filter$$anonfun$1, anonymous class Filter$$anonfun$2, object
Filter$$anonfun$2, anonymous class Filter$$anonfun$3, object
Filter$$anonfun$3, anonymous class Filter$$anonfun$4, object
Filter$$anonfun$4, anonymous class Filter$$anonfun$5, object
Filter$$anonfun$5, anonymous class
Filter$$anonfun$includedTestNames$1, object
Filter$$anonfun$includedTestNames$1, anonymous class
Filter$$anonfun$includedTestNames$2, object
Filter$$anonfun$includedTestNames$2, anonymous class
Filter$$anonfun$includedTestNames$3, object
Filter$$anonfun$includedTestNames$3, anonymous class
Filter$$anonfun$includedTestNames$4, object
Filter$$anonfun$includedTestNames$4, class Filter$, object Filter$,
class Filter, object Filter, anonymous class FlatSpec$$anon$1, object
FlatSpec$$anon$1, anonymous class FlatSpec$$anon$2, object
FlatSpec$$anon$2, anonymous class FlatSpec$$anon$3, object
FlatSpec$$anon$3, anonymous class FlatSpec$$anon$4, object
FlatSpec$$anon$4, anonymous class FlatSpec$$anonfun$1, object
FlatSpec$$anonfun$1, anonymous class
FlatSpec$$anonfun$2$$anon$5$$anon$6$$anonfun$is$6, object
FlatSpec$$anonfun$2$$anon$5$$anon$6$$anonfun$is$6, anonymous class
FlatSpec$$anonfun$2$$anon$5$$anon$6, object
FlatSpec$$anonfun$2$$anon$5$$anon$6, anonymous class
FlatSpec$$anonfun$2$$anon$5$$anonfun$is$5, object
FlatSpec$$anonfun$2$$anon$5$$anonfun$is$5, anonymous class
FlatSpec$$anonfun$2$$anon$5, object FlatSpec$$anonfun$2$$anon$5,
anonymous class FlatSpec$$anonfun$2, object FlatSpec$$anonfun$2,
anonymous class FlatSpec$$anonfun$3, object FlatSpec$$anonfun$3,
anonymous class FlatSpec$$anonfun$4, object FlatSpec$$anonfun$4,
anonymous class
FlatSpec$$anonfun$org$scalatest$FlatSpec$$registerTestToIgnore$1,
object FlatSpec$$anonfun$org$scalatest$FlatSpec$$registerTestToIgnore$1,
anonymous class
FlatSpec$$anonfun$org$scalatest$FlatSpec$$registerTestToRun$1, object
FlatSpec$$anonfun$org$scalatest$FlatSpec$$registerTestToRun$1,
anonymous class
FlatSpec$$anonfun$org$scalatest$FlatSpec$$runTestsInBranch$1, object
FlatSpec$$anonfun$org$scalatest$FlatSpec$$runTestsInBranch$1,
anonymous class FlatSpec$$anonfun$registerTest$1, object
FlatSpec$$anonfun$registerTest$1, anonymous class
FlatSpec$$anonfun$runTest$1, object FlatSpec$$anonfun$runTest$1,
anonymous class FlatSpec$$anonfun$runTest$2, object
FlatSpec$$anonfun$runTest$2, anonymous class
FlatSpec$$anonfun$testNames$1, object FlatSpec$$anonfun$testNames$1,
class FlatSpec$BehaviorWord, object FlatSpec$BehaviorWord, class
FlatSpec$Bundle$, object FlatSpec$Bundle$, class FlatSpec$Bundle,
object FlatSpec$Bundle, anonymous class
FlatSpec$IgnoreVerbString$$anonfun$is$4, object
FlatSpec$IgnoreVerbString$$anonfun$is$4, class
FlatSpec$IgnoreVerbString, object FlatSpec$IgnoreVerbString, anonymous
class FlatSpec$IgnoreVerbStringTaggedAs$$anonfun$is$3, object
FlatSpec$IgnoreVerbStringTaggedAs$$anonfun$is$3, class
FlatSpec$IgnoreVerbStringTaggedAs, object
FlatSpec$IgnoreVerbStringTaggedAs, class FlatSpec$IgnoreWord, object
FlatSpec$IgnoreWord, class FlatSpec$InAndIgnoreMethods, object
FlatSpec$InAndIgnoreMethods, class
FlatSpec$InAndIgnoreMethodsAfterTaggedAs, object
FlatSpec$InAndIgnoreMethodsAfterTaggedAs, anonymous class
FlatSpec$ItVerbString$$anonfun$is$2, object
FlatSpec$ItVerbString$$anonfun$is$2, class FlatSpec$ItVerbString,
object FlatSpec$ItVerbString, anonymous class
FlatSpec$ItVerbStringTaggedAs$$anonfun$is$1, object
FlatSpec$ItVerbStringTaggedAs$$anonfun$is$1, class
FlatSpec$ItVerbStringTaggedAs, object FlatSpec$ItVerbStringTaggedAs,
class FlatSpec$ItWord, object FlatSpec$ItWord, class
FlatSpec$RegistrationInformer, object FlatSpec$RegistrationInformer,
trait FlatSpec, object FlatSpec, anonymous class FunSuite$$anon$1,
object FunSuite$$anon$1, anonymous class FunSuite$$anon$2, object
FunSuite$$anon$2, anonymous class FunSuite$$anon$3, object
FunSuite$$anon$3, anonymous class FunSuite$$anon$4, object
FunSuite$$anon$4, anonymous class FunSuite$$anonfun$1, object
FunSuite$$anonfun$1, anonymous class FunSuite$$anonfun$2, object
FunSuite$$anonfun$2, anonymous class FunSuite$$anonfun$ignore$1,
object FunSuite$$anonfun$ignore$1, anonymous class
FunSuite$$anonfun$runTests$1, object FunSuite$$anonfun$runTests$1,
anonymous class FunSuite$$anonfun$test$1, object
FunSuite$$anonfun$test$1, class FunSuite$Bundle$, object
FunSuite$Bundle$, object FunSuite$Bundle, object FunSuite$FunNode,
class FunSuite$InfoNode$, object FunSuite$InfoNode$, object
FunSuite$InfoNode, object FunSuite$RegistrationInformer, class
FunSuite$TestNode$, object FunSuite$TestNode$, object
FunSuite$TestNode, trait FunSuite, object FunSuite, class
GivenWhenThen$, object GivenWhenThen$, trait GivenWhenThen, object
GivenWhenThen, class Group, object Group, class Ignore, object Ignore,
trait Informer, object Informer, class MessageRecordingInformer,
object MessageRecordingInformer, trait ModifiableMessage, object
ModifiableMessage, anonymous class NestedSuites$$anonfun$1, object
NestedSuites$$anonfun$1, class NestedSuites, object NestedSuites,
class NodeFamily$, object NodeFamily$, class NodeFamily$Branch, object
NodeFamily$Branch, class NodeFamily$DescriptionBranch$, object
NodeFamily$DescriptionBranch$, class NodeFamily$DescriptionBranch,
object NodeFamily$DescriptionBranch, class NodeFamily$InfoLeaf$,
object NodeFamily$InfoLeaf$, class NodeFamily$InfoLeaf, object
NodeFamily$InfoLeaf, class NodeFamily$Node, object NodeFamily$Node,
class NodeFamily$TestLeaf$, object NodeFamily$TestLeaf$, class
NodeFamily$TestLeaf, object NodeFamily$TestLeaf, class
NodeFamily$Trunk$, object NodeFamily$Trunk$, class NodeFamily$Trunk,
object NodeFamily$Trunk, class NodeFamily$VerbBranch$, object
NodeFamily$VerbBranch$, class NodeFamily$VerbBranch, object
NodeFamily$VerbBranch, class NodeFamily, object NodeFamily, class
NotAllowedException, object NotAllowedException, anonymous class
OneInstancePerTest$$anonfun$runTests$1, object
OneInstancePerTest$$anonfun$runTests$1, trait OneInstancePerTest,
object OneInstancePerTest, anonymous class
ParallelTestExecution$$anonfun$runTests$1, object
ParallelTestExecution$$anonfun$runTests$1, class
ParallelTestExecution, object ParallelTestExecution, class
PendingNothing, object PendingNothing, class PrivateMethodTester$,
object PrivateMethodTester$, class PrivateMethodTester$Invocation,
object PrivateMethodTester$Invocation, anonymous class
PrivateMethodTester$Invoker$$anonfun$1, object
PrivateMethodTester$Invoker$$anonfun$1, anonymous class
PrivateMethodTester$Invoker$$anonfun$2, object
PrivateMethodTester$Invoker$$anonfun$2, anonymous class
PrivateMethodTester$Invoker$$anonfun$3, object
PrivateMethodTester$Invoker$$anonfun$3, anonymous class
PrivateMethodTester$Invoker$$anonfun$4, object
PrivateMethodTester$Invoker$$anonfun$4, anonymous class
PrivateMethodTester$Invoker$$anonfun$5, object
PrivateMethodTester$Invoker$$anonfun$5, anonymous class
PrivateMethodTester$Invoker$$anonfun$6, object
PrivateMethodTester$Invoker$$anonfun$6, class
PrivateMethodTester$Invoker, object PrivateMethodTester$Invoker, class
PrivateMethodTester$PrivateMethod$, object
PrivateMethodTester$PrivateMethod$, class
PrivateMethodTester$PrivateMethod, object
PrivateMethodTester$PrivateMethod, trait PrivateMethodTester, object
PrivateMethodTester, class Report, object Report, class Reporter$,
object Reporter$, trait Reporter, object Reporter, class Rerunnable,
object Rerunnable, trait Rerunner, object Rerunner, trait
ResourcefulReporter, object ResourcefulReporter, class Resources$,
object Resources$, class Resources, object Resources, class
SequentialNestedSuiteExecution, object SequentialNestedSuiteExecution,
trait SeveredStackTraces, object SeveredStackTraces, anonymous class
Spec$$anon$1, object Spec$$anon$1, anonymous class Spec$$anon$2,
object Spec$$anon$2, anonymous class Spec$$anon$3, object
Spec$$anon$3, anonymous class Spec$$anon$4, object Spec$$anon$4,
anonymous class Spec$$anonfun$2, object Spec$$anonfun$2, anonymous
class Spec$$anonfun$ignore$1, object Spec$$anonfun$ignore$1, anonymous
class Spec$$anonfun$org$scalatest$Spec$$registerTest$1, object
Spec$$anonfun$org$scalatest$Spec$$registerTest$1, anonymous class
Spec$$anonfun$org$scalatest$Spec$$runTestsInBranch$1, object
Spec$$anonfun$org$scalatest$Spec$$runTestsInBranch$1, anonymous class
Spec$$anonfun$runTest$1, object Spec$$anonfun$runTest$1, anonymous
class Spec$$anonfun$runTest$2, object Spec$$anonfun$runTest$2,
anonymous class Spec$$anonfun$testNames$1, object
Spec$$anonfun$testNames$1, class Spec$Bundle$, object Spec$Bundle$,
object Spec$Bundle, anonymous class Spec$ItWord$$anonfun$1, object
Spec$ItWord$$anonfun$1, anonymous class Spec$ItWord$$anonfun$apply$1,
object Spec$ItWord$$anonfun$apply$1, object Spec$ItWord, object
Spec$RegistrationInformer, trait Spec, object Spec, class SpecReport,
object SpecReport, anonymous class
StackDepth$$anonfun$failedCodeFileNameAndLineNumberString$1$$anonfun$apply$1,
object StackDepth$$anonfun$failedCodeFileNameAndLineNumberString$1$$anonfun$apply$1,
anonymous class
StackDepth$$anonfun$failedCodeFileNameAndLineNumberString$1, object
StackDepth$$anonfun$failedCodeFileNameAndLineNumberString$1, trait
StackDepth, object StackDepth, class StackDepthException, object
StackDepthException, anonymous class
StackDepthExceptionHelper$$anonfun$1, object
StackDepthExceptionHelper$$anonfun$1, anonymous class
StackDepthExceptionHelper$$anonfun$10, object
StackDepthExceptionHelper$$anonfun$10, anonymous class
StackDepthExceptionHelper$$anonfun$11, object
StackDepthExceptionHelper$$anonfun$11, anonymous class
StackDepthExceptionHelper$$anonfun$2, object
StackDepthExceptionHelper$$anonfun$2, anonymous class
StackDepthExceptionHelper$$anonfun$3, object
StackDepthExceptionHelper$$anonfun$3, anonymous class
StackDepthExceptionHelper$$anonfun$4, object
StackDepthExceptionHelper$$anonfun$4, anonymous class
StackDepthExceptionHelper$$anonfun$5, object
StackDepthExceptionHelper$$anonfun$5, anonymous class
StackDepthExceptionHelper$$anonfun$6, object
StackDepthExceptionHelper$$anonfun$6, anonymous class
StackDepthExceptionHelper$$anonfun$7, object
StackDepthExceptionHelper$$anonfun$7, anonymous class
StackDepthExceptionHelper$$anonfun$8, object
StackDepthExceptionHelper$$anonfun$8, anonymous class
StackDepthExceptionHelper$$anonfun$9, object
StackDepthExceptionHelper$$anonfun$9, anonymous class
StackDepthExceptionHelper$$anonfun$getStackDepth$1, object
StackDepthExceptionHelper$$anonfun$getStackDepth$1, class
StackDepthExceptionHelper$, object StackDepthExceptionHelper$, class
StackDepthExceptionHelper, object StackDepthExceptionHelper, trait
Stopper, object Stopper, anonymous class Suite$$anon$1, object
Suite$$anon$1, anonymous class Suite$$anon$2, object Suite$$anon$2,
anonymous class Suite$$anon$3, object Suite$$anon$3, anonymous class
Suite$$anon$4, object Suite$$anon$4, anonymous class Suite$$anon$5,
object Suite$$anon$5, anonymous class Suite$$anon$6, object
Suite$$anon$6, anonymous class Suite$$anonfun$1, object
Suite$$anonfun$1, anonymous class Suite$$anonfun$2, object
Suite$$anonfun$2, anonymous class Suite$$anonfun$3, object
Suite$$anonfun$3, anonymous class Suite$$anonfun$4, object
Suite$$anonfun$4, anonymous class Suite$$anonfun$5, object
Suite$$anonfun$5, anonymous class Suite$$anonfun$getTags$1$1, object
Suite$$anonfun$getTags$1$1, anonymous class
Suite$$anonfun$runNestedSuites$1, object
Suite$$anonfun$runNestedSuites$1, anonymous class
Suite$$anonfun$runNestedSuites$2, object
Suite$$anonfun$runNestedSuites$2, anonymous class
Suite$$anonfun$runTests$1, object Suite$$anonfun$runTests$1, anonymous
class Suite$$anonfun$runTests$2, object Suite$$anonfun$runTests$2,
class Suite$, object Suite$, object Suite$NoArgTest, trait Suite,
object Suite, class SuiteRerunner, object SuiteRerunner, class
SuperSuite, object SuperSuite, class Tag$, object Tag$, class Tag,
object Tag, class TagAnnotation, object TagAnnotation, class
TestFailedException, object TestFailedException, class
TestPendingException, object TestPendingException, class
TestRegistrationClosedException, object
TestRegistrationClosedException, class TestRerunner, object
TestRerunner, class Tracker, object Tracker, class UnquotedString$,
object UnquotedString$, class UnquotedString, object UnquotedString,
anonymous class WordSpec$$anon$1, object WordSpec$$anon$1, anonymous
class WordSpec$$anon$2, object WordSpec$$anon$2, anonymous class
WordSpec$$anon$3, object WordSpec$$anon$3, anonymous class
WordSpec$$anon$4, object WordSpec$$anon$4, anonymous class
WordSpec$$anon$5, object WordSpec$$anon$5, anonymous class
WordSpec$$anonfun$1, object WordSpec$$anonfun$1, anonymous class
WordSpec$$anonfun$2, object WordSpec$$anonfun$2, anonymous class
WordSpec$$anonfun$3$$anonfun$4, object WordSpec$$anonfun$3$$anonfun$4,
anonymous class WordSpec$$anonfun$3, object WordSpec$$anonfun$3,
anonymous class
WordSpec$$anonfun$org$scalatest$WordSpec$$registerDescriptionBranch$1,
object WordSpec$$anonfun$org$scalatest$WordSpec$$registerDescriptionBranch$1,
anonymous class
WordSpec$$anonfun$org$scalatest$WordSpec$$registerTestToIgnore$1,
object WordSpec$$anonfun$org$scalatest$WordSpec$$registerTestToIgnore$1,
anonymous class
WordSpec$$anonfun$org$scalatest$WordSpec$$registerTestToRun$1, object
WordSpec$$anonfun$org$scalatest$WordSpec$$registerTestToRun$1,
anonymous class
WordSpec$$anonfun$org$scalatest$WordSpec$$registerVerbBranch$1, object
WordSpec$$anonfun$org$scalatest$WordSpec$$registerVerbBranch$1,
anonymous class
WordSpec$$anonfun$org$scalatest$WordSpec$$runTestsInBranch$1, object
WordSpec$$anonfun$org$scalatest$WordSpec$$runTestsInBranch$1,
anonymous class WordSpec$$anonfun$registerTest$1, object
WordSpec$$anonfun$registerTest$1, anonymous class
WordSpec$$anonfun$runTest$1, object WordSpec$$anonfun$runTest$1,
anonymous class WordSpec$$anonfun$runTest$2, object
WordSpec$$anonfun$runTest$2, anonymous class
WordSpec$$anonfun$testNames$1, object WordSpec$$anonfun$testNames$1,
class WordSpec$AfterWord, object WordSpec$AfterWord, class
WordSpec$Bundle$, object WordSpec$Bundle$, class WordSpec$Bundle,
object WordSpec$Bundle, class WordSpec$RegistrationInformer, object
WordSpec$RegistrationInformer, anonymous class
WordSpec$ResultOfTaggedAsInvocationOnString$$anonfun$is$1, object
WordSpec$ResultOfTaggedAsInvocationOnString$$anonfun$is$1, class
WordSpec$ResultOfTaggedAsInvocationOnString, object
WordSpec$ResultOfTaggedAsInvocationOnString, anonymous class
WordSpec$WordSpecStringWrapper$$anonfun$is$2, object
WordSpec$WordSpecStringWrapper$$anonfun$is$2, class
WordSpec$WordSpecStringWrapper, object WordSpec$WordSpecStringWrapper,
trait WordSpec, object WordSpec, class AssertionsSpec, object
AssertionsSpec, class BeforeAndAfterFunctionsSuite, object
BeforeAndAfterFunctionsSuite, class BeforeAndAfterSuite, object
BeforeAndAfterSuite, class BigSuite, object BigSuite, class
BigSuiteSuite, object BigSuiteSuite, class CatchReporterSuite, object
CatchReporterSuite, class ClueSpec, object ClueSpec, class
ConcurrentInformerSpec, object ConcurrentInformerSpec, class
EasySuite, object EasySuite, trait EmptyMocks, object EmptyMocks,
class ExamplesSuite, object ExamplesSuite, class FailureMessagesSuite,
object FailureMessagesSuite, class FailureOfSpec, object
FailureOfSpec, class FeatureSpecSpec, object FeatureSpecSpec, trait
FileMocks, object FileMocks, class FilterSpec, object FilterSpec,
class FlatSpecSpec, object FlatSpecSpec, trait FruitMocks, object
FruitMocks, class FunSuiteSpec, object FunSuiteSpec, class
FunSuiteSuite, object FunSuiteSuite, class GivenWhenThenSpec, object
GivenWhenThenSpec, class InformerSpec, object InformerSpec, class
NestedSuitesSpec, object NestedSuitesSpec, class
OneInstancePerTestSpec, object OneInstancePerTestSpec, class
OperatorNames, object OperatorNames, class PrivateMethodTesterSpec,
object PrivateMethodTesterSpec, trait ReturnsNormallyThrowsAssertion,
object ReturnsNormallyThrowsAssertion, class
SeveredStackTracesFailureSpec, object SeveredStackTracesFailureSpec,
class SeveredStackTracesSpec, object SeveredStackTracesSpec, trait
SharedHelpers, object SharedHelpers, class SpecSpec, object SpecSpec,
class SpecSuite, object SpecSuite, class StubReporter, object
StubReporter, class SuiteCompletedStatusReporter, object
SuiteCompletedStatusReporter, class SuiteSpec, object SuiteSpec, class
SuiteSuite, object SuiteSuite, class TestFailedExceptionSpec, object
TestFailedExceptionSpec, class TestFailedExceptionWithImportSpec,
object TestFailedExceptionWithImportSpec, class VariousWordSpec,
object VariousWordSpec, class WordSpecSpec, object WordSpecSpec,
package concurrent, package events, package fixture, package junit,
package matchers, package mock, package prop, package testng, package
tools, package verb, package jmock, class
BeforeAndAfterFunctionsExtendingSuite, class
BeforeAndAfterFunctionsExtendingFunSuite, class
BeforeAndAfterExtendingSuite, class BeforeAndAfterExtendingFunSuite,
package mytags, class TopLevelSuite, object TopLevelSuite, class
AmpersandWordSpec, class LoginUiWordSpec, object FastAsLight, class
FastAsLight, object HasField, class HasField, object
HasFieldAndGetMethod, class HasFieldAndGetMethod, object
HasFieldAndMethod, class HasFieldAndMethod, object
HasFieldMethodAndGetMethod, class HasFieldMethodAndGetMethod, object
PackageAccessConstructorSuite, class PackageAccessConstructorSuite,
object SlowAsMolasses, class SlowAsMolasses, object Spec$class, object
Suite$class, object Assertions$class, object FunSuite$class, object
BeforeAndAfterEachFunctions$class, object
BeforeAndAfterAllFunctions$class, object Stopper$class, trait
SharedHelpers$class, trait StackDepth$class, trait
BeforeAndAfterEach$class, trait BeforeAndAfterAll$class, trait
FlatSpec$class, trait EmptyMocks$class, trait FailureOf$class, trait
FeatureSpec$class, trait GivenWhenThen$class, trait FileMocks$class,
trait FruitMocks$class, trait WordSpec$class, trait
OneInstancePerTest$class, trait PrivateMethodTester$class, trait
ReturnsNormallyThrowsAssertion$class, trait SeveredStackTraces$class,
anonymous class AssertionsSpec$$anonfun$1, class Spec$Bundle, class
Spec$RegistrationInformer, class Spec$ItWord, trait Suite$NoArgTest,
class Assertions$Equalizer, object Assertions$class, object
Suite$class, object Spec$class, anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$1, anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$2, anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$4, anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$6, anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$9, anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$2$$anonfun$apply$3, anonymous
class AssertionsSpec$$anonfun$1$$anonfun$apply$4$$anonfun$apply$5,
anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$6$$anonfun$apply$7, anonymous
class AssertionsSpec$$anonfun$1$$anonfun$apply$6$$anonfun$apply$8,
anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$9$$anonfun$apply$10,
anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$9$$anonfun$apply$11,
anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$9$$anonfun$apply$12,
anonymous class
AssertionsSpec$$anonfun$1$$anonfun$apply$9$$anonfun$apply$13, class
BeforeAndAfterFunctionsSuite$TheSuper, class
BeforeAndAfterFunctionsSuite$MySuite, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$5, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$6, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$7, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$8, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$9, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$10, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$11, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$13, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$15, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$17, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$19, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$21, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$23, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$25, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$27, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$30, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$32, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$35, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$37, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$40, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$42, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$45, class FunSuite$FunNode,
class FunSuite$TestNode, class FunSuite$InfoNode, class
FunSuite$Bundle, class FunSuite$RegistrationInformer, object
FunSuite$class, anonymous class
BeforeAndAfterFunctionsExtendingSuite$$anonfun$47, object
BeforeAndAfterEachFunctions$class, object
BeforeAndAfterAllFunctions$class, anonymous class
BeforeAndAfterFunctionsExtendingFunSuite$$anonfun$48, anonymous class
BeforeAndAfterFunctionsExtendingFunSuite$$anonfun$49, anonymous class
BeforeAndAfterFunctionsExtendingFunSuite$$anonfun$50, anonymous class
BeforeAndAfterFunctionsSuite$MySuite$$anonfun$1, anonymous class
BeforeAndAfterFunctionsSuite$MySuite$$anonfun$2, anonymous class
BeforeAndAfterFunctionsSuite$MySuite$$anonfun$3, anonymous class
BeforeAndAfterFunctionsSuite$MySuite$$anonfun$4, anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$5$$anon$1, object Stopper$class,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$6$$anon$2,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$7$$anon$3,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$8$$anon$4,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$9$$anon$5,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$10$$anon$6,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$11$MySuite$5,
anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$11$$anonfun$apply$1, anonymous
class BeforeAndAfterFunctionsSuite$$anonfun$11$MySuite$5$$anonfun$12,
anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$11$$anonfun$apply$1$$anon$7,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$13$FunkySuite$1,
object BeforeAndAfterFunctionsSuite$$anonfun$13$FunkySuite$class$1,
anonymous class BeforeAndAfterFunctionsSuite$$anonfun$13$MySuite$1,
anonymous class
BeforeAndAfterFunctionsSuite$$anonfun$13$$anonfun$apply$2, anonymous
class BeforeAndAfterFunctionsSuite$$anonfun$13$MySuite$1$$anonfun$14,
object BeforeAndAfterFunctionsSuite$$anonfun$13$FunkySuite$class$1)
[scalac] at scala.Predef$.assert(Predef.scala:100)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.scala$tools$nsc$transform$Mixin$MixinTransformer$$staticRef(Mixin.scala:578)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.staticCall$1(Mixin.scala:1163)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.scala$tools$nsc$transform$Mixin$MixinTransformer$$postTransform(Mixin.scala:1168)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer$$anonfun$23.apply(Mixin.scala:1233)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer$$anonfun$23.apply(Mixin.scala:1233)
[scalac] at scala.tools.nsc.symtab.SymbolTable.atPhase(SymbolTable.scala:96)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1233)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:877)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:875)
[scalac] at scala.collection.immutable.List.loop$1(List.scala:117)
[scalac] at scala.collection.immutable.List.mapConserve(List.scala:133)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:875)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:785)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1232)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$5.apply(Trees.scala:769)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$5.apply(Trees.scala:767)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:885)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:766)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1232)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:877)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:875)
[scalac] at scala.collection.immutable.List.loop$1(List.scala:117)
[scalac] at scala.collection.immutable.List.mapConserve(List.scala:133)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:875)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:783)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1232)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer.transformTemplate(Trees.scala:861)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:753)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:752)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:885)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:751)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1232)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:877)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:875)
[scalac] at scala.collection.immutable.List.loop$1(List.scala:117)
[scalac] at scala.collection.immutable.List.mapConserve(List.scala:133)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:875)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:747)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:747)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:885)
[scalac] at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:746)
[scalac] at
scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1232)
[scalac] at
scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:878)
[scalac] at
scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
[scalac] at
scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:326)
[scalac] at
scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:326)
[scalac] at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:47)
[scalac] at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:326)
[scalac] at
scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:294)
[scalac] at
scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:294)
[scalac] at scala.collection.Iterator$class.foreach(Iterator.scala:651)
[scalac] at
scala.collection.mutable.ListBuffer$$anon$1.foreach(ListBuffer.scala:311)
[scalac] at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:294)
[scalac] at scala.tools.nsc.Global$Run.compileSources(Global.scala:896)
[scalac] at scala.tools.nsc.Global$Run.compile(Global.scala:997)
[scalac] at scala.tools.nsc.Main$.process(Main.scala:106)
[scalac] at scala.tools.nsc.Main$.main(Main.scala:123)
[scalac] at scala.tools.nsc.Main.main(Main.scala)

BUILD FAILED
/Users/bv/nobkp/delus/st29/build.xml:183: Compilation failed because
of an internal compiler error; see the error output for details.

Total time: 17 minutes 47 seconds
setups-MacBook-Pro-2:st29 bv$


On Fri, Mar 18, 2011 at 4:05 PM, Kato Kazuyoshi
<kato.ka...@gmail.com> wrote:

--

Bill Venners

unread,
Mar 18, 2011, 8:23:04 PM3/18/11
to scala-i...@googlegroups.com
Hi Kato,

Just as a test I hand edited the template.css on the server. It now
has the display:none in it and I don't see the problem anymore. So I
think that was fixed and I just wasn't seeing it. Just to make sure I
was not getting a cached css file I made a copy here:

http://www.artima.com/xxx/scaladocprobs/

To be clear, the one I'm talking about is the one whereby the main doc
comment is repeated twice above the class or trait. The first line of
each method comment is still repeated. I looked at the 2.8
template.css file and sure enough that line isn't there:

#comment {
padding-right: 8px;
padding-left: 8px;
}

So I was using an outdated starting point. I.e., that was a bug in my
attempt to workaround other bugs. Thanks for finding the problem, and
sorry to waste your time on that one.

We just finished submitting bug reports to trak for the other issues I
noticed yesterday. They are:

#4356: &#8212; shows up in the output rather than being used as an
HTML entity. An example is here in the description (search for 8212)

#4357: &#8220; and &#8221; have the same problem. An example is on


this page (search for 8221):

#4358: <em>i.e.</em> causes everything after the i. in the same


paragraph to be dropped, and the rest of the entire page to show up in

italics. An example is on the call method documentation in the
description

#4359: eq method and equals method have markup

#4360: general problem with figuring out when to show a fully


qualified name and when not to

#4361: carat symbols (^) in the code examples are just dropped from
the output. They are used to point to things all over the place.

Thanks.

Bill


On Fri, Mar 18, 2011 at 4:05 PM, Kato Kazuyoshi
<kato.ka...@gmail.com> wrote:

--

Paul Phillips

unread,
Mar 18, 2011, 9:04:45 PM3/18/11
to scala-i...@googlegroups.com, Bill Venners
On 3/18/11 4:52 PM, Bill Venners wrote:
> I got a stack trace when compiling under the latest 2.9.0-snapshot.
> I'll try going back to an older 2.9. In case it is useful to people,
> I've attached the stack trace below. Scala definitely has the most
> impressive stack traces I've seen.

[snip 1100 line stack trace]

I don't even see the code. All I see is blonde, brunette, red-head.

Here's a patch which will get you compiling again.


diff --git
a/src/test/scala/org/scalatest/BeforeAndAfterFunctionsSuite.scala
b/src/test/scala/org/scalatest/BeforeAndAfterFunctionsSuite.scala
index 7cbe9ad..1204642 100644
--- a/src/test/scala/org/scalatest/BeforeAndAfterFunctionsSuite.scala
+++ b/src/test/scala/org/scalatest/BeforeAndAfterFunctionsSuite.scala
@@ -21,6 +21,12 @@ import org.scalatest.events.Ordinal
import org.scalatest.SharedHelpers.SilentReporter

class BeforeAndAfterFunctionsSuite extends FunSuite {
+ trait FunkySuite extends Suite {
+ override def run(testName: Option[String], reporter: Reporter,
stopper: Stopper, filter: Filter,
+ properties: Map[String, Any], distributor:
Option[Distributor], tracker: Tracker) {
+ throw new NumberFormatException
+ }
+ }

class TheSuper extends Suite {
var runTestWasCalled = false
@@ -113,11 +119,6 @@ class BeforeAndAfterFunctionsSuite extends FunSuite {

test("If any call to super.runTest completes abruptly with an
exception, runTest " +
"will complete abruptly with the same exception, however, before
doing so, it will invoke afterEach") {
- trait FunkySuite extends Suite {
- protected override def runTest(testName: String, reporter:
Reporter, stopper: Stopper, properties: Map[String, Any], tracker:
Tracker) {
- throw new NumberFormatException
- }
- }
class MySuite extends FunkySuite with BeforeAndAfterEachFunctions
with BeforeAndAfterAllFunctions {
var afterEachCalled = false
afterEach {
@@ -133,11 +134,6 @@ class BeforeAndAfterFunctionsSuite extends FunSuite {

test("If both super.runTest and afterEach complete abruptly with an
exception, runTest " +
"will complete abruptly with the exception thrown by
super.runTest.") {
- trait FunkySuite extends Suite {
- protected override def runTest(testName: String, reporter:
Reporter, stopper: Stopper, properties: Map[String, Any], tracker:
Tracker) {
- throw new NumberFormatException
- }
- }
class MySuite extends FunkySuite with BeforeAndAfterEachFunctions
with BeforeAndAfterAllFunctions {
var afterEachCalled = false
afterEach {
@@ -181,12 +177,6 @@ class BeforeAndAfterFunctionsSuite extends FunSuite {

test("If any call to super.run completes abruptly with an exception,
run " +
"will complete abruptly with the same exception, however, before
doing so, it will invoke afterAll") {
- trait FunkySuite extends Suite {
- override def run(testName: Option[String], reporter: Reporter,
stopper: Stopper, filter: Filter,
- properties: Map[String, Any], distributor:
Option[Distributor], tracker: Tracker) {
- throw new NumberFormatException
- }
- }
class MySuite extends FunkySuite with BeforeAndAfterEachFunctions
with BeforeAndAfterAllFunctions {
var afterAllCalled = false
afterAll {
@@ -202,12 +192,6 @@ class BeforeAndAfterFunctionsSuite extends FunSuite {

test("If both super.run and afterAll complete abruptly with an
exception, run " +
"will complete abruptly with the exception thrown by super.run.") {
- trait FunkySuite extends Suite {
- override def run(testName: Option[String], reporter: Reporter,
stopper: Stopper, filter: Filter,
- properties: Map[String, Any], distributor:
Option[Distributor], tracker: Tracker) {
- throw new NumberFormatException
- }
- }
class MySuite extends FunkySuite with BeforeAndAfterEachFunctions
with BeforeAndAfterAllFunctions {
var afterAllCalled = false
afterAll {


Paul Phillips

unread,
Mar 18, 2011, 9:33:58 PM3/18/11
to scala-i...@googlegroups.com, Bill Venners
On 3/18/11 6:04 PM, Paul Phillips wrote:
> I don't even see the code. All I see is blonde, brunette, red-head.

Here's the facebook page for that particular blonde.

https://lampsvn.epfl.ch/trac/scala/ticket/4363

Bill Venners

unread,
Mar 18, 2011, 11:08:19 PM3/18/11
to scala-i...@googlegroups.com
Hi Kato,

I was able to build the docs with the latest 2.9.0-SNAPSHOT, by not
attempting to compile the tests. (Even with Paul's patch I still got
the same stack trace. I'm probably doing the same thing elsewhere in
the tests.) I put up what it looks like with the normal css file here:

http://www.artima.com/scaladocprobs2/

I went through and verified that all the bugs we submitted to trak
today exist when using the normal css file.

To get a feel for the kind of changes I would suggest we do to the css
file, compare:

http://www.artima.com/scaladocprobs2/org/scalatest/Suite.html

with:

http://www.artima.com/xxx/scaladocprobs/org/scalatest/Suite.html

I tried <strong> and it does seem to work now. That bug report was
closed already, but I wanted to check it. So at this point the main
thing I'd suggest is we put a bit more space between paragraphs, and
likely a bit more space between the lines. You could also consider
using a serif font. Tomorrow I'll try and figure out what amounts I
used in my css file. It isn't a simple diff anymore because your file
has changed so much since I forked it, and I don't have the one I
forked it from. Anyway, I should be able to make some concrete
suggestions for that tomorrow.

Thanks.

Bill

On Fri, Mar 18, 2011 at 4:05 PM, Kato Kazuyoshi
<kato.ka...@gmail.com> wrote:

--

Paul Phillips

unread,
Mar 18, 2011, 11:45:46 PM3/18/11
to scala-i...@googlegroups.com, Bill Venners
On 3/18/11 8:08 PM, Bill Venners wrote:
> Hi Kato,
>
> I was able to build the docs with the latest 2.9.0-SNAPSHOT, by not
> attempting to compile the tests. (Even with Paul's patch I still got
> the same stack trace. I'm probably doing the same thing elsewhere in
> the tests.)

Yeah, I'm positive that's the problem but I stopped when I'd gotten that
file to compile in isolation. I see now you have many uses of it. You
might want to take the opportunity to move your traits to the highest
level which makes sense. Defining traits inside closures when it's not
necessary is just asking for (and receiving) trouble.

Rüdiger Keller

unread,
Mar 19, 2011, 5:48:40 AM3/19/11
to scala-i...@googlegroups.com
Hello,

I'm no Scala committer, so I don't know if it is really ok for me to
post on this list, but I read the conversation and was reminded of the
shortcomings of the current Scaladoc layout.

Perhaps it's just me, but I find the current layout very hard to parse
visually, especially the lists of members. All the grey and white
alternating is more distracting that helping to bring structure to the
layout, IMHO. Also, there is generally a lack of padding, making
everything look very cramped and tangled up.

I would like to suggest the following changes to the CSS, which I
threw together in a quick Firebug session. It's just two added lines
and one removed line:

div.members > ol > li {
display: block; /* unchanged */
border-bottom: 1px solid black; /* new */
padding: 5px 0; /* new */
}

.signature {
/* removed background-color, everything else is unchanged */
clear: both;
display: block;
font-family: monospace;
font-size: 10pt;
padding: 3px;
}

If you use something like Firebug it takes only a minute to try it. I
would be happy to see changes like this make its way into the official
Scaladoc. Also, I would like add additional padding to various places,
to make the layout less cramped. But that is less of an issue compared
to the member lists.

Regards,
Ruediger Keller

2011/3/19 Bill Venners <bi...@artima.com>:

Kato Kazuyoshi

unread,
Mar 19, 2011, 8:23:43 AM3/19/11
to scala-i...@googlegroups.com
Hi Bill,

On Sat, Mar 19, 2011 at 9:23 AM, Bill Venners <bi...@artima.com> wrote:
>
> #4356: &#8212; shows up in the output rather than being used as an
> HTML entity. An example is here in the description (search for 8212)
>
> #4357: &#8220; and &#8221; have the same problem. An example is on
> this page (search for 8221):
>
> #4358: <em>i.e.</em> causes everything after the i. in the same
> paragraph to be dropped, and the rest of the entire page to show up in
> italics. An example is on the call method documentation in the
> description
>
> #4359: eq method and equals method have markup
>
> #4360: general problem with figuring out when to show a fully
> qualified name and when not to
>
> #4361: carat symbols (^) in the code examples are just dropped from
> the output. They are used to point to things all over the place.
>

I've fixed #4361 now. Please try SVN trunk again.

To: Other Scala committers

I have a commit rights on src/compiler/scala/tools/nsc/doc. But I want
to commit under src/compiler/scala/tools/nsc (SR-683) and
test/scaladoc.
How to get a commit bit on these directories?

Regards,

--
Kato Kazuyoshi

Antonio Cunei

unread,
Mar 19, 2011, 9:25:02 AM3/19/11
to Kato Kazuyoshi, scala-i...@googlegroups.com
On 19/03/2011 13:23, Kato Kazuyoshi wrote:
> To: Other Scala committers
>
> I have a commit rights on src/compiler/scala/tools/nsc/doc. But I want
> to commit under src/compiler/scala/tools/nsc (SR-683) and
> test/scaladoc.
> How to get a commit bit on these directories?
>

Hello Kato,

I will forward your request to our sysadmin; you should get access on
Monday.

Toni

--
Antonio Cunei
Scala Team, EPFL

Randall R Schulz

unread,
Mar 19, 2011, 1:21:07 PM3/19/11
to scala-i...@googlegroups.com
On Saturday March 19 2011, Rüdiger Keller wrote:
> Hello,
>
> ...

>
> div.members > ol > li {
> display: block; /* unchanged */
> border-bottom: 1px solid black; /* new */
> padding: 5px 0; /* new */
> }
>
> .signature {
> /* removed background-color, everything else is unchanged */
> clear: both;
> display: block;
> font-family: monospace;
> font-size: 10pt;
> padding: 3px;
> }

And let us note that the foregoing illustrates the proper way to use
colons. _No space on their left_, one on their right.

PLEASE!


> ...
>
> Regards,
> Ruediger Keller


Randall Schulz

Bill Venners

unread,
Mar 19, 2011, 2:12:52 PM3/19/11
to Paul Phillips, scala-i...@googlegroups.com
Hi Paul,

In that one class you submitted a patch for, there were really two
different FunkySuite's, one that overrode run and another that
overrode runTests. Each was duplicated twice. It would be an
improvement to factor those out so they are shared and not duplicated.
(Each would be shared by two tests.) But in general, shouldn't it be
best practice to define any class or trait at whatever level makes
sense for it? In tests I think it will be common to want to define a
few classes and traits right where they are used, inside the test
itself, which is often a closure. That way they are only visible where
they are used. By defining them only up to the level they are needed,
it makes the intent more obvious--that it is only used in that scope.
What kind of trouble might that cause?

Bill

Paul Phillips

unread,
Mar 19, 2011, 2:19:02 PM3/19/11
to Bill Venners, scala-i...@googlegroups.com
On 3/19/11 11:12 AM, Bill Venners wrote:
> But in general, shouldn't it be
> best practice to define any class or trait at whatever level makes
> sense for it? In tests I think it will be common to want to define a
> few classes and traits right where they are used, inside the test
> itself, which is often a closure. That way they are only visible where
> they are used. By defining them only up to the level they are needed,
> it makes the intent more obvious--that it is only used in that scope.
> What kind of trouble might that cause?

I'm just describing the reality of the implementation. It wasn't an
abstract idea about software engineering, it was an empirically proven
observation.

Bill Venners

unread,
Mar 19, 2011, 2:26:10 PM3/19/11
to scala-i...@googlegroups.com
Hi Kato,

Thanks. I'll try this when the next 2.9.0-SNAPSHOT rolls around on the
guitar. I'm assuming the snapshot is being deployed automatically off
of the nightly build? Is that correct?

I'll also try building it from SVN, which I haven't ever tried before.

Bill

--

Bill Venners

unread,
Mar 19, 2011, 2:40:19 PM3/19/11
to Paul Phillips, scala-i...@googlegroups.com
Hi Paul,

OK. Maybe it's good that I have done it then, so there's some code
that flags problems if they arise. One of the things I think is nice
about Scala is the nesting rules are very general. You are allowed to
put objects inside of classes inside of traits inside of classes
inside of methods inside of closures inside of objects inside of
traits, etc. Scoping works as it looks like it would work. At least it
is defined to work the way it looks like it would work. If you allow
people to do something like that, then someone somewhere is bound to
do it, so it does need to compile.

Bill
----

Bill Venners

unread,
Mar 19, 2011, 3:08:21 PM3/19/11
to scala-i...@googlegroups.com, Rüdiger Keller
Hi All,

I put up a version of ScalaTest's Scaladoc with Rüdiger's suggested
changes to the CSS file. You can compare the output of the original:

http://www.artima.com/sdp/original/org/scalatest/GivenWhenThen.html

With what it looks like with your suggested changes:

http://www.artima.com/sdp/ruediger/org/scalatest/GivenWhenThen.html

If you click on Any and AnyRef you'll get more methods to see how it
looks. I think I like the alternating gray and white better than the
lines, but agree that adding a bit more margin above and below each
entry in the list is an improvement. I'll work on a suggested set of
changes to the css file right now and point you to it once I'm done.

Thanks.

Bill

Bill Venners

unread,
Mar 19, 2011, 3:31:42 PM3/19/11
to scala-i...@googlegroups.com
Hi All,

Sorry to not have noticed these earlier, but I have observed some
other issues this morning, which I would call bugs, but don't think
all need to be fixed necessarily by 2.9.0. One is that when I clicked
on Any and AnyRef, sometimes there is blocks of gray. I.e., it doesn't
always alternate between gray and white.

For a specific example, on this page:

http://www.artima.com/sdp/original/org/scalatest/GivenWhenThen.html

If I click on Hide All, then AnyRef, the !=, ##, $asInstanceOf,
$isInstanceOf methods all show up together with a gray background.

And another bug is that $asInstanceOf and $isInstanceOf should show up
as asInstanceOf and isInstanceOf, because that's what people write and
read in the code.

Another one is that often these methods from Scala show up without any
documentation. That makes the documentation look incomplete. This is
true of the !=, ##, $asInstanceOf, $isInstanceOf methods I mentioned
above, but also true of methods like canEqual, productArity, etc.,
that get generated for case classes. Would be nice to generate
documentation for those compiler-generated methods in Scaladoc. An
example is here:

http://www.artima.com/sdp/original/org/scalatest/events/IndentedText.html

We'll submit these as three more bugs in Trak, but again I think these
could wait until after 2.9.0.

One new one that I hope can be fixed in 2.9.0, because it shows up on
a bunch of pages of ScalaTest's documentation, is that close strong
tags are being dropped if they surround the entire comment for a
method. Take a look here:

http://www.artima.com/sdp/original/org/scalatest/TestFailedException.html

The failedTestCodeFileNameAndLineNumberString is deprecated, and it
has the doc comment:

/**
* <strong><code>failedTestCodeFileNameAndLineNumberString</code>
has been deprecated and will be removed in a future version of
* ScalaTest. Please call
<code>failedCodeFileNameAndLineNumberString</code> instead.</strong>
*/
@deprecated // deprecated in 1.0, remove in 1.4
val failedTestCodeFileNameAndLineNumberString: Option[String] =
failedCodeFileNameAndLineNumberString

The Scaladoc output is:

<p class="shortcomment
cmt"><strong><code>failedTestCodeFileNameAndLineNumberString</code>
has been deprecated and will be removed in a future version of
ScalaTest.</p>
<div class="fullcomment"><div class="comment
cmt"><p><strong><code>failedTestCodeFileNameAndLineNumberString</code>
has been deprecated and will be removed in a future version of
ScalaTest. Please call
<code>failedCodeFileNameAndLineNumberString</code> instead.</strong>
</p>

So the </strong> shows up in the fullcomment, but not the
shortcomment. That makes the rest of the method list comments all
appear in bold. This happens pretty much on any ScalaTest trait or
class that has something deprecated in it, which is a lot of things.
It also screws up the JavaScript for the method with the problem,
because if you click on the method, it hides the short comment,
doesn't show the full comment, and then no matter how much mad
clicking you do on that method thereafter, it won't show either the
full or short comment.

By the way, this also happens with the <em>i.e.</em> problem that we
intended to already submit as a bug report, but I can't seem to find
it. I'll check with Darlene. Maybe we forgot. But with the original
CSS file, the doc comment is truncated when it hits <em>i.e.</em>.
This shows up in the call method of EasyMockSugar:

http://www.artima.com/sdp/original/org/scalatest/mock/EasyMockSugar.html

When you click on that method, it hides the short comment, doesn't
show the full comment, and no matter how may times you click on it
anymore, you get nothing. These latter ones that eat documentation I
think should be fixed in 2.9.0.

I'll make sure we have all these submitted into Trak as soon as possible.

Thanks.

Bill
----

Rüdiger Keller

unread,
Mar 19, 2011, 4:23:19 PM3/19/11
to Bill Venners, scala-i...@googlegroups.com
Nice to see that someone looked at my suggestions. I have to admit
they aren't very refined, but I could create a more refined version if
there is demand for it.

Also, in my opinion the method parameters and attributes at the bottom
of method docs need some love. The spacings are irregular and the
parameter names aren't aligned with the parameter descriptions.

Should I post some more suggestions?

Regards,
Rüdiger

Bill Venners

unread,
Mar 19, 2011, 5:34:10 PM3/19/11
to scala-i...@googlegroups.com
Hi All,

I've came up with some suggested changes to the template.css file.
Here's the before:

http://www.artima.com/sdp/original/org/scalatest/Suite.html

And here's the after:

http://www.artima.com/sdp/suggestion/org/scalatest/Suite.html

The differences are:

I changed the line height from 1 to 1.1. This little tweak makes the
paragraphs easier to read in my opinion. The lines are currently
sitting too much right on top of each other.

I increases the margin around paragraphs in comments by quite a bit,
from 0.4em to 0.9em. The paragraphs were also very close together,
which made it hard to visually separate them.

I increased the padding for short comments from 0 to 2px to add just a
tad of space there. (As Ruediger Keller pointed out in his earlier,
they were also squished together.)

And what's a bit wierd is I decreased the padding for signatures from
3px to 2px. This made it look more uniform to me once the short
comment had a 2px padding.

Diff is:

[sites@artima01 sdp]$ diff original/lib/template.css suggestion/lib/template.css
20c20
< line-height: 1;
---
> line-height: 1.1;
172c172
< padding: 3px;
---
> padding: 2px;
234,235c234,235
< margin-bottom: 0.4em;
< margin-top: 0.4em;
---
> margin-bottom: 0.9em;
> margin-top: 0.9em;
362c362
< padding: 0;
---
> padding: 2px;

This is a difference off of 2.9.0-SNAPSHOT of one day ago. Sorry I
haven't checked out the trunk yet. I'll do that later today. Let me
know if things have changed too much since I grabbed the template.css
file that you'd prefer I give you a diff off of trunk.

I tested this in Safari and Firefox on the Mac and Explorer and
Firefox on Windows. Would be good to have others look at it in other
browsers on other platforms. One thing I did play with is increasing
the font size, becuase 10pt looks very small on Safari on the Mac. But
that made fonts look uglier in the other browsers, so I dropped that.

I think these few changes to the template.css fie would go a long way
to making Scaladoc more readable.

Thanks.

Bill
----

Ruediger Keller

unread,
Mar 19, 2011, 6:10:26 PM3/19/11
to scala-i...@googlegroups.com, Bill Venners
I like the suggested changes. Although for methods, in the section for
the method parameters at the bottom, the parameter names are now even
less properly aligned with the parameter description to the right.
Nonetheless the changes are a net gain.

Regards,
Rüdiger


2011/3/19 Bill Venners <bi...@artima.com>:

Donna Malayeri

unread,
Mar 19, 2011, 6:19:10 PM3/19/11
to scala-i...@googlegroups.com, Bill Venners
Rüdiger,

I'll be in charge of some of the Scaladoc tasks for the next few months, and I quite appreciate your suggestions and your new CSS layout (particularly as I'm still learning the intricacies of CSS). So, to answer your question--yes! We would love more suggestions, and refined a CSS if you have time. I think the visual design of Scaladoc is quite important, and I am quite happy to see so many contributions and comments from the community.

thanks,
Donna

Bill Venners

unread,
Mar 19, 2011, 6:55:07 PM3/19/11
to Ruediger Keller, scala-i...@googlegroups.com
Hi Rüdiger,

Can you elaborate on which section you are concerned about? Is it when
you click on a method name, and it pops out the long description
(which works really nicely now, by the way), the name of the param is
a bit higher than the description?

Bill

--

Bill Venners

unread,
Mar 19, 2011, 7:17:06 PM3/19/11
to Donna Malayeri, scala-i...@googlegroups.com
Hi Donna,

Nice to meet you. I was hoping to get some last minute suggestions
into Scaladoc for 2.9.0, but at this late point understand they'd need
to be quick to fix and low risk. After 2.9.0 more can be done. I have
been concerned about it more than others possibly because I really put
Scaladoc through its paces in ScalaTest documentation. I have
HTML-markup documentation, etc., for several classes and traits, and
that markup was broken badly in 2.8.0 in addition to the layout being
less readable than 2.7.7. It really made the tool harder to use for
ScalaTest users, and I had to spend time and money trying to work
around it. It is is much better shape now, and with a few more tweaks
and fixes will be even better. Hopefully we can squeeze a few more
improvements into 2.9.0.

Bill

Nils Kilden-Pedersen

unread,
Mar 19, 2011, 7:31:47 PM3/19/11
to scala-i...@googlegroups.com, Donna Malayeri, Bill Venners
On Sat, Mar 19, 2011 at 5:19 PM, Donna Malayeri <lindy...@gmail.com> wrote:
Rüdiger,

I'll be in charge of some of the Scaladoc tasks for the next few months, and I quite appreciate your suggestions and your new CSS layout (particularly as I'm still learning the intricacies of CSS). So, to answer your question--yes!  We would love more suggestions, and refined a CSS if you have time. I think the visual design of Scaladoc is quite important, and I am quite happy to see so many contributions and comments from the community.

I know this is not helpful at all, but could something be done about the awful color scheme?

Antonio Cunei

unread,
Mar 19, 2011, 11:13:35 PM3/19/11
to scala-i...@googlegroups.com
On 19/03/2011 19:26, Bill Venners wrote:
> Hi Kato,
>
> Thanks. I'll try this when the next 2.9.0-SNAPSHOT rolls around on the
> guitar. I'm assuming the snapshot is being deployed automatically off
> of the nightly build? Is that correct?
>

Bill,

Right now 2.9.0-SNAPSHOT is built from the 2.9.x branch, which is
updated manually and may be a few commits behind. However
2.10.0-SNAPSHOT at this time corresponds exactly to the nightly from trunk.

Toni

Ruediger Keller

unread,
Mar 20, 2011, 5:23:13 AM3/20/11
to scala-i...@googlegroups.com, Bill Venners, Donna Malayeri
Hi Bill,

I'm answering your question from the other thread here.

> Can you elaborate on which section you are concerned about? Is it when
> you click on a method name, and it pops out the long description
> (which works really nicely now, by the way), the name of the param is
> a bit higher than the description?

Yes, that's exactly what I am referring to. The parameter descriptions
at the bottom of the expanded method descriptions. I think it would
look better if the parameter names were aligned with the first line of
description.

I will try to improve the layout a bit more and that is one of the
points on the list. If you don't mind I will use your suggestion as
the basis for my work.


@everyone: If someone has ideas for improvement, please speak up. I'm
no user interface designer, I just happen to know a little bit of CSS.
Also, I would like to hear how you like my initial proposal, where I
changed the style for the value members list. Bill was so kind to put
up a version of his ScalaTest Scaladocs with it:

Original:
http://www.artima.com/sdp/original/org/scalatest/GivenWhenThen.html

My suggestions:
http://www.artima.com/sdp/ruediger/org/scalatest/GivenWhenThen.html


I think my suggestion can be improved further, but first I want to
know it it's worth the time. If everyone is in favor of the old style
with alternating grey and white, I will not pursue this approach.

Hmm, I just noticed it looks much better if the separating lines
aren't black but light gray. Perhaps I will first put up a further
improved version and then everyone can comment.

Regards,
Rüdiger


2011/3/19 Bill Venners <bi...@artima.com>:


> Hi Rüdiger,
>
> Can you elaborate on which section you are concerned about? Is it when
> you click on a method name, and it pops out the long description
> (which works really nicely now, by the way), the name of the param is
> a bit higher than the description?
>

> Bill
>


> On Sat, Mar 19, 2011 at 3:10 PM, Ruediger Keller
> <ruedige...@rk42.de> wrote:
>> I like the suggested changes. Although for methods, in the section for
>> the method parameters at the bottom, the parameter names are now even
>> less properly aligned with the parameter description to the right.
>> Nonetheless the changes are a net gain.
>>

>> Regards,
>> Rüdiger
>>
>>
>> 2011/3/19 Bill Venners <bi...@artima.com>:
>>> Hi All,
>>>

Rüdiger Keller

unread,
Mar 20, 2011, 8:58:37 AM3/20/11
to scala-i...@googlegroups.com, Donna Malayeri, Bill Venners
Ok, I'm done with the first iteration. I just attached the new
template.css and index.css. I hope that is not too inconvenient.

If there is demand for it, I can put my modified version of the
Scaladocs on my own web space, but I would prefer not to. I only have
20MB and the Scaladocs are 200MB in size. I hope Donna or Bill can set
up comparison sites again.

Also, I used Firefox and Firebug to create my changes, but a (very)
quick check with IE8 and Chrome showed no problems.

Ok, I'm waiting for feedback then.

Regards,
Rüdiger


2011/3/20 Ruediger Keller <ruedige...@rk42.de>:
> Ok. I'm working on it right now and it's coming along nicely, I think.
>
>
> 2011/3/20 Donna Malayeri <lindy...@gmail.com>:


>>> I think my suggestion can be improved further, but first I want to
>>> know it it's worth the time. If everyone is in favor of the old style
>>> with alternating grey and white, I will not pursue this approach.
>>

>> Personally, I like the new style (no alternating black and grey), but I might be in a minority here. If we come up with some concrete re-designs, I can make a poll so people can vote on their preferred design.
>>
>> Donna
>

index.css
template.css

Rüdiger Keller

unread,
Mar 20, 2011, 9:33:50 AM3/20/11
to scala-i...@googlegroups.com, Donna Malayeri, Bill Venners
Perhaps I should say something about *what* I changed. :-)

First, I used the Scaladoc files from the latest 2.10 nightly build as
the basis for my changes, with Bill's changes on top. Although I must
admit that I reverted some of his changes.

The biggest change is the layout of the member lists. No more gray
headers, everything is white now, with light gray separators in
between. Light gray is a much better choice than my previous black, I
think.

Then I changed the spacing in many places to be more even / regular
and to ensure that things line up properly. Also I added some spacing
to emphasize the separation of separate things. Does that sentence
make sense? :-)

Also, I changed the line height to the default which is something like
1.2. This makes everything much easier to read.

I changed the separators at the bottom of the expanded method / type
descriptions to be somewhat lighter and I also removed the separating
lines in between the parameter descriptions.

Last but not least, I changed the line breaking behavior when the
window is not wide enough to display a signature in a single line.
Just compare it with the original version, you will notice the
improvement.

There might be some other minor things, I forgot.


I wanted to add that I would like the colons for defining the types
not to have leading white space, just as Randall noted before. But I
cannot change that with the CSS, because the HTML files generated
contain white space (and even line breaks) before the colons.

Another thing I thought had been fixed already, but is not: if I click
"display packages only" in the left panel, the packages collapse as
expected, but the "hide" links next to the package names do not change
into "show" links. IMHO this is clearly a bug and should be fixed.

Should I create tickets for this? Although I think there already
exists one for the latter.

Regards,
Rüdiger

2011/3/20 Rüdiger Keller <ruedige...@googlemail.com>:

Rüdiger Keller

unread,
Mar 20, 2011, 10:15:04 AM3/20/11
to scala-i...@googlegroups.com, Donna Malayeri, Bill Venners
Ok, I did some additional changes, now also including the index.

Files are attached.


2011/3/20 Rüdiger Keller <ruedige...@googlemail.com>:

index.css
ref-index.css
template.css

Donna Malayeri

unread,
Mar 20, 2011, 2:08:23 PM3/20/11
to Rüdiger Keller, scala-i...@googlegroups.com, Bill Venners
Yes, please do create tickets (assuming non-duplicates). Thanks for your work and the explanations! I will set up a site with both versions for comparison, probably on Monday or Tuesday.

thanks,
Donna

Rüdiger Keller

unread,
Mar 20, 2011, 2:14:00 PM3/20/11
to Donna Malayeri, scala-i...@googlegroups.com, Bill Venners
Ok, I will do so.

I have again made some changes. I think I'm quite happy with the
results now. Again, the files are attached.

Regards,
Rüdiger


2011/3/20 Donna Malayeri <lindy...@gmail.com>:

index.css
ref-index.css
template.css

Daniel Sobral

unread,
Mar 20, 2011, 3:08:02 PM3/20/11
to scala-i...@googlegroups.com, Ruediger Keller, Bill Venners, Donna Malayeri
Well, one thing to be concerned about is that the grayed areas are clickable areas. With your suggestions, there's no indication at all of what is a clickable area. Something must be done about this.
--
Daniel C. Sobral

I travel to the future all the time.

Ruediger Keller

unread,
Mar 20, 2011, 3:30:19 PM3/20/11
to Daniel Sobral, scala-i...@googlegroups.com, Bill Venners, Donna Malayeri
Well, I thought about that too. But frankly I'm not too concerned.

There are other clickable areas in the current scaladoc that aren't
highlighted at all. The text with white background below the gray
signatures, for example.

Also, since when is gray background an indication of "clickable"? For
me it's not. And for the current scaladoc it's also not. Because it's
not consistent about this. Some gray backgrounds are clickable, some
are not. Examples: the class signature at the top of the file,
instance constructors, type members.

But! If you have a good idea for a visual indication of
"clickability", I'm more than willing to try to implement it.

Perhaps the white backgrounds need some getting used to, but I'm sure
the gray ones also did. So please give them a try.

Also, if everyone insists that signatures must have gray backgrounds,
I will create a version with it, but in my opinion it's just visual
noise that impedes scanning of the page.

Regards,
Rüdiger


2011/3/20 Daniel Sobral <dcso...@gmail.com>:

Daniel Sobral

unread,
Mar 20, 2011, 6:59:05 PM3/20/11
to Ruediger Keller, scala-i...@googlegroups.com, Bill Venners, Donna Malayeri
My concern is just for a visual indicator that something might be clickable. I'm not fond of the current convention either, but having nothing at all... I don't know.

Bill Venners

unread,
Mar 20, 2011, 7:05:23 PM3/20/11
to Rüdiger Keller, Donna Malayeri, scala-i...@googlegroups.com
Hi Ruediger,

I generated Scaladoc for the ScalaTest trunk with the latest
2.9.0-SNAPSHOT, then put your three .css files in there. I then
deployed it here:

http://www.artima.com/sdp/ruediger2/

Comparing this to my suggestion:

http://www.artima.com/sdp/suggestion/

I think your line height of 1.2 might be an improvement, but I could
live with either for 2.9.0. I think I actually prefer the alternating
gray/white background of current Scaladoc to the all-white with
separator lines you're suggesting.

There are some other issues I'm seeing in ruediger2. For example, on
trait Suite:

http://www.artima.com/sdp/ruediger2/org/scalatest/Suite.html

There's extra white space at the top before the first comment line
that begins, "A suite of tests. A Suite instance encapsulates..."

There's missing white space after lists. Look at the list in the
Extensability section down at the bottom for an example. After
"expectedTestCount - override this method to count this Suite's...",
there's no white space before the start of the next paragraph.

I think also the paragraphs are not quite far enough apart to visually
separate them.

One thing I think we should separate is what would go into 2.9.0 and
what would go later. This is very last minute for 2.9.0. I should have
gone through and done my second pass looking for remaining issues
earlier, but I was very busy. So at this point I think only critical
problems should be addressed, and for layout I think just adding a bit
of white space here and there is probably all we should try to do for
2.9.0. After that Donna can lead a more careful and thorough redesign
of the layout, if need be.

In my suggestion I was trying to be minimal so that the change would
be low risk and easy enough to go into 2.9.0. I'll make one more pass
today using your suggestions (line height of 1.2, and evening out
those descriptions, which you pointed out yesterday.) After that I'll
stop and I think that will be good enough for 2.9.0 as far as layout
goes. The kind of changes your suggesting are more appropriate to
consider for post-2.9.0 in my opinion.

I will follow up with another email clarifying what Scaladoc bugs I am
hoping to see closed for 2.9.0. Several we submitted yesterday are
minutia that could wait until later, but there are still a few that
result in documentation being dropped and inaccessible to the user,
which I think we should try and fix for 2.9.0.

Thanks.

Bill

--

Kevin Wright

unread,
Mar 20, 2011, 7:27:35 PM3/20/11
to scala-i...@googlegroups.com, Bill Venners, Rüdiger Keller, Donna Malayeri
Looking at that example, my main concern is the behaviour of expanded/collapsed elements.

Expand a few methods, and it quickly becomes difficult to discern much structure...
--
Kevin Wright

gtalk / msn : kev.lee...@gmail.com
mail: kevin....@scalatechnology.com
vibe / skype: kev.lee.wright
quora: http://www.quora.com/Kevin-Wright
twitter: @thecoda

"My point today is that, if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger" ~ Dijkstra

Bill Venners

unread,
Mar 20, 2011, 7:38:36 PM3/20/11
to scala-i...@googlegroups.com, Donna Malayeri
Hi All,

I wanted to clarify what Scaladoc bugs I'm hoping we can zap before
2.9.0. The only ones I think should be fixed are those that actually
drop documentation from the output. The rest could wait until later.
There's just two more tickets, which may be two manifestations of the
same bug:

https://lampsvn.epfl.ch/trac/scala/ticket/4358
https://lampsvn.epfl.ch/trac/scala/ticket/4366

These both cause the full comment of a method to not show up at all.
You do see the short comment, but when you click on it to see the
full, the short goes away never to return.

Three other tickets that I wanted to see fixed in 2.9.0 are already
closed, but I haven't verified them myself yet because they didn't yet
show up in 2.9.0-SNAPSHOT.

https://lampsvn.epfl.ch/trac/scala/ticket/4356
https://lampsvn.epfl.ch/trac/scala/ticket/4357
https://lampsvn.epfl.ch/trac/scala/ticket/4361

Thanks for taking care of those. I'll try another snapshot tomorrow to
verify. The other bugs we submitted could wait until a later release.
The one that I think is the most important is:

https://lampsvn.epfl.ch/trac/scala/ticket/4360

This one may take some thought to figure out when to show a fully
qualified name and when not to. What happens in the example shown in
the ticket is that the methods show they take a Matcher parameter,
which is really an org.hamcrest.Matcher. Well ScalaTest also has
something called Matcher, so it is non-obvious when you look at the
documentation which Matcher is being required. Actually it is
misleading, because it looks like a ScalaTest Matcher is being
required, which is wrong.

The others we submitted can wait. One was markup showing up in equals
and eq comment:
https://lampsvn.epfl.ch/trac/scala/ticket/4359

Another was getting rid of the dollar signs prepending is/asInstanceOf:
https://lampsvn.epfl.ch/trac/scala/ticket/4368

The other two I realized this morning are actually the same bug. I was
seeing blocks of gray because those methods did not have any comments.
We reported one bug complaining about blocks of gray and another
complaining about missing comments. You can close the one complaining
about blocks of gray saying it's a duplicate:

https://lampsvn.epfl.ch/trac/scala/ticket/4367
https://lampsvn.epfl.ch/trac/scala/ticket/4369

So in summary, other than 4358 and 4366, which drop documentation and
may be the same bug, the only other change I hope to see in 2.9.0 is
some minor tweaks to the template.css file. I'll submit one more
suggestion for that here shortly, and that'll be it for 2.9.0.

Thanks everyone for helping with this stuff last minute like this.
Sorry I was so grouchy after my second pass the other day. It was very
frustrating to work hard on ScalaTest documentation like that and have
it mangled and even deleted by the tool. One thing I think that hasn't
been said much on this thread is that Scaladoc does have a lot of nice
features that work well. I quite like being able to enter names in the
search box and quickly find what I want. That's a big improvement over
JavaDoc, which gives me long lists I must scroll through. Now that it
works I quite like the JavaScript way of popping open and hiding the
full comment. So while I'm focused on finding and reporting bugs
because it is so last minute for 2.9.0, I don't want to be all
complaints.

Bill
----

Bill Venners

unread,
Mar 20, 2011, 8:53:04 PM3/20/11
to scala-i...@googlegroups.com, Donna Malayeri
Hi All,

I incorporated some feedback from Ruediger into my template.css
suggestion for 2.9.0. I tried to make the minimal, lowest risk changes
that would achieve the goal of improving Scaladoc readability for
2.9.0. The two changes I made from my previous suggestion in this
iteration was:

1) increase line-height from 1.1em to 1.2em
2) make some adjustments to the parameter, etc., lists at the end of
full comments so the padding wasn't so large and the parameter name
and its comment line up.

You can see the result here:

http://www.artima.com/sdp/suggestion2/

I made my changes off of the snapshot I grabbed two days ago, which is here:

http://www.artima.com/sdp/original/

The diff from the old template.css file from two-days-ago 2.9.0-SNAPSHOT is:

[sites@artima01 sdp]$ diff original/lib/template.css

suggestion2/lib/template.css
20c20
< line-height: 1;
---
> line-height: 1.2;


172c172
< padding: 3px;
---
> padding: 2px;
234,235c234,235
< margin-bottom: 0.4em;
< margin-top: 0.4em;
---
> margin-bottom: 0.9em;
> margin-top: 0.9em;
362c362
< padding: 0;
---
> padding: 2px;

368a369,370
> margin-top: 2px;
> margin-bottom: 2px;
415a418,421
> div.fullcomment dl.paramcmts dd.cmt p {
> margin-top: 2px;
> margin-bottom: 2px;
> }

You can of course download the entire template.css file from:

http://www.artima.com/sdp/suggestion2/lib/template.css

Other than fixing issues 4358 and 4366, this is the only other
Scaladoc change I think needs to be put into 2.9.0. Everything else


could wait until a later release.

Should I make a ticket for this? This is more like an enhancement request.

Thanks.

Bill

Rüdiger Keller

unread,
Mar 20, 2011, 8:54:16 PM3/20/11
to Bill Venners, scala-i...@googlegroups.com
Hi Bill,
Hi list,

I did not mean to force any changes into 2.9, I just hijacked the
"wrong" thread. Sorry for that.

I wanted to start a constructive discussion by offering something for
trying, that I personally like better than the current scaladocs. And
it seems I reached my goal even though most of my changes don't seem
to be well received.

Bill, I will address your individual concerns later tomorrow.

Now I need to sleep.

Regards,
Rüdiger


2011/3/21 Bill Venners <bi...@artima.com>:

Randall R Schulz

unread,
Mar 20, 2011, 10:59:09 PM3/20/11
to scala-i...@googlegroups.com
On Thursday March 17 2011, Bill Venners wrote:
> Hi,
>
> ...
>
> Bill


Might I suggest that someone with graphic arts training and experience
be consulted about improving the formatting and other presentation
characteristics of the Scaladoc HTML?


Randall Schulz

Bill Venners

unread,
Mar 20, 2011, 11:10:51 PM3/20/11
to scala-i...@googlegroups.com
Hi Randall,

I'm not sure which email you're replying to, but your suggestion is a
good one. Perhaps that is Donna Malayeri, who forked off a different
thread from this one. Today I submitted a set of minimal changes to
the template.css file I'd suggest for 2.9.0. I don't have time to do
anything more than that. If it gets in, I think it will make Scaladoc
in general more readable for 2.9.0 and more can be done later. If it
doesn't get in, I'll use it in ScalaTest so that at least ScalaTest
users will get more readable docs.

Thanks.

Bill

martin odersky

unread,
Mar 21, 2011, 2:25:45 AM3/21/11
to scala-i...@googlegroups.com, Rüdiger Keller, Bill Venners
I like Ruediger's layout. I think the grey / white altrenations detract from what's most important: the member names, so that's why I like it to be all white with thin separation lines. Agreed though that there should be an element that identifies open vs short comments -- maybe the rihg/downwards pointing triangle of standard outline views?

Cheers

 -- Martin
--
----------------------------------------------
Martin Odersky
Prof., EPFL and CEO, Scala Solutions
PSED, 1015 Lausanne, Switzerland


Bill Venners

unread,
Mar 21, 2011, 5:44:00 AM3/21/11
to martin odersky, scala-i...@googlegroups.com, Rüdiger Keller, Donna Malayeri
Hi Martin, Ruediger, Donna,

I just realized that this non-obvious place to click problem exists at
the top. I just figured out now that you can click on the name of a
trait/class/object to get more information about it. I didn't know I
could do that. The ones below in ruediger2 look click-on-able to me
because the member names are blue. But I'm not sure how obvious that
would be if I didn't already know that I could click there.

Anyway, if you're going to move away from the alternating gray
background for 2.9.0, I'd request that you fork suggestion2 and just
make that one change. I.e., start with this file:

http://www.artima.com/sdp/suggestion2/lib/template.css

A couple things got broken in ruediger2, which I mentioned on an
earlier previous email. To see my concern, look at the difference
between the last two sections here on ruediger2:

http://www.artima.com/sdp/ruediger2/org/scalatest/Suite.html#errorHandling

versus suggestion2:

http://www.artima.com/sdp/suggestion2/org/scalatest/Suite.html#errorHandling

My main hope for a css tweak for 2.9.0 is that we can add a bit more
space between paragraphs and lines. ScalaTest docs are hard to read
without that whitespace.

Perhaps, Ruediger, you could start with the above suggestion2 css file
and just add only whatever you did to replace the alternating gray and
white background with the thin gray separator lines?

One other suggestion I have now that I know I can click on the top
line is to make the name of the trait/class/object the same blue color
as the member names. Blue still tends to mean "I can click here" to
people. That way there's a consistent signal about clicking to get
more info.

I'd stop there as a base line. Then if you want to try a triangle go
for it, but things like that can send you down a rabbit hole. For
2.9.0 it seems prudent to just do some very minimalist improvements at
this late point, and then a more thorough, careful makeover can be
done for a future release.

Thanks for your attention to this.

Bill

2011/3/20 martin odersky <martin....@epfl.ch>:

Rüdiger Keller

unread,
Mar 21, 2011, 5:44:22 AM3/21/11
to Bill Venners, scala-i...@googlegroups.com
Hi Bill,

please find my comments below.


2011/3/21 Bill Venners <bi...@artima.com>:


> Hi Ruediger,
>
> I generated Scaladoc for the ScalaTest trunk with the latest
> 2.9.0-SNAPSHOT, then put your three .css files in there. I then
> deployed it here:
>
> http://www.artima.com/sdp/ruediger2/
>
> Comparing this to my suggestion:
>
> http://www.artima.com/sdp/suggestion/
>
> I think your line height of 1.2 might be an improvement, but I could
> live with either for 2.9.0. I think I actually prefer the alternating
> gray/white background of current Scaladoc to the all-white with
> separator lines you're suggesting.
>
> There are some other issues I'm seeing in ruediger2. For example, on
> trait Suite:
>
> http://www.artima.com/sdp/ruediger2/org/scalatest/Suite.html
>
> There's extra white space at the top before the first comment line
> that begins, "A suite of tests. A Suite instance encapsulates..."


That's intentional, to separate the signature from the text. Instead
of this, I will experiment with bigger font sizes for signatures.


>
> There's missing white space after lists. Look at the list in the
> Extensability section down at the bottom for an example. After
> "expectedTestCount - override this method to count this Suite's...",
> there's no white space before the start of the next paragraph.


Ok, that needs to be fixed.


>
> I think also the paragraphs are not quite far enough apart to visually
> separate them.


I have no problem changing it to your suggestion. The reason I didn't
make the spacing between the paragraphs as large as in your version
was that I used the scala.collection.Seq page for reference and there
are mostly single sentence paragraphs. IMHO these look a bit strange
with such a large spacing. But perhaps the comments need fixing here,
not the layout.


>
> One thing I think we should separate is what would go into 2.9.0 and
> what would go later. This is very last minute for 2.9.0. I should have
> gone through and done my second pass looking for remaining issues
> earlier, but I was very busy. So at this point I think only critical
> problems should be addressed, and for layout I think just adding a bit
> of white space here and there is probably all we should try to do for
> 2.9.0. After that Donna can lead a more careful and thorough redesign
> of the layout, if need be.


I agree. I did not mean to force any changes into 2.9.


>
> In my suggestion I was trying to be minimal so that the change would
> be low risk and easy enough to go into 2.9.0. I'll make one more pass
> today using your suggestions (line height of 1.2, and evening out
> those descriptions, which you pointed out yesterday.) After that I'll
> stop and I think that will be good enough for 2.9.0 as far as layout
> goes. The kind of changes your suggesting are more appropriate to
> consider for post-2.9.0 in my opinion.


Agreed.


>
> I will follow up with another email clarifying what Scaladoc bugs I am
> hoping to see closed for 2.9.0. Several we submitted yesterday are
> minutia that could wait until later, but there are still a few that
> result in documentation being dropped and inaccessible to the user,
> which I think we should try and fix for 2.9.0.


Again, I agree with you.

If I have time this evening, I will create an updated version of my
suggestions, that addresses some of your concerns and also Martin's
suggestion, if possible. Again, I do not mean to ship bigger changes
with 2.9. I'm 100% OK with the smaller set of changes you propose for
2.9.

Regards,
Rüdiger

Bill Venners

unread,
Mar 21, 2011, 5:55:25 AM3/21/11
to Rüdiger Keller, scala-i...@googlegroups.com
Hi Ruediger,

All sounds fine. If the Seq docs look funny with that much white
space, then maybe it is better to use a bit less. I.e., we should
optimize for the Scala Scaladoc, not the ScalaTest one. I can always
increase the space between paragraphs for ScalaTest.

I feel like I'm peeling off layers of the onion, but I think I just
found another Scaladoc bug. Suite has a companion object, but not a
public one. Now that I just learned I can click to get more info about
Suite, I noticed there's a link to the companion object. When I click
on it, I get a page not found. I think the link to companion objects
may be showing up without considering whether they are actually
public. I can live with that one too in 2.9.0. Will submit a trak
issue tomorrow.

Bill

--

Rüdiger Keller

unread,
Mar 21, 2011, 6:01:38 AM3/21/11
to Bill Venners, scala-i...@googlegroups.com
Hi Bill,

as I said in my previous mail, I didn't really mean to change the CSS
for 2.9 but for the release after that.

I think your smaller set of suggestions are a strict improvement over
the current layout, so for me it would be perfectly OK to ship 2.9
with only your suggested changes.

If it is decided that the all white version should go into 2.9, I can
provide a minimal change set for that, as you suggest based
onsuggestion2. That would be:

Remove the "background-color" style from the ".signature" rule and add
a style "border-bottom: 1px solid lightgray;" to the "div.members > ol
> li" rule.

But perhaps we should wait until after 2.9 with such bigger changes.

Also, I like your idea of using blue consistently for clickable
things. Perhaps also adding underlining, as that is currently already
used in many places in the current scaladocs. I will explorer some
more on this when I have some time for it.

martin odersky

unread,
Mar 21, 2011, 6:17:05 AM3/21/11
to scala-i...@googlegroups.com, Rüdiger Keller, Bill Venners
On Mon, Mar 21, 2011 at 11:01 AM, Rüdiger Keller <ruedige...@googlemail.com> wrote:
Hi Bill,

as I said in my previous mail, I didn't really mean to change the CSS
for 2.9 but for the release after that.

I think your smaller set of suggestions are a strict improvement over
the current layout, so for me it would be perfectly OK to ship 2.9
with only your suggested changes.

The first RC of 2.9 will likely go out this week, with a final version expected in about 2-6 weeks, depending on how the RC goes. Scaladoc is a bit decoupled, so we can do some changes between the RC and the final.

I believe it would be good to do changes in layout, if they improve things and aere feasible without taking too much time or possing too much risk.

Cheers

 -- Martin

Donna Malayeri

unread,
Mar 21, 2011, 6:49:12 AM3/21/11
to scala-i...@googlegroups.com
On Mar 21, 2011, at 10:55 AM, Bill Venners wrote:
> I feel like I'm peeling off layers of the onion, but I think I just
> found another Scaladoc bug. Suite has a companion object, but not a
> public one. Now that I just learned I can click to get more info about
> Suite, I noticed there's a link to the companion object. When I click
> on it, I get a page not found. I think the link to companion objects
> may be showing up without considering whether they are actually
> public. I can live with that one too in 2.9.0. Will submit a trak
> issue tomorrow.

Ah, indeed. The searchable index is (correctly) not showing the companion, but the link is generated anyway. I'll create the Trac ticket and do the fix.

Donna

Jon Steelman

unread,
Mar 21, 2011, 7:41:47 AM3/21/11
to scala-i...@googlegroups.com, martin odersky, Rüdiger Keller, Bill Venners
Agreed on the while thin separation lines.

One thing I'd like to pop more is the return type, so that one can quickly scan for return types. Is there a way that return type could do something to accomplish that, perhaps have return type right justified?

Thanks,
Jon


2011/3/21 martin odersky <martin....@epfl.ch>

Bill Venners

unread,
Mar 21, 2011, 1:59:17 PM3/21/11
to Rüdiger Keller, scala-i...@googlegroups.com
Hi Ruediger,

On Mon, Mar 21, 2011 at 3:01 AM, Rüdiger Keller
<ruedige...@googlemail.com> wrote:
> If it is decided that the all white version should go into 2.9, I can
> provide a minimal change set for that, as you suggest based
> onsuggestion2. That would be:
>
> Remove the "background-color" style from the ".signature" rule and add
> a style "border-bottom: 1px solid lightgray;" to the "div.members > ol
>> li" rule.
>

That sounded easy so I made those mods off of suggestion2 and put an
example here:

http://www.artima.com/sdp/suggestion3/

I quickly glanced at making the class/trait/object name blue, but it
didn't look obvious and I didn't want to tweak too much. Others can
work on making it more obvious you can click up top.

So suggestion3 has the extra white space I think would help
readability at least of ScalaTest's docs, plus Ruediger's layout of
the members that gets rid of the alternating gray/white bars. Css file
is:

http://www.artima.com/sdp/suggestion3/lib/template.css

Diff from original, which I grabbed about three days ago now from
2.9.0-SNAPSHOT, is:

[sites@artima01 sdp]$ diff original/lib/template.css

suggestion3/lib/template.css
20c20
< line-height: 1;
---
> line-height: 1.2;
157a158
> border-bottom: 1px solid lightgray;
172c173


< padding: 3px;
---
> padding: 2px;

177d177
< background-color: #E5E5E5;


234,235c234,235
< margin-bottom: 0.4em;
< margin-top: 0.4em;
---
> margin-bottom: 0.9em;
> margin-top: 0.9em;
362c362
< padding: 0;
---
> padding: 2px;

368a369,370
> margin-top: 2px;
> margin-bottom: 2px;
415a418,421
> div.fullcomment dl.paramcmts dd.cmt p {
> margin-top: 2px;
> margin-bottom: 2px;
> }

I haven't tried this in as many browsers as my previous suggestions.
Should be tried in a lot of them.

Bill

Simon Ochsenreither

unread,
Mar 21, 2011, 2:25:35 PM3/21/11
to scala-i...@googlegroups.com
Hi!

Would it be possible to have a small fade-in/fade-out effect when the
mouse is over something which can be expanded/collapsed?

I think the behavior of the class description where you can click on
anything and it will expand to show linear super types, known subclasses
and self types, but have to click on the first sentence to collapse it
again is very confusing.

Imho I would suggest to remove the whole collapsing/expanding in the
class description and show these three lines by default the whole
complication isn't worth these three lines.

Thanks everyone for their great work!

Bye,


Simon

√iktor Klang

unread,
Mar 21, 2011, 2:37:39 PM3/21/11
to scala-i...@googlegroups.com, Bill Venners, Rüdiger Keller
On Mon, Mar 21, 2011 at 6:59 PM, Bill Venners <bi...@artima.com> wrote:
Hi Ruediger,

On Mon, Mar 21, 2011 at 3:01 AM, Rüdiger Keller
> If it is decided that the all white version should go into 2.9, I can
> provide a minimal change set for that, as you suggest based
> onsuggestion2. That would be:
>
> Remove the "background-color" style from the ".signature" rule and add
> a style "border-bottom: 1px solid lightgray;" to the "div.members > ol
>> li" rule.
>
That sounded easy so I made those mods off of suggestion2 and put an
example here:

http://www.artima.com/sdp/suggestion3/


Collapse works when clicking on stuff, but expand is broken, on FF4
 



--
Viktor Klang,
Code Connoisseur
Work:   Scalable Solutions
Code:   github.com/viktorklang
Follow: twitter.com/viktorklang
Read:   klangism.tumblr.com

Johannes Rudolph

unread,
Mar 21, 2011, 3:21:43 PM3/21/11
to Bill Venners, scala-i...@googlegroups.com
On Mon, Mar 21, 2011 at 10:44 AM, Bill Venners <bi...@artima.com> wrote:
> http://www.artima.com/sdp/suggestion2/org/scalatest/Suite.html#errorHandling

Not sure, if that means anything, but in your examples something seems
to be broken with the font on Google Chrome (Ubuntu 10.10): after some
lines all text will be bold.

--
Johannes

-----------------------------------------------
Johannes Rudolph
http://virtual-void.net

Screenshot.png

Bill Venners

unread,
Mar 21, 2011, 3:43:05 PM3/21/11
to Johannes Rudolph, scala-i...@googlegroups.com
Hi Johannes,

Yes, that's annoying, isn't it? It is a manifestation of this Scaladoc bug:

https://lampsvn.epfl.ch/trac/scala/ticket/4366

Bill

--

Bill Venners

unread,
Mar 21, 2011, 3:45:19 PM3/21/11
to √iktor Klang, scala-i...@googlegroups.com, Rüdiger Keller
Hi Viktor,

FF4 on which platform? I only had time to check this one on FF3 and
Safari on the Mac. Donna, I assume, will be doing a more thorough,
careful job of making changes to the css.

Bill

Donna Malayeri

unread,
Mar 21, 2011, 4:30:45 PM3/21/11
to scala-i...@googlegroups.com, √iktor Klang, Rüdiger Keller
> Hi Viktor,
>
> FF4 on which platform? I only had time to check this one on FF3 and
> Safari on the Mac. Donna, I assume, will be doing a more thorough,
> careful job of making changes to the css.
>
> Bill

Yes, I'll check FF3, FF4, Chrome, and Safari on the Mac, and FF and IE on Windows. I don't have a linux box, however.

Viktor: does the expand functionality work on other platforms? Can you try it with the other CSS samples that Bill has uploaded?

thanks,
Donna

√iktor Klang

unread,
Mar 21, 2011, 4:37:33 PM3/21/11
to Donna Malayeri, scala-i...@googlegroups.com, Rüdiger Keller
On Mon, Mar 21, 2011 at 9:30 PM, Donna Malayeri <lindy...@gmail.com> wrote:
> Hi Viktor,
>
> FF4 on which platform? I only had time to check this one on FF3 and
> Safari on the Mac. Donna, I assume, will be doing a more thorough,
> careful job of making changes to the css.
>
> Bill

Yes, I'll check FF3, FF4, Chrome, and Safari on the Mac, and FF and IE on Windows. I don't have a linux box, however.

Oh, sorry, on OS X 10.6

I tried to reproduce the problem a second ago and couldn't, so it might be that somewhere a javascript breaks under some conditions. Haven't got firebug installed since it for some reason didn't work with FF4, otherwise it'd be easier to debug if I get it to manifest again.
 

Viktor: does the expand functionality work on other platforms?  Can you try it with the other CSS samples that Bill has uploaded?

thanks,
Donna

Bill Venners

unread,
Mar 21, 2011, 4:41:37 PM3/21/11
to scala-i...@googlegroups.com, √iktor Klang, Donna Malayeri, Rüdiger Keller
Hi Viktor,

I'm pretty sure I've had similar problems with 2.8 Scaladoc, probably
on Safari on the Mac, where the open and close would stop working
after a while. What I had to do was close the browser window and
reopen it, and it would work again. That happened maybe two or three
times to me since 2.8 came out, so it was pretty rare.

Bill

--

√iktor Klang

unread,
Mar 21, 2011, 4:50:39 PM3/21/11
to Bill Venners, scala-i...@googlegroups.com, Donna Malayeri, Rüdiger Keller
Hi Bill,

On Mon, Mar 21, 2011 at 9:41 PM, Bill Venners <bi...@artima.com> wrote:
Hi Viktor,

I'm pretty sure I've had similar problems with 2.8 Scaladoc, probably
on Safari on the Mac, where the open and close would stop working
after a while. What I had to do was close the browser window and
reopen it, and it would work again. That happened maybe two or three
times to me since 2.8 came out, so it was pretty rare.

Alright, that doesn't sound like something to waste time debugging.

Cheers,
 

Bill Venners

unread,
Mar 21, 2011, 5:53:14 PM3/21/11
to scala-i...@googlegroups.com, √iktor Klang, Donna Malayeri, Rüdiger Keller
Hi Viktor,

Actually I may have just realized what you hit. There are two bugs I
reported that may be two different instances of the same class of bug.
One causes closing strong tags to be dropped (4366), and the other
closing ie tags (4358). These both cause everything after the problem
to be either bold or italics. It also causes open/closing to not work
thereafter on Firefox. So if you go to Suite, for example, the strong
problem happens on the groups method. After that things are not only
bold, but don't open and close correctly on Firefox:

http://www.artima.com/sdp/suggestion3/org/scalatest/Suite.html

If you go to EasyMockSugar, which has the ie problem, then things
don't open and close correctly:

http://www.artima.com/sdp/suggestion3/org/scalatest/Suite.html

The call method has the ie problem and everything after that doesn't
open/close correctly on Firefox. If that's what you saw then it should
get fixed when 4358 and 4366 get fixed.

Thanks.

Bill

Rüdiger Keller

unread,
Mar 21, 2011, 7:04:54 PM3/21/11
to Bill Venners, scala-i...@googlegroups.com, Donna Malayeri
Hello,

I updated my style with somewhat bigger spacing between paragraphs and
fixed the bug with no spacing after list (I hope). And some other
minor things.

Also, I made an experiment and changed all names to have a somewhat
bigger font size. What do you think?

Bill, is it possible to download the ScalaTest Scaladocs that you put
up for testing? That would make my life easier testing how my changes
look for the ScalaTest Docs. I tried the 1.3 release but that is not
compatible with the current trunks CSS files.

Regards,
Rüdiger

2011/3/21 Bill Venners <bi...@artima.com>:

index.css
ref-index.css
template.css

Matthew Pocock

unread,
Mar 21, 2011, 7:11:11 PM3/21/11
to scala-i...@googlegroups.com, Bill Venners
I'm looking at both outputs. I find the 'after' version much easier on the eye.

In chrome on ubuntu, the content starts to go wrong at the deprecated groups() method. From that point on, text is bold. Also, I clicked on the groups text and instead of expanding it disappeared, and now it won't appear again. I think the reason is that there's an unclosed <strong> tag at line 2103, in the <p class="shortcomment cmt"> div of the group method. Perhaps the template for generating the short comment for deprecated methods is borked? I don't know.

Matthew

On 19 March 2011 21:34, Bill Venners <bi...@artima.com> wrote:
Hi All,

I've came up with some suggested changes to the template.css file.
Here's the before:

http://www.artima.com/sdp/original/org/scalatest/Suite.html

And here's the after:

http://www.artima.com/sdp/suggestion/org/scalatest/Suite.html

Bill Venners

unread,
Mar 21, 2011, 7:11:37 PM3/21/11
to Rüdiger Keller, scala-i...@googlegroups.com, Donna Malayeri
Hi Ruediger,

You can use this branch:

https://scalatest.googlecode.com/svn/branches/scaladocprobs

It grabs 2.9.0-SNAPSHOT. The tests were not compiling as of a couple
days ago, hitting a 2.9 compiler bug. That may be fixed now. But you
don't need them. You need may need more memory to build the docs. I
do:

source ./addmem.sh
ant doc

To build the docs. the addmem script increased a mem size used by ant.

Bill

Bill Venners

unread,
Mar 21, 2011, 7:17:15 PM3/21/11
to Matthew Pocock, scala-i...@googlegroups.com
Hi Matthew,

The bold and open/close problem is caused by this Scaladoc bug:

https://lampsvn.epfl.ch/trac/scala/ticket/4366

You can ignore it when looking at style sheet spacing. The latest
iteration people are considering is this one:

http://www.artima.com/sdp/suggestion3/

Thanks.

Bill

--

Matthew Pocock

unread,
Mar 21, 2011, 7:34:16 PM3/21/11
to Bill Venners, scala-i...@googlegroups.com
HI,

On 21 March 2011 23:17, Bill Venners <bi...@artima.com> wrote:
Hi Matthew,

The bold and open/close problem is caused by this Scaladoc bug:

https://lampsvn.epfl.ch/trac/scala/ticket/4366


Ah, thanks for showing me that.
 
You can ignore it when looking at style sheet spacing. The latest
iteration people are considering is this one:

http://www.artima.com/sdp/suggestion3/


My only other contribution, then, is to say that I find the behaviour when a parameter list wraps over multiple lines to be visually confusing. The 'def' keyword is indented by a lot, and when the parameter list wraps, it abuts the left margin of the cell. It would look better to my eye if the parameters wrapped to a margin level with the function name, or some fixed distance to the right of it.

Matthew
 
Thanks.

Bill

Bill Venners

unread,
Mar 21, 2011, 7:39:38 PM3/21/11
to Matthew Pocock, scala-i...@googlegroups.com, Donna Malayeri
Hi Matthew,

On Mon, Mar 21, 2011 at 4:34 PM, Matthew Pocock
<turingate...@gmail.com> wrote:
>> http://www.artima.com/sdp/suggestion3/
>>
>
> My only other contribution, then, is to say that I find the behaviour when a
> parameter list wraps over multiple lines to be visually confusing. The 'def'
> keyword is indented by a lot, and when the parameter list wraps, it abuts
> the left margin of the cell. It would look better to my eye if the
> parameters wrapped to a margin level with the function name, or some fixed
> distance to the right of it.
> Matthew
>

That's a good suggestion. That's more like we would write it in code.

Bill

>>
>> Thanks.
>>
>> Bill

Daniel Sobral

unread,
Mar 21, 2011, 8:12:31 PM3/21/11
to scala-i...@googlegroups.com, Antonio Cunei
Antonio, I just opened http://lampsvn.epfl.ch/trac/scala/ticket/4375, which might well be a duplicate, though the related tickets seemed to all relate to generics, which is not the case here (as far as I can see).

I bring this up because it is a regression (it works on 2.8.1 as expected), and it seriously hamper interoperability with Java. I discovered it while trying to call a method expected a Seq[Int] from Java (and before you check the ticket out, it's not related to Seq itself, so that generic is not relevant).

On Wed, Mar 16, 2011 at 19:03, Antonio Cunei <antoni...@epfl.ch> wrote:
All,

After a bit of additional time spent on fixing tickets and improving features, we are aiming to get an RC1 release next week.

According to the messages I have seen so far, and the present status of the code, I currently have this list of tickets that are still open, and that various people considered important to address before the release of RC1:

http://lampsvn.epfl.ch/trac/scala/ticket/4205 (assigned moors)
http://lampsvn.epfl.ch/trac/scala/ticket/4202 (assigned plocinic)
http://lampsvn.epfl.ch/trac/scala/ticket/4012 (assigned dragos)
http://lampsvn.epfl.ch/trac/scala/ticket/4248 (assigned cunei)
http://lampsvn.epfl.ch/trac/scala/ticket/3623 (assigned extempore)
http://lampsvn.epfl.ch/trac/scala/ticket/4214 (assigned extempore)
http://lampsvn.epfl.ch/trac/scala/ticket/4305 (assigned moors)
http://lampsvn.epfl.ch/trac/scala/ticket/4337 (pending)

Anything else? Please let me know if you have additional issues that should definitely be addressed before 2.9.0, or if there is any further code that you think should go in and that is currently still pending.

Thanks!
Toni



--
Daniel C. Sobral

I travel to the future all the time.

Randall R Schulz

unread,
Mar 21, 2011, 11:57:44 PM3/21/11
to scala-i...@googlegroups.com
Bill,

On Sunday March 20 2011, Bill Venners wrote:
> Hi Randall,
>
> On Sun, Mar 20, 2011 at 7:59 PM, Randall R Schulz wrote:
> > On Thursday March 17 2011, Bill Venners wrote:
> >> Hi,
> >>
> >> ...
> >>
> >> Bill
> >
> > Might I suggest that someone with graphic arts training and
> > experience be consulted about improving the formatting and other
> > presentation characteristics of the Scaladoc HTML?
>
> I'm not sure which email you're replying to, but your suggestion is a
> good one. ...

I deliberately replied to the first message that referred to the
Scaladoc output 'cause I wasn't responding to any specific aspect of
Scaladoc output.

Except white-space to the left of colons. I hate that. ... Except for
context bounds; it's good there.


> Bill


Randall Schulz

Ruediger Keller

unread,
Mar 22, 2011, 5:03:21 AM3/22/11
to scala-i...@googlegroups.com, Matthew Pocock
Hi Matthew,

regarding the wrapping of signatures, that is fixed in my proposed CSS
changes. Bill put up a site using it here:

http://www.artima.com/sdp/ruediger2/

Perhaps we should continue this discussion in the thread titled
"Scaladoc layout (was: Upcoming 2.9.0.RC1 (take 2))".

Regards,
Rüdiger


2011/3/22 Matthew Pocock <turingate...@gmail.com>:

Rüdiger Keller

unread,
Mar 22, 2011, 5:10:51 AM3/22/11
to scala-i...@googlegroups.com, Simon Ochsenreither
I like the idea of removing the collapsing/expanding for the class
descriptions. It seems superfluous and unnecessary. What do others
think?

Regarding the idea of "a small fade-in/fade-out effect", I don't
really understand how you think this should work/look. Can you
describe it in more detail? What should fade? The mouse cursor?

Regards,
Rüdiger


2011/3/21 Simon Ochsenreither <si...@ochsenreither.de>:

Donna Malayeri

unread,
Mar 22, 2011, 5:53:41 AM3/22/11
to scala-i...@googlegroups.com
On Mar 22, 2011, at 10:10 AM, Rüdiger Keller wrote:

> I like the idea of removing the collapsing/expanding for the class
> descriptions. It seems superfluous and unnecessary. What do others
> think?

I agree with this as well--it produces a strange visual effect, and as Bill said, it's not obvious that it's there.

Donna

Antonio Cunei

unread,
Mar 22, 2011, 6:06:21 AM3/22/11
to scala-i...@googlegroups.com, Daniel Sobral
On 22/03/2011 01:12, Daniel Sobral wrote:
> Antonio, I just opened http://lampsvn.epfl.ch/trac/scala/ticket/4375,
> which might well be a duplicate, though the related tickets seemed to
> all relate to generics, which is not the case here (as far as I can see).
>
> I bring this up because it is a regression [...]

Duly noted, thanks!
Toni

--
Antonio Cunei
Scala Team, EPFL

Daniel Sobral

unread,
Mar 22, 2011, 7:53:32 AM3/22/11
to scala-i...@googlegroups.com, Donna Malayeri
The obviousness thing is a concern, but look at http://www.scala-lang.org/archives/downloads/distrib/files/nightly/docs/library/scala/collection/Seq.html. When class information is expanded, it pushes the methods of of screen. Worse yet, it looks scary. :-)

So, at the very least I'd keep linearization and known subclasses collapsible.

At any rate, if we figure out how to do a clear indication that methods descriptions are collapsible,  we can probably apply the same principle to the class.

Ruediger Keller

unread,
Mar 22, 2011, 8:33:05 AM3/22/11
to scala-i...@googlegroups.com, Daniel Sobral, Donna Malayeri
Hi,

I don't think that "pushes the methods of of screen" is a problem.
Depending on the class documentation they may not be visible to begin
with (see http://www.artima.com/sdp/suggestion3/org/scalatest/Suite.html).
Also, IMHO it is fairly obvious that you have to scroll the page to
see everything there is.

But I agree that linearization and known subclasses look somewhat
scary for most of the collection classes. If there was a button / link
("Show linearization and known subclasses") specifically for showing
these, it would be nice, I think. The clickable signatures / comments
don't seem to be ideal. For the class descriptions space is not an
issue, so a separate line with such a link would be a good solution.

For the methods we probably need a more compact solution.

Regards,
Rüdiger


2011/3/22 Daniel Sobral <dcso...@gmail.com>:

Donna Malayeri

unread,
Mar 22, 2011, 8:37:44 AM3/22/11
to Ruediger Keller, scala-i...@googlegroups.com, Daniel Sobral
Ruediger:

That's an excellent suggestion: a link for showing the additional information. I can certainly change the generated HTML, but I'm not sure which distribution this will go in. (Some RC between RC1 and final?)

Do you happen to know why it produces such a strange visual effect when the additional information is displayed? I imagine it has to do with JavaScript and CSS.

For methods, I think some sort of triangle icon would be good, but that's a bigger change.

thanks,
Donna

Kevin Wright

unread,
Mar 22, 2011, 8:44:54 AM3/22/11
to scala-i...@googlegroups.com, Donna Malayeri, Ruediger Keller, Daniel Sobral
I think some form of gradient background for panels could look good, and also work well as visual separator.  You could then use a change in colour to distinguish between expanded/collapsed.

--
Kevin Wright

gtalk / msn : kev.lee...@gmail.com
mail: kevin....@scalatechnology.com
vibe / skype: kev.lee.wright
quora: http://www.quora.com/Kevin-Wright
twitter: @thecoda

"My point today is that, if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger" ~ Dijkstra

Ruediger Keller

unread,
Mar 22, 2011, 8:57:30 AM3/22/11
to scala-i...@googlegroups.com, Donna Malayeri
Hi Donna,

I also noticed the strange effect when expanding comments. I seems the
short comment is slid upwards, out of view, and at the same time the
full comment is slid downwards into view. That probably results in
this strange effect. The problem is that short and full comment are
completely separate things, where the full comment duplicates
everything in the short comment + more. Therefore we cannot just slide
in the additional information in the full comment, but we also need to
remove the short comment. The sliding is probably used to avoid big
jumps in the page when opening the full comments. I'm not sure if we
can improve upon this without changing the structure of the generated
HTML, but I can look into this when I find some time.

Also, I really like the idea of using triangles for the methods. I
will throw together an example for this, if I have some spare time
this evening. I think it should be doable via CSS only, so no too big
changes are required.

Regards,
Rüdiger


2011/3/22 Donna Malayeri <lindy...@gmail.com>:

Donna Malayeri

unread,
Mar 22, 2011, 11:44:33 AM3/22/11
to Ruediger Keller, scala-i...@googlegroups.com
Ruediger:

> I also noticed the strange effect when expanding comments. I seems the
> short comment is slid upwards, out of view, and at the same time the
> full comment is slid downwards into view. That probably results in
> this strange effect. The problem is that short and full comment are
> completely separate things, where the full comment duplicates
> everything in the short comment + more. Therefore we cannot just slide
> in the additional information in the full comment, but we also need to
> remove the short comment. The sliding is probably used to avoid big
> jumps in the page when opening the full comments. I'm not sure if we
> can improve upon this without changing the structure of the generated
> HTML, but I can look into this when I find some time.

I can change the generated HTML, as long as I know how it should be changed.

> Also, I really like the idea of using triangles for the methods. I
> will throw together an example for this, if I have some spare time
> this evening. I think it should be doable via CSS only, so no too big
> changes are required.

If it's doable with CSS only, that would be fantastic, but I think the class comment issue is more important. Or were you referring to the method comments in above?

I'm so glad a CSS person is looking at this stuff. :)

thanks,
Donna

Simon Ochsenreither

unread,
Mar 22, 2011, 2:36:23 PM3/22/11
to scala-i...@googlegroups.com
Hi,

I would like to propose having some kind of button or bar to click to get more information, instead of being able to click on the whole "existing" text.

I.e.:

+------------------------------+
|     Short description        |
+------------------------------+
+ <-- Thing to toggle

expands on click to:
+------------------------------+
|     Short description        |
+------------------------------+
+------------------------------+
|                              |
|   Additional description     |
|                              |
+------------------------------+


I have never seen the current behavior before in any other software and it is quite confusing if people want to select text.

Bye,


Simon

Simon Ochsenreither

unread,
Mar 22, 2011, 2:38:52 PM3/22/11
to scala-i...@googlegroups.com
Hi,

>> http://www.artima.com/sdp/suggestion2/org/scalatest/Suite.html#errorHandling
> Not sure, if that means anything, but in your examples something seems
> to be broken with the font on Google Chrome (Ubuntu 10.10): after some
> lines all text will be bold.
Additionally, if I click on method "group", it collapses, but doesn't
expand after that anymore.

Bye,

Simon

Bill Venners

unread,
Mar 23, 2011, 6:05:11 PM3/23/11
to scala-i...@googlegroups.com, Simon Ochsenreither
Hi Simon,

The issues you saw was caused by this bug:

https://lampsvn.epfl.ch/trac/scala/ticket/4366

which has been fixed! I verified that this bug and the similar one
caused by italics no longer exists in the latest 2.9.0-SNAPSHOT.
Thanks to all who are working to improve Scaladoc.

Bill

--

Reply all
Reply to author
Forward
0 new messages