| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
SI-8677 Duration: Zero - Inf should be MinusInf
|
| |
| |
| |
| | |
Fixes #8677. Add basic tests.
|
|\ \
| | |
| | | |
Change StringContext scaladoc
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
See e2a3498 commit message for explanation
Explicit private declaration better than implicit
Thanks to @som-snytt
|
|/ / |
|
|\ \
| |/
|/| |
|
| |\
| | |
| | | |
adds MacroPlugin.pluginsIsBlackbox
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is an important omission in the current macro plugin API, which was
designed before the blackbox vs whitebox separation was implemented.
Even if one overrides pluginsTypedMacroBody and pluginsMacroExpand,
that would still be not enough to write a custom macro expander, because
typedImplicit1 uses isBlackbox, which is tightly coupled with the standard
way of reading/writing macro signatures.
|
| |\ \
| | | |
| | | | |
macro args now correctly preserve range positions
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Somewhen in the 2.11.0 development cycle we started duplicating macro arguments
for increased robustness. What wasn't taken into account though is that
Tree.duplicate destroys range positions. This commit fixes the problem.
2.10.x is unaffected by this bug, because it doesn't duplicate the args yet.
|
| |\ \
| | | |
| | | | |
SI-7562 Regex.findAllIn does not report all matches
|
| | | |
| | | |
| | | |
| | | | |
Changed findAllIn docs to clarify that it finds non-overlapping matches.
|
| |\ \ \
| | | | |
| | | | | |
SI-8657 don't miss tailrec defs in more positions
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
1) First operand of boolean expression using `&&` or `||`. Second operands of
those boolean exprs were already treated specially here but handling for first
operands was missing.
2) Condition of `If`. Also added a test for guards.
|
| |\ \ \ \
| | | | | |
| | | | | | |
SI-8185 Correct grammar for single-warning compilation run
|
| | | | | | |
|
| |\ \ \ \ \
| | |_|_|/ /
| |/| | | | |
SI-7372 fix wrong insertion point for binary & linear search.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The public facing binarySearch method used an inclusive 'from'
parameter, while the internal @tailrec one used an *exclusive*
'from' parameter. No wonder there was an off-by-one error somewhere.
This makes both methods use the same exclusive 'from' parameter.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
It should return the position the value would have if it was a part of
the sequence. Somehow even the test was wrong.
|
| |\ \ \ \ \
| | | | | | |
| | | | | | | |
SI-6967 Fix ClassTag unapply for primitives
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This commit fixes the behavior of ClassTag's Any-accepting unapply
overload. Previously, ClassTag had overloads of unapply that accepted
all of the Java primitive aliases (language-supported magic classes
extending AnyVal), as well as an implementation that accepted an Any.
All of the AnyVal-accepting (more specific) versions of the methods
worked correctly. However, the Any-accepting version incorrectly handled
these types. For example, ClassTag.Int.unapply(3) would return Some(3)
(through the Int-accepting overload), while ClassTag.Int.unapply(3: Any)
would return None (through the Any-accepting overload). This commit
unifies these behaviors, making ClassTag.Int.unapply(3: Any) return
Some(3). It accomplishes this by adding a pattern match on the type of
that method's argument, which will delegate to one of the
more-specifically-typed overloads if possible. It also improves the
formatting of the code a bit.
One thing to note (though I doubt anyone will ever do this based on this
message) is that the AnyVal-subtype-accepting overloads should be
removed in Scala 2.12, as they are unneeded. I placed a note to this
effect into the code.
|
| |\ \ \ \ \ \
| | |_|_|_|/ /
| |/| | | | | |
SI-6409 Stream flatMap leaks memory if mapper returns many empties
|
| | |/ / / /
| | | | | |
| | | | | |
| | | | | | |
Added Scaladoc explaining that this is necessary behavior, but closed ticket as wontfix.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The first sentence of a Scaladoc comment is parsed as the summary.
However, this was breaking of the sentence at the first `.`, even
if that was immediately followed by another character.
This commit only considers a period followed by whitespace, EOL or
EOF as the end of a sentence.
|
| |\ \ \ \ \
| | | | | | |
| | | | | | | |
SI-8631 Treat `A with Sealed` as enumerable for pattern matching
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
It arrived in c1f8dbc, but is no longer needed after user-defined
value classes were introduced in 2.10.0.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
- reorder to make "unenumerable" the last case
- reunite an orphaned comment with its loved ones.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Enumerate the subtypes of sealed parent types of refinement
types, and filter those that conform to the refinement type.
Such types can crop up easily when LUB-bing case classes which
add `Product with Serializable` to the mix.
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In the enclosed test, t8611a.scala, the patterns `O.{A, B}` were
incorrect treated as equivelent by the combination of
`uniqueTpForTree` and `Const.uniqueTpForTree`.
`uniqueTpForTree` used `Type#narrow` to try to create a distinct
type for each new pattern tree it encountered. However, narrowing a
`RefinedType` does not create a distinct type as we are used to
when narrowing, e.g. a class type.
// Type
def narrow: Type =
if (phase.erasedTypes) this
else {
val cowner = commonOwner(this)
refinedType(this :: Nil, cowner, EmptyScope, cowner.pos).narrow
}
// CompoundType
override def narrow: Type = typeSymbol.thisType
This commit creates a fresh existential type symbol rather than
trying to use `narrow`.
I've included a unit test to show the sublteties of narrowing
refinment types.
|
|\| | | | | |
|
| |\ \ \ \ \
| | | | | | |
| | | | | | | |
Merge 2.10.x to 2.11.x
|
| | |\ \ \ \ \
| | | |_|/ / /
| | |/| | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
merge/2.10.x-to-2.11.x-20140604
Conflicts:
src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Regressed in SI-7915 / 3009a525b5
We should be deriving the position of the synthetic `Select`
from `basefun1`, rather than `basefun`. In the new, enclosed
test, the difference amounts to:
new Container().typeParamAndDefaultArg[Any]()
`------------ basefun1 --------------'
`----------------- basefun ---------------'
For monomorphic methods, these are one and the same, which is
why `presentation/t7915` was working. I've extended that test
to a polymorphic method to check that hyperlink resolution works.
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-8503 -version is info setting
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
And the Scala runner exits with 0 for info settings.
Producing the version string is consolidated.
The compiler driver uses the default settings hook to
short-circuit on -version. That's to avoid creating
the compiler; really it should check shouldStopWithInfo
first, as the runner does.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
We have interpolation now. This commit also moves an extra blank
line from the end to the middle of the message.
|
| |\ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
Add documentation to parts of scala.concurrent.
|
| | | |/ / / / /
| | |/| | | | | |
|
| | | | | | | | |
|
| |\ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
Fix emitting Array(1).clone() in GenBCode
|
| | |/ / / / / / |
|
| |\ \ \ \ \ \ \
| | |/ / / / / /
| |/| | | | | | |
SI-8553 WrappedArray throws exception on lastIndexWhere when index out of range
|
| | | |_|_|_|/
| | |/| | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Adds a check in `IndexedSeqOptimized#lastIndexWhere(A => Boolean, Int)`
to begin searching in the end of the collection if `end` is greater than
the collection's length.
Discussed in
https://groups.google.com/d/topic/scala-internals/-MacXivbY0Q/discussion.
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-8637 fixes toolbox phase corruption
|
| | |/ / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
It turns out, Toolbox.typecheck hasn't been properly re-initializing its state
between requests.
In particular, globalPhase was left untouched, which made the compiler
think that it's past typer, and that in turn disabled implicits.
This commit applies a symptomatic fix to this problem.
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-8630 lineToString no longer long by one at eof
|
| | | |/ / / /
| | |/| | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
One more EOL crasher, or lack-of-EOL crasher, when the text
is at EOF.
It was not caught by the last round of excellent and
thorough tests because
```
// If non-whitespace tokens run all the way up to EOF,
// positions go wrong because the correct end of the last
// token cannot be used as an index into the char array.
// The least painful way to address this was to add a
// newline to the array.
```
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-8475 GroupedIterator is also lazy when padded
|
| | |/ / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This is the related case which dnlgtm in the previous fix.
The old code seems to be tilting for laziness, but we have
to fill the buffer with the current group anyway, so there
is no reason to be coy about calling ArrayBuffer.length.
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-6678 Make currentMirror macro hygenic
|