| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
And grueling recovery from branch drift.
Merges a portion (and only a portion) of topic/inline into master.
The major changes which come with this merge are:
AnyVal is unsealed, can be extended directly.
ScalaObject is no longer with us.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |\ \
| | | |
| | | |
| | | | |
'jsuereth/better-starr-flow' into develop
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
several fixes to the standard library due to
- the safer type checker this fix gives us (thus, some casts had to be inserted)
- SI-5548
- type inference gets a bit more complicated, it needs help (chainl1 in combinator.Parsers)
To deal with the type slack between actual (run-time) types and statically known
types, for each abstract type T, reflect its variance as a skolem that is
upper-bounded by T (covariant position), or lower-bounded by T (contravariant).
Consider the following example:
class AbsWrapperCov[+A]
case class Wrapper[B](x: Wrapped[B]) extends AbsWrapperCov[B]
def unwrap[T](x: AbsWrapperCov[T]): Wrapped[T] = x match {
case Wrapper(wrapped) =>
// Wrapper's type parameter must not be assumed to be equal to T,
// it's *upper-bounded* by it
wrapped // : Wrapped[_ <: T]
}
this method should type check if and only if Wrapped is covariant in its type
parameter
before inferring Wrapper's type parameter B from x's type AbsWrapperCov[T], we must
take into account that x's actual type is:
AbsWrapperCov[Tactual] forSome {type Tactual <: T}
since AbsWrapperCov is covariant in A -- in other words, we must not assume we know
T exactly, all we know is its upper bound
since method application is the only way to generate this slack between run-time and
compile-time types (TODO: right!?), we can simply replace skolems that represent
method type parameters as seen from the method's body by other skolems that are
(upper/lower)-bounded by that type-parameter skolem (depending on the variance
position of the skolem in the statically assumed type of the scrutinee, pt)
this type slack is introduced by adaptConstrPattern: before it calls
inferConstructorInstance, it creates a new context that holds the new existential
skolems
the context created by adaptConstrPattern must not be a CaseDef, since that
confuses instantiateTypeVar and the whole pushTypeBounds/restoreTypeBounds dance
(CaseDef contexts remember the bounds of the type params that we clobbered
during GADT typing)
typedCase deskolemizes the existential skolems back to the method skolems,
since they don't serve any further purpose (except confusing the old pattern
matcher)
typedCase is now better at finding that context (using nextEnclosing)
|
| | | |
| | | |
| | | |
| | | |
| | | | |
fixed concurrent.impl.Promise by making FState invariant
(it would be unsound to make it covariant)
|
| | |/
| |/|
| | |
| | | |
Closes SI-3275, SI-5455.
|
| | |
| | |
| | |
| | |
| | | |
Phantom types were vanishing during the erasure which takes
place from manifest -> class object -> tpe.
|
| | |
| | |
| | |
| | |
| | |
| | | |
This should exclude everything mutable. I'm open to suggestions
as to what sort of final fields we can safely allow beyond these,
if any.
|
| |\ \ |
|
| | |\ \ |
|
| | | | | |
|
| |/ / /
| | | |
| | | |
| | | | |
References SI-3569. Probably needs refinement.
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Closes SI-5545. In the long run this should be generalized, as other
phases might suffer from the same problem. Full explanation here:
https://issues.scala-lang.org/browse/SI-5545
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | | |
'hubertp/issue/5553' into develop
|
| | | |/ /
| | |/| | |
|
| | |_|/
| |/| | |
|
| | | |
| | | |
| | | |
| | | | |
(I'm assuming this is desirable, please review @scalamacros)
|
| | | | | |
| | \ \ | |
| | \ \ | |
| | \ \ | |
| | \ \ | |
| | \ \ | |
| |\ \ \ \ \ \
| | |_|_|_|_|/
| |/| | | | |
| | | | | | | |
'axel22/feature/pc-execution-contexts', 'VladUreche/issue/5527-noPos' and 'retronym/topic/tolerant-interpolator' into develop
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
f"${foo}" is treated like f"${foo}%s".
|
| | |_|/ / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
By making the comment tree node transparent. Reverts previous change
in cfb04ef065. Will mark the bug 5527 as WONTFIX, because the effort
of fixing leaking comments is too great.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
During shutdown, other threads can still post work items on the work queue. They will never be serviced,
leading to clients waiting forever.
The fix is to replace the implementation of the queue with a 'always fail' implementation during shutdown.
Review by @odersky.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Has to be somewhere more directly tied to structural
refinements. See run/lub-visibility.scala before/after
output for motivation. Closes SI-5534.
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
I think this fixes SI-2296, the inability to access java protected
members from a trait which extends a java class. Counterexamples
appreciated. Closes SI-2296. Review by @dragos.
|
| | |/ /
| |/| |
| | | |
| | | |
| | | | |
And pending tests for most of the other VerifyErrors which
still fail to verify.
|
| | | |
| | | |
| | | |
| | | | |
Closes SI-5537.
|
| | | | | |
| | \ \ | |
| | \ \ | |
| | \ \ | |
| |\ \ \ \ \
| | | | |/ /
| | | |/| |
| | | | | | |
'axel22/feature/pc-execution-contexts' and 'TiarkRompf/SI-5538'; commit 'd92bcb5302be04104abe2db6cf92620c4cd7255e' into develop
|
| | | | | | |
|
| | | |\| |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Conflicts:
src/library/scala/collection/parallel/Combiner.scala
src/library/scala/collection/parallel/ParIterableLike.scala
src/library/scala/collection/parallel/mutable/ParCtrie.scala
|
| | | | | \ | |
| | | | | \ | |
| | | | |\ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | | |
'szabolcsberecz/SI-5380' and 'scalamacros/ticket/5532' into develop
|
| | | |_|_|/ /
| | |/| | | | |
|
| | | |_|/ /
| | |/| | | |
|
| | | | |\ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Conflicts:
src/compiler/scala/tools/nsc/transform/UnCurry.scala
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This required a bit of refactoring in the tasks objects and implementations
of various operations. Combiners now hold a reference to a tasksupport
object and pass it on to their result if `resultWithTaskSupport` is called.
Additionally, several bugs that have to do with CanBuildFrom and combiner
resolution have been fixed.
|
| | |_|/ / /
| |/| | | | |
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Looks like my attempt to handle whitespace when merging
preserved the correct history less than swimmingly. Am
attempting to patch it up.
|
| | | | |
| | | | |
| | | | |
| | | | | |
into develop
|
| | | | |
| | | | |
| | | | |
| | | | | |
Eliminated annotation and custom phase. Kept SYNCHRONIZED flag.
|
| |\ \ \ \
| | |_|/ /
| |/| | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The following:
def f = synchronized { ... }
will be rewritten to:
<synchronized> def f = ...
which is then emitted to the classfile with the synchronized flag set.
Inlining of such transformed methods are disabled for now
This transformation is not done on methods defined in a trait.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Since there is no useful information in such a message.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
An object in a pattern should have type "Foo.type" just as
objects not in patterns do. Closes SI-5406. Review by @moors.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Hacked filename into message to alleviate meaningless
"_$1 defined twice" error condition. References SI-4893.
|
| | |_|/
| |/| |
| | | |
| | | | |
From the extempore archive of already implemented things.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Remove obsolete, move passing pending -> files, update
those-kinds-are-high with some new info, added a couple
new ones to pending.
|
| |\ \ \ |
|
| | | | | |
|