| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
SI-6576 Workaround / diagnostic for IDE NPE.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Seems like this was too optimistic:
> // later by lukas: disabled when fixing SI-5975
> // i think it cannot happen anymore
- restored the null check
- added logging when we set the namer in this attachment,
in the hope of spotting a pattern in the wild.
We don't have a test case yet; if we did we could most likely
have a more principled fix. But this should suffice for 2.10.1.
|
|\ \
| | |
| | |
| | |
| | | |
viktorklang/wip-init-bug-executioncontextimpl-2.10.1
Fixing initialization order bug in ExecutionContextImpl, regression from...
|
|/ / |
|
|\ \
| |/
|/| |
SI-7128 Fix regression in copyToArray for empty arrays
|
|/ |
|
|\
| |
| | |
Revert #1403: binary incompatibilities in scala-swing
|
| | |
|
| |
| |
| |
| |
| |
| | |
This reverts commit 08ab007c5c97f153902c4ac58f87e30fbf7cf99f.
This is necessary to maintain binary compatibility with 2.10.0.
|
|/
|
|
|
|
| |
This reverts commit bdff881f8a15d4de0c0ff2aa2427f0d8244d2d42.
This is necessary to maintain binary compatibility with 2.10.0.
|
|\
| |
| | |
Forward and backward binary compatibility between 2.10.0 and 2.10.1-RC1
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 54a84a36d5b435a787d93ca48d45399136c7e162.
This is necessary to maintain binary compatibility with 2.10.0.
run/t6989.check had to be updated as it also (indirectly) tested SI-6548
Conflicts:
test/files/lib/javac-artifacts.jar.desired.sha1
test/files/run/t6548.check
test/files/run/t6548/Test_2.scala
|
| |
| |
| |
| |
| |
| | |
This reworks 02ed5fb so that we don't change JavaUniverse's super classes.
This is necessary to maintain binary compatibility with 2.10.0.
|
| |
| |
| |
| |
| |
| | |
This reverts commit 0429f0fd9224499cd8b606490d04b1a8dcffbca8.
This is necessary to maintain binary compatibility with 2.10.0.
|
| |
| |
| |
| |
| |
| | |
Inlined AdaptedForkJoinTask, made uncaughtExceptionHandler private[this].
This is necessary to maintain binary compatibility with 2.10.0.
|
| |
| |
| |
| | |
This is necessary to maintain binary compatibility with 2.10.0.
|
| |
| |
| |
| | |
This is necessary to maintain binary compatibility with 2.10.0.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Reworks d526f8bd74.
This is necessary to maintain binary compatibility with 2.10.0.
matchName="scala.collection.mutable.MutableList.tailImpl"
problemName=MissingMethodProblem
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also revert "SI-4664 [Make scala.util.Random Serializable] Add test case"
This reverts commit 0b92073a38f9d1823f051ac18173078bfcfafc8a.
This reverts commit 2aa66bec86fd464712b0d15251cc400ff9d52821.
This is necessary to maintain binary compatibility with 2.10.0.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit a557a973608a75c7a02f251bbcf49fe6f6b6655e.
This is necessary to maintain binary compatibility with 2.10.0.
Mima says:
matchName="scala.collection.immutable.Range.head"
problemName=IncompatibleResultTypeProblem
The bridge method appeared because result is now Int, whereas
the super-method's result type erases to Object
|
|/
|
|
|
|
|
|
|
|
| |
Using @gkossakowski's contribution to mima (in 0.1.5-SNAPSHOT),
make sure bc.run doesn't fail by filtering out all binary incompatibilities.
Each subsequent commit will comment out the filters it makes irrelevant,
until we only need to filter out permitted binary incompatibilities.
We only allow binary incompatibilities in scala.reflect.internal.
|
|\
| |
| | |
Fixing binary compat for $super regression
|
| |
| |
| |
| |
| | |
A binary incompatibility with 2.10.0 revealed a bug I had
introduced in c58647f5f2.
|
| |
| |
| |
| |
| | |
def sameMethodAndFieldSignatures compares two classes to verify
they have all the same methods and fields, and no others.
|
|\ \
| |/
|/| |
SI-6591 Reify and path-dependent types
|
| |
| |
| |
| | |
https://github.com/scala/scala/pull/2072
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Top-level (i.e. owned by a package) => Ident(symbol)
Nested (i.e. owned by an object or a package object) => Select(owner, symbol)
Inner (i.e. owned by a static class) => selectTerm/selectType(owner, name)
Non-locatable (i.e. everything else) => see GenTrees.scala for more details
Changes w.r.t the previous approaches:
* Top-level refs are no longer reified as Select(This(package), symbol).
Proposed reification scheme is as resistant to resetAttrs as previous one,
but is at the same time much shorter.
* Refs to definitions from package objects are no longer Ident(symbol).
Otherwise reflective compilation of things like `_ :: _` fails.
* Contents of Predef._ and scala._ are no longer treated specially.
This increases the size of reificode, but is more hygienic.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Reification scheme changed. Now Select an SelectFromTypeTree trees
reified appropriately, as Select and SelectFromTypeTree accordingly.
Packages and Predef object was excluded in order not to break the
existing reification scheme and not to break tests which rely on it.
Reified free terms can contain flag <stable> to make reified values
become stable identifiers. For example in the case of
reify_newimpl_15.scala
class C {
type T
reify { val v: List[T] = List(2) }
}
class C reified as free term C$value, and List[C.T] becomes
List[C$value().T], so C$value.apply() need to pass stability test
isExprSafeToInline at scala.reflect.internal.TreeInfo. For this purpose
special case for reified free terms was added to isExprSafeToInline
function.
test run/reify_newipl_30 disabled due to SI-7082
test t6591_4 moved to pending due to SI-7083
|
|\ \
| | |
| | | |
SI-5675 Discard duplicate feature warnings at a position
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When -feature has not been enabled, we were double counting
identical feature warnings that were emitted at the same position.
Normal error reporting only reports the first time a warning
appears at a position; feature warning counter incrementing
should behave the same way.
@hubertp: Fixed .check files that were broken in the original commit.
|
|\ \ \
| | | |
| | | | |
SI-7096 SubstSymMap copies trees before modifying their symbols
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
I removed some strange code in a06d31f6a2 and replaced it by something
incorrect: SubstSymMap should never have side-effects: otherwise,
calling 'tpe1 <: tpe2' for instance would modify the symbols in
annotations of tpe2.
SubstSymMap now always creates new trees before changing them.
|
|\ \ \ \
| | | | |
| | | | | |
Booking more progress on SI-6666
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
During development of the fix for SI-6666, I encountered:
% test/files/pos/t4842.scala
test/files/pos/t4842.scala:10: error: contravariant class Bar occurs in covariant position in type ()this.Bar of constructor Bar
this(new { class Bar { println(Bar.this); new { println(Bar.this) } }; new Bar } ) // okay
I had incorrectly set the INCONSTRUCTOR flag on the class symbol
`Bar`. (It isn't directly in the self constructor call, as it
is nested an intervening anonymous class.)
But, this flag shares a slot with CONTRAVARIANT, and the variance
validation intepreted it as such.
ClassSymbol already has this code to resolve the ambiguous
flags for display purposes:
override def resolveOverloadedFlag(flag: Long) = flag match {
case INCONSTRUCTOR => "<inconstructor>" // INCONSTRUCTOR / CONTRAVARIANT / LABEL
case EXISTENTIAL => "<existential>" // EXISTENTIAL / MIXEDIN
case IMPLCLASS => "<implclass>" // IMPLCLASS / PRESUPER
case _ => super.resolveOverloadedFlag(flag)
}
This commit overrides `isContravariant` to reflect the same logic.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
As we did for self/super calls, add a backstop into
explicitouter and lambdalift to check when we try to
get an outer pointer to an under-construction instance.
|
| | | | |
| | | | |
| | | | |
| | | | | |
Replaces more VerifyErrors with implementation restrictions.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This one lands in the new implementation restriction
which beats the VerifyError.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This flag is calcualed in Namers, and assigned to class
and module class symbols that are defined in self/super-calls,
and in early definitions.
For example, class D is INCONSTRUCTOR in each case below:
class C extends Super({class D; ()})
class C(a: Any) {
def this(a: Any) = this({class D; ()})
}
new { val x = { class D; () } with Super(())
But, the calculation of this flag failed to account for
nesting, so it was not set in cases like:
class C(a: Any) {
def this(a: Any) = this({val x = {class D; ()}; x})
}
This patch searches the enclosing context chain, rather than
just the immediate context. The search is terminated at the
first non term-owned context. In the following example, this
avoids marking `E` as INCONSTRUCTOR; only `D` should be.
class C extends Super({class D { class E }; ()})
This closes SI-6259 and SI-6506, and fixes one problem
in the recently reopened SI-6957.
|
| | | | |
| | | | |
| | | | |
| | | | | |
We'll address them in subsequent commits.
|
|\ \ \ \ \
| |_|_|_|/
|/| | | | |
[backport] SI-6478 Fixing JavaTokenParser ident
|
| | |/ /
| |/| |
| | | |
| | | |
| | | | |
Backport of 256934160007079f473131469af2df4d023c2cfc from PR
https://github.com/scala/scala/pull/1466
|
|\ \ \ \
| | | | |
| | | | | |
SI-6989 privateWithin is now populated in reflect
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Originally composed to accommodate pull request feedback, this test has
uncovered a handful of bugs in FromJavaClassCompleter, namely:
* SI-7071 non-public ctors get lost
* SI-7072 inner classes are read incorrectly
I'm leaving the incorrect results of FromJavaClassCompleters in the check
file, so that we get notified when something changes there.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Runtime reflection in JavaMirrors previously forgot to fill in
privateWithin when importing Java reflection artifacts. Now this is fixed.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-5824 Fix crashes in reify with _*
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Reification crashes if "foo: _*" construct is used. This happens besause type tree is represented either with TypeTree, or with Ident (present case), and `toPreTyperTypedOrAnnotated' only matches of the former. The fix is to cover the latter too. A test is included.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-6961 no structural sharing in list serialization
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Revert list serialization back to what it was in 2.9.x and before.
Partial revert of a6fcd70b60 e234978dfd, which fixed SI-5374.
The ListBuffer part of the fix remains in place.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-6187 Make partial functions re-typable
|
| | |_|_|/ / /
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
- `New(tpe)` doesn't survive a `resetAttrs` / typecheck; use
a name instead.
- Abandon the tree attachment that passed the default
case from `typer` to `patmat`; this tree eluded the
attribute reset performed in the macro. Instead, add it
to the match. Apart from making the tree re-typable, it
also exposes the true code structure to macros, which
is important if they need to perform other code
transformations.
- Install original trees on the declared types of the
parameters of the `applyOrElse` method to ensure that
references to them within the method pick up the correct
type parameter skolems upon retypechecking.
- Propagate `TypeTree#original` through `copyAttrs`,
which is called during tree duplication / `TreeCopiers`.
Without this, the original trees that we installed were
not visible anymore during `ResetAttrs`.
We are not able to reify partial functions yet -- the
particular sticking point is reification of the parentage
which is only available in the `ClassInfoType`.
|