| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|\
| |
| | |
SI-2807 Avoid catch all warning for Stable Id patterns
|
| | |
|
|\ \
| | |
| | | |
SI-5489 Avoid accidentally adding members to Object in erasure.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`Symbol#classBound` assumed that `refinedType` would return a
a type based on new refinement class symbol; but that isn't so
during erasure. Instead, it returns the first super class, into
which we entered new members. Needless to say, the next run of the
resident compiler didn't take kindly to these hijinks.
To remedy the situation, I've added (yet another) condition
on `phase.erasedTypes`.
|
|\ \ \
| | | |
| | | | |
SI-4176 A repeat dose of repeated parameter type sanitization.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- During eta expansion, treat parameters of type A* as Seq[A]
- Do the same for method/class parameters as referred to by an Ident.
Also fixes SI-5967, which shows up during pattern matching.
|
| |/ /
|/| |
| | |
| | | |
Errs on the side of avoiding false positives.
|
|\ \ \
| |_|/
|/| | |
Split @milessabin HasRepr into IsTraversableOnce and IsTraversableLike t...
|
| | |
| | |
| | |
| | | |
class-ish things.
|
|\ \ \
| | | |
| | | | |
Renaming convertTo to to on GenTraversableOnce.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
src/library/scala/collection/MapLike.scala
src/library/scala/collection/SortedMapLike.scala
|
| |\ \ \ \
| | |/ / /
| |/| | | |
Fix SI-3326.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The heart of the problem - we want to retain the ordering when
using `++` on sorted maps.
There are 2 `++` overloads - a generic one in traversables and
a map-specific one in `MapLike` - which knows about the ordering.
The problem here is that the expected return type for the expression
in which `++` appears drives the decision of the overload that needs
to be taken.
The `collection.SortedMap` does not have `++` overridden to return
`SortedMap`, but `immutable.Map` instead.
This is why `collection.SortedMap` used to resort to the generic
`TraversableLike.++` which knows nothing about the ordering.
To avoid `collection.SortedMap`s resort to the more generic `TraverableLike.++`,
we override the `MapLike.++` overload in `collection.SortedMap` to return
the proper type `SortedMap`.
|
| |\ \ \ \
| | | | | |
| | | | | | |
Revert pull request #720 (CPS: enable return expressions in CPS code if ...
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
are in tail position)
Reverts commit 0ada0706746c9c603bf5bc8a0e6780e5783297cf.
Reverts commit 51c92f02229098d0b402a65a72267f7a17984022.
Reverts commit cdfbe8e39fbbec00c969cd74f117ae410b98b40b.
Reverts commit 796024c7429a03e974a7d8e1dc5c80b84f82467d.
|
| |\ \ \ \ \
| | | | | | |
| | | | | | | |
Fix SI-5986.
|
| | | |/ / /
| | |/| | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Here we had an issue that RedBlack does not work the same way
for sets - which are not supposed to replace an element if
it is the same (wrt equals) and maps - which should replace
the corresponding values.
Adding an overwrite parameter which decides whether to overwrite
added keys if they are the same in the ordering.
Fix tests.
|
| |\ \ \ \ \
| | |_|_|/ /
| |/| | | | |
Parallelize convertTo in parallel collection.
|
| | | |/ /
| | |/| | |
|
| |\ \ \ \
| | | | | |
| | | | | | |
Fix SI-5971.
|
| | |/ / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When using `AbstractTransformed` abstract inner class in views in order
to force generating bridges, one must take care to push the corresponding
collection trait (such as `Iterable` or `Seq`) as far as possible to the
left in the linearization order -- otherwise, overridden methods from these
traits can override the already overridden methods in view. This was the
case with `takeWhile`.
|
| |\ \ \ \
| | | | | |
| | | | | | |
Test that closes SI-5839. Bug itself most probably fixed by #602
|
| | | | | | |
|
| |\ \ \ \ \
| | | | | | |
| | | | | | | |
removes pre-M4 compatibility stubs for the IDE
|
| | | | | | | |
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Fix range positions when applying anonymous classes.
|
| | | |/ / / /
| | |/| | | |
| | | | | | |
| | | | | | | |
@odersky
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
patmat bugfixes and minor clean ups
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
TODO: t5899 should also be refactored, but I couldn't figure out how
I tried the obvious Cake Light pattern with abstract types etc, but that didn't trigger it
there must be something with indirection through paths as well
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | |_|/ / /
| | |/| | | | |
|
| |\ \ \ \ \ \
| | |/ / / / /
| |/| | | | | |
Closes SI-5148.
|
| | |/ / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Unfortunately we have to wrap transform to catch all
the MissingRequirementErrors exceptions (wrapped in TypeErrors).
This is because we force the info of the symbol in a couple of
places and we would have to catch all/some of them
(and remove the duplicates as well which really becomes messy).
Review by @axel22.
|
| | | | | | |
|
| |\ \ \ \ \
| | | | | | |
| | | | | | | |
Added test for SI-5761.
|
| | |/ / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Seems that my cleanup of SI-4842 also fixed that one.
Review by @paulp or @retronym.
|
| |/ / / / |
|
| |\ \ \ \
| | | | | |
| | | | | | |
Minor followup on SI-4842: remove awkward condition. Review by @retronym
|
| | | | | | |
|
| |\ \ \ \ \
| | | | | | |
| | | | | | | |
SI-5966 Fix eta expansion for repeated parameters with zero arguments.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Reworks part of e33901 / SI-5610, which was inserting an <empty> tree
as an argument in this case, which turns into a null in icode.
|
| |\ \ \ \ \ \
| | |_|_|_|_|/
| |/| | | | | |
SI-5968 Eliminate spurious exhaustiveness warning with singleton types.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
A singleton type is a type ripe for enumeration.
|
| |\ \ \ \ \ \
| | |/ / / / /
| |/| | | | | |
SI-4989 Reject super.x if an intermediate class declares x abstract.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This is in line with Java's treatment. Without this, an AbstractMethodError
is thrown at runtime.
|