| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This avoids the necessary type cast that was preventing leakage of internal migration classes.
Review by @phaller
|
|\
| |
| | |
Disabled generation of _1, _2, etc. methods.
|
| |
| |
| |
| |
| |
| |
| | |
This was part of the introduction of ProductN, which had
to go back into pandora's box because of issues with cycles
during typing. These should have been reverted along
with it.
|
|\ \
| | |
| | | |
SI-6526 Tail call elimination should descend deeper.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
It wasn't traversing into Select nodes nor into the receiver of
a tail call.
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| | |
In 6eb55d4b7a we put in a remedy for an old issue SI-4560 which
had accumulated a number of sketchy partial remedies which carried
no tests to illustrate their necessity. Looks like at least one of
those was doing something useful. Here's to reversion-reversion.
This reverts commit c8bdf199, which itself reverted cb4fd6582.
|
|\ \
| | |
| | | |
Fix for SI-6537, inaccurate unchecked warning.
|
| |/
| |
| |
| |
| |
| |
| |
| | |
I found a more direct expression of the unchecked logic,
which should be much easier for others to verify. But the
bug being fixed here is that the unchecked checking happens
too early, and the sealed children of a symbol are not yet
visible if it is being simultaneously compiled.
|
|/ |
|
| |
|
| |
|
|
|
|
| |
members
|
| |
|
| |
|
|\
| |
| | |
Fixed SI-6505. Respond to ask calls by immediate failure after compiler shutdown.
|
| |
| |
| |
| |
| |
| |
| | |
shutdown.
When the compiler is asked to shutdown, it may still have items on the working queue, and more can be added by clients in other thread that don't *know* the compiler is down yet. These requests were never serviced, leading to deadlocks or timeouts.
review by @odersky, @hubertp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I can't do any better than a reproduced comment:
For some reason which is still a bit fuzzy, we must let Nothing
through as a lower bound despite the fact that Nothing is always
a lower bound. My current supposition is that the side-effecting
type constraint accumulation mechanism depends on these subtype
tests being performed to make forward progress when there are
mutally recursive type vars. See pos/t6367 and pos/t6499 for the
competing test cases.
|
|\ \
| | |
| | | |
SI-6440: Revert change to `TraversableLike.filterNot`
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit df9f470f14262b9b1002f022c2620d8c38835805 introduced
a change to `TraversableLike.filterNot` which broke Stream
implementation that does override `filter` implementation
but does not override `filterNot` implementation. This shows
clearly that reusing code for strict and non-strict collections
is very problematic.
Added a test-case covering this problem.
Closes SI-6440.
Review by @retronym.
|
|\ \
| | |
| | | |
SI-6483 Prohibit super[T] references in value classes.
|
| | |
| | |
| | |
| | | |
This seems the safest course of action for 2.10.0.
|
|\ \ \
| |_|/
|/| | |
Another reflection bomb
|
| | |
| | |
| | |
| | | |
We have nme.EMPTY and tpnme.EMPTY for that.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Again, this is not a fatal error, so it should end with an Error,
and it should subclass not Throwable, but Exception.
Also moved the exception outside the cake to simplify error handling,
along the same lines of what've been done for parsing and reification
exceptions.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We definitely need to document scala.reflect.runtime.universe,
therefore adding scala.reflect.runtime to skipPackages was a mistake.
But then we need to make a bunch of internal classes private to reflect
or to scala. Not very pretty, but it works.
|
|\ \ \
| | | |
| | | | |
SI-6215 Fix compiler crash on private method in value class
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixes the problem with private defs in value classes by moving the $extension after the name proper rather than before. The previous scheme did not commute with makeNonPrivate:
I.e. if -ext-> is "generate extension name" and -mnp-> is "make not private" we did get for
method foo in value class Foo:
foo -ext-> extension$foo -mnp-> Foo$$extension$foo
but
foo -mnp-> Foo$$foo -ext-> extension$Foo$$foo
With the change both variations give the same name:
foo -ext-> foo$extension -mnp-> Foo$$foo$extension
but
foo -mnp-> Foo$$foo -ext-> Foo$$foo$extension
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Macros don't correspond to bytecode-level methods, therefore
there's no need to undergo any transformations past typer.
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | | |
This matter was discussed at scala-internals:
http://groups.google.com/group/scala-internals/browse_thread/thread/6414d200cf31c357
And I am convinced with Paul's argument: consistency of the convention
is very important.
|
|\ \ \
| | | |
| | | | |
undeprecates manifests for 2.10.0
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
Since scala-reflect.jar is going to be declared experimental for 2.10.0,
it doesn't make sense to deprecate manifests in favor of type tags.
Class manifests, however, ARE deprecated for class tags, because class tags
don't require scala-reflect.jar and are generated independently of type tags.
|
|\ \ \
| |/ /
|/| | |
SI-6451: Rename classes in `unchecked-abstract.scala` test.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As reported Miguel, `Con` is problematic name of a class on Windows
and makes this test to fail. Renamed classes to something else which
hopefully make Windows build happy again.
Closes SI-6451.
Review by @magarciaEPFL or @paulp.
|
|\ \
| | |
| | | |
AnyVal/value classes restrictions
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Nested objects, classes and lazy vals are disallowed at any
nesting level in value classes; e.g. lazy vals local to a
method defined in a value class. There are still allowed in
universal traits.
This is a temporary, implementation restriction that is planned
to be addressed in future releases of Scala. Error messages has
been updated to communicate that intent.
Moved tests for SI-5582 and SI-6408 to pending folder. They have
to stay there until implementation restrictions are addressed.
Closes SI-6408 and SI-6432.
Review by @odersky, @harrah and @adriaanm.
|
| | |
| | |
| | |
| | | |
Fixed problem reported in comment, where inner classes of value classe caused a compiler crash.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
and brought compiler in line with them. One thing we can accept IMO are nested
classes (nested objects are still a problem). In fact, it makes no sense to
exclude nested classes from value classes but not from universal traits. A class
nested in universal trait will becomes a class nested in a value class by
inheritance. Note that the reflection library already contains a universal trait
with a nested class (IndexedSeqLike), so we should accept them if we can.
|
|\ \
| |/
|/| |
SI-6436 Handle ambiguous string processors
|
| |
| |
| |
| |
| |
| |
| |
| | |
Before, we got in an inifinite loop by chasing
the error typed result of adaptToMemberWithArgs.
One point of befuddlement remains: why did t6436 and t6436b
behave differently before this change?
|
|\ \
| | |
| | | |
SI-6442 - Add ActorDSL object for actor migration kit
|
| |/
| |
| |
| | |
Removes MigrationSystem, since ActorDSL replaces it.
|
| |
| |
| |
| |
| | |
This covers the situation which broke in 5c5e8d4dcd,
reverted in the previous commit.
|
|/
|
|
| |
This reverts commit 5c5e8d4dcd151a6e2bf9e7c259c618b9b4eff00f.
|
|\
| |
| | |
a fork of isValueType and isNonValueType
|
| |
| |
| |
| |
| |
| | |
only affects runtime reflection, because Symbol.typeSignature
is only defined in the reflection API. the rest of the compiler
uses Symbol.info instead.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There's some very sketchy behavior visible - I'm printing a
method signature and getting this:
[B <: <?>, That <: <?>](f: <?>)(implicit cbf: <?>)That
But there's no exposed way to force the info. Am I
supposed to call isSealed or something?
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Restrictions regarding how non-value types can be used have
generally not been enforced explicitly, depending instead on
the fact that the compiler wouldn't attempt to use them in
strange ways like offering a method type as a type argument.
Since users can now create most types from scratch, it has
become important to enforce the restrictions in a more
direct fashion.
This was a lot harder than it probably should have been
because there are so many types which go unmentioned by the
specification. Hopefully a useful exercise in any case.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If we're reifying non-value types (e.g. MethodTypes), we can't use them
as type arguments for TypeTag/WeakTypeTag factory methods, otherwise
the macro expansion won't typecheck:
http://groups.google.com/group/scala-internals/browse_thread/thread/2d7bb85bfcdb2e2
This situation is impossible if one uses only reify and type tags, but
c.reifyTree and c.reifyType exposes in the macro API let anyone feed
anything into the reifier.
Therefore I now check the tpe that is about to be used in TypeApply
wrapping TypeTag/WeakTypeTag factory methods and replace it with AnyTpe
if it doesn't fit.
|
| | |
|