| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
invocation of length method
|
|\
| |
| | |
Fix Scaladoc links in scala.io.Source
|
| |
| |
| |
| |
| | |
The link to iter will work if the restriction to showing only public members
is lifted in the visibility section.
|
|\ \
| | |
| | | |
More conservative optimization for unnecessary outer ref checks
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The old algorithm omitted necessary outer ref checks in some places.
This new one is more conservative. It only omits outer ref checks when
the expected type and the scrutinee type match up, or when the expected
type is defined in a static location. For this specific purpose the top
level of a method or other code block (which is not a trait or class
definition) is also considered static because it does not have a prefix.
This change comes with a spec update to clarify the prefix rule for type
patterns. The new wording makes it clear that the presence of a prefix
is to be interpreted in a *semantic* way, i.e. the existence of a prefix
determines the necessity for an outer ref check, no matter if the prefix
is actually spelled out *syntactically*. Note that the old outer ref
check implementation did not use the alternative interpretation of
requiring prefixes to be given syntactically. It never created an outer
ref check for a local class `C`, no matter if the pattern was `_: C`
or `_: this.C`, thus violating both interpretations of the spec.
There is now explicit support for unchecked matches (like
`case _: (T @unchecked) =>`) to suppress warnings for unchecked outer
refs. `@unchecked` worked before and was used for this purpose in
`neg/t7721` but never actually existed as a feature. It was a result of
a bug that prevented an outer ref check from being generated in the
first place if *any* annotation was used on an expected type in a type
pattern. This new version will still generate the outer ref check if an
outer ref is available but suppress the warning otherwise. Other
annotations on type patterns are ignored.
New tests are in `neg/outer-ref-checks`. The expected results of tests
`neg/t7171` and `neg/t7171b` have changed because the compiler now
tries to generate additional outer ref checks that were not present
before (which was a bug).
|
|\ \ \
| | | |
| | | | |
Merge 2.11.x into 2.12.x [ci: last-only]
|
| |\ \ \ |
|
| | |\ \ \
| | | | | |
| | | | | | |
bump versions after 2.11.8 release
|
| | |/ / / |
|
| |\| | |
| | | | |
| | | | |
| | | | | |
Resolved conflicts as in b0e05b67c7
|
| | |\ \ \
| | | | | |
| | | | | | |
Document -Xxml:coalescing in scalac man page
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The formatting style is based on -g and -target.
|
| | |\ \ \ \
| | | | | | |
| | | | | | | |
explicitly specify insertion-order feature in docs
|
| | | | | | | |
|
| | |\ \ \ \ \
| | | | | | | |
| | | | | | | | |
Typesafe -> Lightbend in more places
|
| | |/ / / / / |
|
| | |\ \ \ \ \
| | | |_|/ / /
| | |/| | | | |
SI-9546 Fix regression in rewrite of case apply to constructor call
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
During code review for the fix for SI-9546, we found a corner
case in the SI-9425 that remained broken.
Using `finalResultType` peels off all the constructor param
lists, and solves that problem.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
In SI-9425, I disabled the rewrite of `CaseClass.apply(x)` to
`new CaseClass(x)` if the constructor was was less accessible
than the apply method. This solved a problem with spurious
"constructor cannot be accessed" errors during refchecks for
case classes with non-public constructors.
However, for polymorphic case classes, refchecks was persistent,
and even after refusing to transform the `TypeApply` within:
CaseClass.apply[String]("")
It *would* try again to transform the enclosing `Select`, a
code path only intended for monomorphic case classes. The tree has
a `PolyType`, which foiled the newly added accessibility check.
I've modified the call to `isSimpleCaseApply` from the transform
of `Select` nodes to exclude polymorphic apply's from being
considered twice.
|
| | |/ / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
I've identified a dead call to `transformCaseApply` that
seems to date back to Scala 2.6 vintages, in which case
factory methods were a fictional companion method, rather
than a real apply method in a companion module.
This commit adds an abort in that code path to aide code
review (if our test suite still passes, we know that I've
removed dead code, rather than silently changing behaviour.)
The following commit will remove it altogether
I then inlined a slightly clunky abstraction in the two
remaining calls to `transformCaseApply`. It was getting in the
way of a clean fix to SI-9546, the topic of the next commit.
|
| |\| | | | |
|
| | |\ \ \ \
| | | | | | |
| | | | | | | |
Fix bold text in reflect API for 2.11.x
|
| | |/ / / /
| | | | | |
| | | | | | |
Same as #4999
|
| |\| | | | |
|
| | |\ \ \ \
| | | | | | |
| | | | | | | |
upgrade to sbt 0.13.11
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
yum! delicious dogfood!
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
janekdb/topic/2.12.x-scaladoc-advertise-deprecated-read-methods-less-Predef
Remove mention of deprecated I/O methods from Predef main comment
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The read* functions are deprecated so should not be highlighted.
Copied Scaladoc from Console on the assumption that few people will tarry
for long once they have seen the existence of the print* methods.
Linkified print* methods.
Added note to printf encouraging use of f interpolator.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Format collection conversions Scaladoc as code blocks instead of bullets
|
| | |_|_|_|_|/
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
- Makes the list of conversions easier to scan
- Makes main comment formatting internally consistent
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Fix var spelling in WeakHashSet
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
WeakHashSet is internal so an exception was made against binary
compatibility to allow the var to be made private.
|
|\ \ \ \ \ \ \
| |_|/ / / / /
|/| | | | | | |
Scaladoc: change behavior of clear-button on input fields
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This commit changes the behavior to only remove the "x" if there is no
input in the input field. The old behavior was to bind the blur event to
be fired later - but this had the drawback of not working properly on
fast hardware as the timeout would actually beat the click event.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-9347 Efficient head/tail, if possible, for immutable maps & sets
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Most immutable collections, including sets and maps, have a better-than-O(n) method for removing an element. In those cases, tail and possibly head were overridden so the head/tail pattern can be used with less of a performance penalty.
Speed improvements on head/tail pattern are
(for sets/maps of size 1024, unless otherwise specified):
```
BitSet 190x
HashSet 250x
Set 400x
Set2 9x
Set4 12x
HashMap 430x
ListMap 2500x // size 128
Map 430x
```
Note: `ListMap` is actually `init`/`last` because it's maintained in reverse order.
Altered ListMap docs to explain that reverse traversal is the fast way to do it.
All tested sets/maps that were already fast are still fast.
Test code is reproduced below, except it does ListSet with head/tail which
doesn't show the improvement:
```scala
object BenchTailSetMap {
val th = new ichi.bench.Thyme
val standard = 1 to 1024
val sets = Map[String, Set[Int]](
"Set" -> (Set.empty[Int] ++ standard),
"Set4"-> Set(4, 7, 2, 1),
"Set2"-> Set(3, 4),
"HashSet" -> (collection.immutable.HashSet.empty[Int] ++ standard),
"BitSet" -> (collection.immutable.BitSet.empty ++ standard),
"SortedSet" -> (collection.immutable.SortedSet.empty[Int] ++ standard),
"ListSet" -> (collection.immutable.ListSet.empty[Int] ++ standard)
)
val pairs = standard.map(i => i -> i.toString)
// ListMap implementation is HORRIBLE, O(n^3) tail! Cut down size.
val maps = Map[String, Map[Int, String]](
"Map" -> (Map.empty[Int, String] ++ pairs),
"HashMap" -> (collection.immutable.HashMap.empty[Int, String] ++ pairs),
"SortedMap" -> (collection.immutable.SortedMap.empty[Int, String] ++ pairs),
"ListMap" -> (collection.immutable.ListMap.empty[Int, String] ++ pairs.take(128))
)
def hts(s: Set[Int]) = {
var si = s
var x = 0
while (si.nonEmpty) {
x += si.head
si = si.tail
}
x
}
def htm(m: Map[Int, String]) = {
var mi = m
var x = 0
while (mi.nonEmpty) {
x += mi.head._2.length
mi = mi.tail
}
x
}
def run() {
sets.toList.sortBy(_._1).foreach{ case (name, s) => th.pbench(hts(s), s.size, name) }
maps.toList.sortBy(_._1).foreach{ case (name, m) => th.pbench(htm(m), m.size, name) }
}
}
```
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Fix link descriptions
|
| | |/ / / / /
| |/| | | | | |
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Remove unused classes from Scaladoc
|
|/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Several elements of the old Scaladoc are not in use anymore. To help
with any reverting, the removal of these is done in a single commit
(this one).
The removal includes:
- Old `Index`, the old top "index.html"
- The letter index (with "_" and "deprecated")
- The old `Template` which is superceded by `Entity`
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
janekdb/topic/2.12.x-scaladoc-elide-below-off-by-one-Predef
Scaladoc: Fix elidable threshold off-by-one comment and link elidable
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
When -Xelide-below is 2000 (i.e. at least ASSERTION) the assert methods
are not elided.
- Fixed the above off-by-one error.
- Made elidable a link
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | | |
Update sbt version to most recent that includes the compiler interface
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
compiler-interface-src.jar was available for 0.13.9 but not 0.13.10 or 0.13.11
at the time this commit was tested.
This in preparation for removing Predef#error which was deprecated in 2.9.0.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Fix typo
|
|/ / / / / / |
|
|\ \ \ \ \ \
| |_|_|_|_|/
|/| | | | | |
SI-9658 Fix crosstalk between partial fun. and GADT match
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When typechecking the synthetic default case of a pattern matching
anonymous partial function, we failed to create a new `Context`.
This led to crosstalk with the management of the saved type bounds
of an enclosing GADT pattern match.
This commit avoids the direct call to `typeCase` and instead
indirects through `typedCases`, which spawns a new nested typer
context, and hence avoids the crosstalk when `restoreSavedTypeBounds`
runs.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Add fallback typefaces for monospaced sections in scaladoc
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This commit will also fix the `Filter All Members` input appearing if
there are no members - please see root for an example.
There's also a small CSS fix that addresses a vertical scrollbar on
smaller viewports (footer was not responsively resized).
review: @VladUreche
lol
|