| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
The synthetic method is only a null for now.
|
| |
|
|\ |
|
| |\ |
|
| | |\ \
| | | | |
| | | | |
| | | | | |
'hubertp/ticket/4336' into develop
|
| | | | |
| | | | |
| | | | |
| | | | | |
Some of the type params might already be instantiated if explicit type application is done. Review by @adriaanm
|
| | | |\| |
|
| | | | | |
|
| | |\ \ \
| | | |_|/
| | |/| | |
AvlTree performance improvements
|
| | | | |
| | | | |
| | | | |
| | | | | |
Use a specialized iterator.
|
| | | | |
| | | | |
| | | | |
| | | | | |
recursion is not necessary here.
|
| | | | | |
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
And disambiguations. And renamed all kinds of methods to something
less inscrutable. Moved all the instance-to-compiler-structure implicit
behind a wrapper to avoid accidental conversions. The wrapper has
a single method, ?, which you can experience like so:
// Sorry tab completion doesn't yet figure out implicit conversions
scala> val x = Map(1 -> 2).?
x: $r.power.InternalInfo[scala.collection.immutable.Map[Int,Int]] = Map(1 -> 2) (Map)
scala> x.
asInstanceOf baseTypeSeq baseTypeSeqMap baseTypeWhichDefines companion
decls declsOriginal declsOverride erasure fullManifest
glb info isInstanceOf lub memberMethods
memberTypes members membersDeclared membersInherited membersUnabridged
moduleClass name owner owners pkg
pkgClass pkgClassSymbols pkgClasses pkgMembers pkgName
pkgSymbols shortClass signature symbol toString
tpe
// This uses an implicit to install sigs (and another for '>' which is
// the generic printing function) but transparency, one step at a time.
scala> Map(1 -> 2).?.membersDeclared.sigs >
def $init$(): Unit
override def empty: scala.collection.immutable.Map[A,B]
override def toMap[T,U](implicit ev: <:<[(A, B),(T, U)]): scala.collection.immutable.Map[T,U]
override def seq: scala.collection.immutable.Map[A,B]
def withDefault[B1 >: B](d: A => B1): scala.collection.immutable.Map[A,B1]
def withDefaultValue[B1 >: B](d: B1): scala.collection.immutable.Map[A,B1]
override def updated[B1 >: B](key: A,value: B1): scala.collection.immutable.Map[A,B1]
def +[B1 >: B](kv: (A, B1)): scala.collection.immutable.Map[A,B1]
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Renamed newMethod in Definitions to enterNewMethod to better
indicate what it does, and also so AnyVal's getClass can avoid
the "enter" part.
|
| | | |
| | | |
| | | |
| | | | |
And other post-merge cleanup.
|
|\| | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/compiler/scala/reflect/internal/Definitions.scala
|
| | \ \ | |
| | \ \ | |
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | | |
'scalamacros/ticket/5418' into develop
|
| | |/ / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This very situational option proved to be very useful when debugging
https://issues.scala-lang.org/browse/SI-5415
With the help of -Yshow-symkinds, it became possible to distinguish
a free var from a module symbol, which gave precise indication of the
root of the bug.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
I love the smell of polymorphic method synthesis in the
early afternoon.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Temporarily removed getClass from AnyVal to get build going.
Disabled anyval-childen test.
Fixed some other build problems.
Implemented step 1 + 2 of inline classes proposal.
|
| |\ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Conflicts:
src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala
|
| | |/ / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Hacks here and there to allow them to survive at least
to erasure. Since nothing is done with them there yet, they
inevitably crash and burn a little ways beyond that.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Finally had a concrete motivation to change partest's inexplicable
ISO-8859-1 encoding to UTF-8. My test case would cause it to barf
"illegal character". Is this going to break on windows or something?
If so, it's time to fix the broken place which can't handle UTF-8.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
At least tell us what they are.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This reverts commit 6a5901461c1aaac7dd8786cb374b079520895527.
|
| | | | | | | |
| | | \ \ \ | |
| | |\ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | | |
'axel22/feature/immutable-thread-safe' into develop
|
| | | | |/ / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This is part of an effort to make the immutable collections
(more) thread safe. The `::` still has non-final member fields
for head and tail, but there is not much that can be done right
now about that, since these fields are used by list buffers.
Tried writing a test with unsafe initialization, but could not
invent a scenario which actually fails, at least on the JDK6.
|
| | | |/ / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This very situational option proved to be very useful when debugging
https://issues.scala-lang.org/browse/SI-5415
With the help of -Yshow-symkinds, it became possible to distinguish
a free var from a module symbol, which gave precise indication of the
root of the bug.
This changeset also upgrades stringification of symbols and types, so
I'd like to get a review by @paulp and @odersky.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The benchmarks charts are confusing me and I want to rule it out
as a problem by not having it exist for a while.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
And abort calls, and unhandled exceptions, all so I can supplement the
error message with a little of the vast quantity of useful information
which we possess but do not reveal. "Details are sketchy," says the
officer tasked with investigating the crash, but no longer. Also took
the opportunity to eliminate a bunch of one-argument assertions and
requirements if I thought there was any chance I'd someday be facing
them on the wrong end of an incident.
Have you ever dreamed that instead of this experience:
% scalac -optimise <long list of files>
error: java.lang.AssertionError: assertion failed: Record Record(anonymous class JavaToScala$$anonfun$makeScalaPackage$1,Map()) does not contain a field value owner$1
Things could proceed more like this:
% scalac -optimise <long list of files>
error:
while compiling: src/compiler/scala/reflect/runtime/JavaToScala.scala
current phase: closelim
library version: version 2.10.0.rdev-4267-2012-01-25-gc94d342
compiler version: version 2.10.0.rdev-4270-2012-01-26-gd540ddf
reconstructed args: -Ydead-code -optimise -Yinline -Yclosure-elim -Yinline-handlers -d /tmp
error: java.lang.AssertionError: [etc]
You are not dreaming! IT'S ALL HAPPENING
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
"Induced" but not in my estimation "caused". Would like to understand
why the enclosed test case crashes under -optimise without this change
to AddInterfaces.
|
| | |/ / /
| | | | |
| | | | |
| | | | | |
I look forward to partest-emo and partest-trance.
|
|/ / / / |
|
| | | |
| | | |
| | | |
| | | | |
writing `class C extends AnyVal` in the REPL produced a compiler crash due to a NPE.
|
|\| | | |
|
| | \ \ | |
| | \ \ | |
| |\ \ \ \
| | | |_|/
| | |/| |
| | | | | |
into develop
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Changed CompositeThrowable to inherit Exception instead of Throwable.
A few minor fixes for the jdk1.5 parallel collection tasks.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is done by structurally serializing list nodes, but prepending a special
`ListSerializationStart` symbol ahead of the list. If this symbol is not
in the object input stream, the deserialization reverts to the old mode.
Note there is not much to be done for list buffers - their serialization was
broken before, so legacy serialized list buffers are no longer deserializable.
However, their serialVersionUID was changed to reflect this, so deserializing
a legacy list buffer should fail fast.
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Conflicts:
src/compiler/scala/reflect/internal/Symbols.scala
src/compiler/scala/reflect/internal/Types.scala
src/compiler/scala/tools/nsc/typechecker/Typers.scala
src/library/scala/reflect/api/Trees.scala
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
methods that take account of synchronization when run under reflection.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
to go through the factory method, which adds on synchronization when run under reflection.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The idea is that all operations that need to be synchronized are overriden in classes reflect.runtime.Synchronized*. Sometimes this applies to operations defined in SymbolTable, which can be directly overridden. Sometimes it is more convenient to generate SynchronizedClazz subclasses of SymbolTable classes Clazz. In the latter case, all instance creation must go over factory methods that can be overridden in the Synchronized traits.
|
| | | | | | |
|
| | | | | | |
|