| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SI-3448 partial fix:
This enables a workaround for the fact that Map takes two type params
while $Coll takes only one. But it doesn't fix the problem though,
as there's one more piece missing from the puzzle - we need to adjust
the `Coll`s in {immutable, mutable, concurrent}.Map to something that
makes sense for the usecase. And that's not possible. But I'm
committing this nevertheless, maybe other projects can benefit from it.
And for SI-3448, the solution lies in automatic usecase generation,
whenever that will be ready.
|
|
|
|
|
| |
case class C(i: Int)(b: Boolean) would appear uncurried in scaladoc:
case class C(i: Int, b: Boolean)
|
|
|
|
| |
This bug was fixed by the model upgrade in c11427c1. Test case confirmation.
|
|
|
|
| |
This bug was fixed by the model upgrade in c11427c1. Test case confirmation.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Related to SI-3314, where we started showing inherited templates
that were normally not documented. This patch corrects a problem
in parentTypes that was preventing inherited templates from being
displayed in diagrams.
Also renamed:
PackageDiagram => ContentDiagram
ClassDiagram => InheritanceDiagram
which should have been done much earlier
|
|
|
|
|
|
|
|
|
|
|
|
| |
And adds support for linking to class members, only usable from the
model factory now, so no links to members from the doc comment yet,
sorry. But it fixes the Enumeration problem once and for all!
Also corrected the inTpl for members obtained by implicit conversions,
so they're in the correct template and the comment variable expansion
is done from the correct (but different) template.
Review by @kzys.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The bug is related to a couple of other annoyances, also fixed:
- usecases without type params were crashing scaladoc due to a change
in the PolyTypes class (not allowing empty tparams list)
- properly getting rid of backticks (even if the link is not valid)
- correct linking for usecases with $Coll = `immutable.Seq`
(the symbol searching algorithm was too of restrictive, now we search
the entire ownerchain - and the empty package at the end)
- give a warning if the type lookup fails
- finally, added a $Coll variable to List, for some reason it wasn't
there and we were getting immutable.Seq as the result of use cases.
|
|
|
|
|
|
|
|
|
|
| |
- fixed the AnyRef linking (SI-5780)
- added tooltips to implicit conversions in diagrams
- fixed the intermittent dot error where node images would be left out
(dot is not reliable at all -- with all the mechanisms in place to fail
gracefully, we still get dot errors crawling their way into diagrams -
and that usually means no diagram generated, which is the most
appropriate way to fail, I think...)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- relaxed the restrictions on nodes - nodes can be classes, traits and
objects, both stand-alone and companion objects -- all are added to the
diagram, but usually companion objects are filtered out as they don't
have any superclasses
- changed the rules for default diagram creation:
- classes and traits (and AnyRef) get inheritance diagrams
- packages and objects get content diagrams
(can be overridden by @contentDiagram [hideDiagram] and
@inheritanceDiagram [hideDiagram])
- tweaked the model to register subclasses of Any
- hardcoded the scala package diagram to show all relations
- enabled @contentDiagram showInheritedNodes by default and changed
the setting to hideInheritedNodes (and added a test for this)
- better node selection (can select nodes that don't have a
corresponding trait)
- fixed the docsite link in member selection, which was broken since
the first commit :))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit contains model changes required for adding class diagrams
to scaladoc. It also contains an improved implicit shadowing
computation, which hides the shadowed implicitly inherited members
from the main view and gives instructions on how to access them.
This is joint work with Damien Obrist (@damienobrist) on supporting
diagram generation in scaladoc, as part of Damien's semester project
in the LAMP laborarory at EPFL.
The full history is located at:
https://github.com/damienobrist/scala/tree/feature/diagrams-dev
Commit summary:
- diagrams model
- diagram settings (Settings.scala, ScalaDoc.scala)
- diagram model object (Entity.scala, Diagram.scala)
- model: tracking direct superclasses and subclasses,
implicit conversions from and to (ModelFactory.scala)
- diagram object computation (DiagramFactory.scala, DocFactory.scala)
- capacity to filter diagrams (CommentFactory.scala,
DiagramDirectiveParser.scala)
- diagram statistics object (DiagramStats.scala)
- delayed link evaluation (Body.scala, Comment.scala)
- tests
- improved implicits shadowing information
- model shadowing computation (ModelFactoryImplicitSupport.scala,
Entity.scala)
- html generation for shadowing information (Template.scala)
- tests
Also fixes an issue reported by @dragos, where single-line comment
expansion would lead to the comment disappearing.
Review by @kzys, @pedrofurla.
Adapted to the new model and fixed a couple of problems:
- duplicate implicit conversions in StringAdd/StringFormat
- incorrect implicit conversion signature (from X to X)
Conflicts:
src/compiler/scala/tools/nsc/doc/Settings.scala
src/compiler/scala/tools/nsc/doc/html/page/Template.scala
src/compiler/scala/tools/nsc/doc/model/Entity.scala
src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala
src/compiler/scala/tools/nsc/doc/model/ModelFactoryImplicitSupport.scala
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the old model was "interruptible", it was prone to something
similar to race conditions -- where the model was creating a template,
that template creating was interrupted to creat another template, and
so on until a cycle was hit -- then, the loop would be broken by
returning the originally not-yet-finished template.
Now everything happens in a depth-first order, starting from root,
traversing packages and classes all the way to members. The previously
interrupting operations are now grouped in two categories:
- those that were meant to add entities, like inheriting a class from
a template to the other (e.g. trait T { class C }; trait U extends T)
=> those were moved right after the core model creation
- those that were meant to do lookups - like finding the companion
object -- those were moved after the model creation and inheritance
and are not allowed to create new documentable templates.
Now, for the documentable templates we have:
DocTemplateImpl - the main documentable template, it represents a
Scala template (class, trait, object or package).
It may only be created when modelFinished=false by
methods in the modelCreation object
NoDocTemplateMemberImpl - a non-documented (source not present)
template that was inherited. May be used as
a member, but does not get its own page
NoDocTemplateImpl - a non-documented (source not present) template
that may not be used as a member and does not
get its own page
For model users: you can use anything in the ModelFactory trait at
will, but not from the modelCreation object -- that is reserved for the
core model creation and using those functions may lead to duplicate
templates, invalid links and other ugly problems.
|
|
|
|
| |
This reverts commit 831f09bb6d00c152bd8aef3ce8bf9e200080fe36.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit contains model changes required for adding class diagrams
to scaladoc. It also contains an improved implicit shadowing
computation, which hides the shadowed implicitly inherited members
from the main view and gives instructions on how to access them.
This is joint work with Damien Obrist (@damienobrist) on supporting
diagram generation in scaladoc, as part of Damien's semester project
in the LAMP laborarory at EPFL.
The full history is located at:
https://github.com/damienobrist/scala/tree/feature/diagrams-dev
Commit summary:
- diagrams model
- diagram settings (Settings.scala, ScalaDoc.scala)
- diagram model object (Entity.scala, Diagram.scala)
- model: tracking direct superclasses and subclasses,
implicit conversions from and to (ModelFactory.scala)
- diagram object computation (DiagramFactory.scala, DocFactory.scala)
- capacity to filter diagrams (CommentFactory.scala,
DiagramDirectiveParser.scala)
- diagram statistics object (DiagramStats.scala)
- delayed link evaluation (Body.scala, Comment.scala)
- tests
- improved implicits shadowing information
- model shadowing computation (ModelFactoryImplicitSupport.scala,
Entity.scala)
- html generation for shadowing information (Template.scala)
- tests
Also fixes an issue reported by @dragos, where single-line comment
expansion would lead to the comment disappearing.
Review by @kzys, @pedrofurla.
|
|
|
|
|
| |
If a package have a package object, generate the package's "linearization"
from the object.
|
|
|
|
|
|
|
|
| |
Suggested by Simon in
https://groups.google.com/forum/?hl=en&fromgroups#!topic/scala-internals/z7s1CCRCz74
Now it eliminates backticks and gracefully bails out with an error
message when it can't remove the wiki syntax.
|
|
|
|
|
| |
* all usages of ClassManifest and Manifest are replaced with tags
* all manifest tests are replaced with tag tests
|
|
|
|
| |
and implicit pimped on members. Thanks to Lukas for pointing it out!
|
| |
|
|
|
|
| |
SIP 18.
|
|
|
|
|
|
|
| |
See https://github.com/VladUreche/scala/tree/feature/doc-implicits for the history.
See https://scala-webapps.epfl.ch/jenkins/view/scaladoc/job/scaladoc-implicits-nightly/ for nightlies.
Many thanks fly out to Adriaan for his help with implicit search!
|
|
|
|
|
| |
And adds basic support for scaladoc model tests (class
partest.ScaladocModelTest)
|
| |
|
|\
| |
| |
| |
| | |
Conflicts:
test/scaladoc/scala/html/HtmlFactoryTest.scala
|
| |
| |
| |
| |
| | |
and fixed a pesky crash in the syntax highlighting caused by invalid
chars (0x0E) in MarkupParser.scala.
|
| | | |
| \ | |
|\ \ \
| |_|/
|/| |
| | | |
'acruise/t1118', 'hubertp/issue/5572', 'hubertp/topic/nightly-checkinit', 'axel22/feature/pc-ctrie', 'jsuereth/master-version-fixin' and 'axel22/feature/checkinit-transient' into develop
|
| |/ |
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
lib/scala-compiler.jar.desired.sha1
lib/scala-library-src.jar.desired.sha1
lib/scala-library.jar.desired.sha1
src/compiler/scala/reflect/internal/Definitions.scala
src/compiler/scala/reflect/internal/Importers.scala
src/compiler/scala/reflect/internal/Symbols.scala
src/compiler/scala/reflect/internal/Trees.scala
src/compiler/scala/reflect/internal/Types.scala
src/compiler/scala/tools/nsc/Global.scala
src/compiler/scala/tools/nsc/transform/Erasure.scala
src/compiler/scala/tools/nsc/transform/LiftCode.scala
src/compiler/scala/tools/nsc/transform/UnCurry.scala
src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
src/compiler/scala/tools/nsc/typechecker/Typers.scala
test/files/run/programmatic-main.check
test/files/speclib/instrumented.jar.desired.sha1
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
From now on, the usecases inherit the comments from their parents, such
as the explanation and the annotations: @param, @tparam, @return, etc.
An example of usecase comment inheritance is:
/**
* The test function tests the parameter param for ...
*
* @param theParam the implicit parameter to be tested for ...
* @return the result of the test
*
*
*
* @usecase def test(): Bool
*
* The test function tests the parameter taken implicitly from scope.
* Example: `test()`
*
* @return the result of the test for the current scope
*
*
*
* @usecase def test(theParam: SomeType): Bool
*
* This takes the explicit value passed.
* Example: `test(3)`
*
* @param theParam the explicit parameter to be tested for ...
*/
def test(implicit theParam: SomeType): Bool
Notice both usecases override the explanation with their own examples.
The first usecase also overrides the "@return" annotation while the 2nd
usecase overrides the "@param theParam" annotation. If they didn't
override the explanations and annotations, they would inherit the
values from the actual implementation, def test(implicit ...)
This will be followed by @inheritdoc, which enables more fine-grained
control over comment inheritance. The full explanation of using comment
inheritance and @inheritdoc and their interaction with variables is
given at https://wiki.scala-lang.org/display/SW/Tags+and+Annotations
in the "Comment inheritance" and "Inheritance Example" sections.
|
|/
|
|
|
|
|
| |
Disabled failing scaladoc test rather than fixing it because they're too
hard to fix, even though it is almost certainly a trivial output change.
(The fact that I don't know for sure that it is a trivial output change
is also suboptimal.)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
with null value"
This commit reverts the following two commits:
5f2568e36b87d183fd4e4442d5c304db628846c4 - "Revert "Accept prefixed xml attributes with null value"
b00002f9049c034510438881b4a4449d73fe2f54 - "Disabling some scaladoc tests."
and fixes a scaladoc test broken by:
4787f883604d1344257c0b40c15790c3dde477f2 - "Fixed equality and string representation of xml attributes with null value"
|
|
|
|
|
|
|
|
|
|
|
| |
These tests are WAY too difficult to work with. I don't have
a clue what these failures are telling me, except they are telling
me to disable them.
Actual output:
[partest] Check failed:
[partest] HTML: SI_5054_q1classSI_5054_q1extendsAnyRefLinearSupertypesAnyRef,AnyOrderingAlphabeticByinheritanceInheritedHideAllShowallSI_5054_q1AnyRefAnyVisibilityPublicAllInstanceConstructorsnewSI_5054_q1()ValueMembersfinaldef!=(arg0:AnyRef):BooleanDefinitionClassesAnyReffinaldef!=(arg0:Any):BooleanDefinitionClassesAnyfinaldef##():IntDefinitionClassesAnyRefAnyfinaldef==(arg0:AnyRef):BooleanDefinitionClassesAnyReffinaldef==(arg0:Any):BooleanDefinitionClassesAnyfinaldefasInstanceOf[T0]:T0DefinitionClassesAnydefclone():AnyRefAttributesprotected[lang]DefinitionClassesAnyRefAnnotations@throws()finaldefeq(arg0:AnyRef):BooleanDefinitionClassesAnyRefdefequals(arg0:Any):BooleanDefinitionClassesAnyRefAnydeffinalize():UnitAttributesprotected[lang]DefinitionClassesAnyRefAnnotations@throws()finaldefgetClass():Class[_]DefinitionClassesAnyRefAnydefhashCode():IntDefinitionClassesAnyRefAnyfinaldefisInstanceOf[T0]:BooleanDefinitionClassesAnyfinaldefne(arg0:AnyRef):BooleanDefinitionClassesAnyReffinaldefnotify():UnitDefinitionClassesAnyReffinaldefnotifyAll():UnitDefinitionClassesAnyReffinaldefsynchronized[T0](arg0:⇒T0):T0DefinitionClassesAnyRefdeftest():Int[usecase]deftoString():StringDefinitionClassesAnyRefAnyfinaldefwait():UnitDefinitionClassesAnyRefAnnotations@throws()finaldefwait(arg0:Long,arg1:Int):UnitDefinitionClassesAnyRefAnnotations@throws()finaldefwait(arg0:Long):UnitDefinitionClassesAnyRefAnnotations@throws()InheritedfromAnyRefInheritedfromAny
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The documents with use cases should be restructured like:
/**
* The full definition, either used with an implicit value or with an explicit one.
*
* Some more explanation on implicits...
*
* @param lost a lost parameter
* @return some integer
*
* @usecase def test(): Int
*
* This takes the implicit value in scope.
*
* Example: `test()`
*
* @usecase def test(explicit: Int): Int
*
* This takes the explicit value passed.
*
* Example: `test(3)`
*/
def test(implicit lost: Int): Int
|
| |
|
|
|
|
|
|
|
|
|
|
| |
If use cases are present, the original member disappears from the list.
References SI-5054, but needs more work on the html part. If use cases
are present along with links, scaladoc doesn't crash anymore. Closes
SI-4898.
Review by kzys.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make partest work with spaces in the path (from batch script and ant
task).
- The 'partest' ant task gets a new 'compilerargs' element for scalac
- options (like in scalacfork and javac). Fixed argument list handling
- in partest task. Further improvements to argument list handling for
- all ant tasks. Fixed argument list handling in DirectTest (used by
- partest shell scripts) Fixed path handling in several test cases.
Closes SI-622. Review by phaller.
|
| |
|
|
|
|
|
| |
Reverting r25787 (caused test.scaladoc failures on certain systems)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add "Google tokens for Scala" for symbolic names on Scaladoc. Review by
ureche.
We can't use Scala's symbolic names on Google. Instead of waiting
Google, we'll introduce mapping from the names to equivalent searchable
representations. This idea proposed by Grzegorz Kossakowski.
https://groups.google.com/group/scala-internals/browse_thread/thread/413
dbc691542f76f
|
|
|
|
|
|
| |
Add a small "template engine" and separete HTML from Scaladoc's source
code. Review by ureche.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Scaladoc shouldn't drop type arguments to aliased tuple. Related to
SI-4676. Review by pedrofurla.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes to scaladoc include:
- fixed transformation of Code(text) into HTML tag <code> - added tool
tips for deprecated entities (classes, methods) using the 'title'
attribute - added syntax highlighting of Scala source code in generated
<pre> blocks (CSS colors are defined in lib/template.css)
Here are several examples of highlighted Scala code:
scala.App
scala.Application
scala.Enumeration
scala.Function1
scala.Function2
scala.native
scala.Option
scala.Proxy
scala.specialized
scala.throws
scala.unchecked
scala.actors.Actor
scala.annotation.deprecatedName
scala.annotation.elidable
scala.annotation.switch
scala.collection.DefaultMap
scala.collection.JavaConversions
scala.collection.JavaConverters
scala.collection.LinearSeqLike
scala.collection.MapLike
scala.collection.SetLike
scala.collection.TraversableLike
scala.collection.immutable.NumericRange
scala.collection.immutable.Range
scala.collection.immutable.Stream
scala.collection.mutable.BufferLike
scala.concurrent.pilib
scala.io.Position
scala.reflect.BeanProperty
scala.reflect.Manifest
scala.testing.Benchmark
scala.util.DynamicVariable
scala.util.control.Breaks
scala.util.control.ControlThrowable
scala.util.control.Exception
scala.util.control.TailCalls
scala.util.logging.Logged
scala.util.parsing.combinator.testing.Tester
scala.util.parsing.json.JSON
scala.util.regexp.WordExp
scala.xml.factory.LoggedNodeFactory
scala.xml.parsing.ConstructingParser
|
| |
|
| |
|