| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Fixed positions in de-aliased special symbols..
|
| |
| |
| |
| |
| | |
`apply` methods.
Fixed #5064, thanks to @paulp who showed the right direction (and how to test it).
|
|/
|
|
| |
So it can be used in value classes.
|
|\
| |
| | |
further polishing of reflection
|
| |
| |
| |
| |
| | |
I think `isVal` and `isVar` are the right names, because they
exactly map on Scala syntax.
|
|\ \
| | |
| | | |
Fix for SI-6273, repl string interpolation.
|
| | |
| | |
| | |
| | |
| | |
| | | |
As usual the hard part is tracing through all the
needless abstraction. Begone, 25 layers of parsing error
issuing methods!
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When an error occurs because some type does not conform
to AnyRef (and an AnyRef-derived type would have sufficed)
try to say something useful about the situation.
This commit also initializes scope members before printing
error messages because the + version seems more useful than
the - version (taken from one of the checkfile diffs.)
- def <init>: <?>
- def methodIntIntInt: <?>
+ def <init>(): X
+ def methodIntIntInt(x: scala.Int,y: scala.Int): scala.Int
|
|\ \
| | |
| | | |
Fix SI-4581.
|
| |/
| |
| |
| |
| |
| |
| | |
Specifically, the final flag on the generated static field
is no longer ommitted.
Fix 2 failing test-cases.
|
|\ \
| | |
| | | |
Fixes SI-6290 by creating real instnaces of language features.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Expanded the reach of value classes.
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Now extending AnyVal:
- RichInt, RichDouble, etc.
- ArrayOps.ofRef, ofBoolean, etc
- StringAdd
- StringFormat
The rest of it is the changes necessary to enable those.
|
|\ \ \
| | | |
| | | | |
Si 6220
|
| | | |
| | | |
| | | |
| | | | |
This test will pass even with an older version of the scala library, since as mentioned this is just a performance improvement.
|
|\ \ \ \
| | | | |
| | | | | |
Si 6261
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
elements
|
| |_|/ /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Still need to determine if this is a systemic
issue and needs to be addressed higher in the
linked list hierarchy. For now, just
fixing the reported bug, with a note here
for other maintainers.
|
|\ \ \ \
| | | | |
| | | | | |
removes Symbol.kind and Type.kind
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
use Universe.showRaw instead:
scala> import scala.reflect.runtime.{universe => ru}
import scala.reflect.runtime.{universe=>ru}
scala> ru.showRaw(typeOf[Int])
res0: String = TypeRef(ThisType(scala), scala.Int, List())
scala> ru.showRaw(typeOf[Int].typeSymbol, printKinds = true)
res1: String = scala.Int#CLS
|
|\ \ \ \
| | | | |
| | | | | |
PartialFunction polishing
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- ScalaDocs added
- TODOs fixed
- controversive method `run` deleted
- not used class runtime.AbstractTotalFunction removed
- small corrections & fixes
- tests for `orElse` & `runWith`
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-6272 Support lazy vals defined in try in template.
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|_|/ / /
|/| | | | | |
Eliminated a metric ton of allocations.
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Thanks to the hotspot DTrace probes. I'm not sure why
this checkfile changed, but hopefully it's innocuous.
Review by @VladUreche for the checkfile and @gkossakowski
so he can tell me how much faster.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
macroArgs now correctly calculates the argss in case when a macro def
has implicit parameters.
Macro impls can never have implicit parameters other than type tag evidences,
so tags will always come in a separate parameter list w.r.t other parameters
of macro impls (which are in 1-to-1 correspondence with the parameters of
macro defs).
Example 1:
def w/o implicits: (params1)...(paramsN)
impl w/o tags: (params1')...(paramsN')
Example 2:
def w/o implicits: (params1)...(paramsN)
impl w tags: (params1')...(paramsN')(implicit tags)
Example 3:
def w implicits: (params1)...(paramsN)(implicit paramsN+1)
impl w/o tags: (params1')...(paramsN')(paramsN+1')
Note: paramsN+1' is not an implicit parameter list
because impls cannot have implicit parameters other than tags
Example 4:
def w implicits: (params1)...(paramsN)(implicit paramsN+1)
impl w tags: (params1')...(paramsN')(paramsN+1')(implicit tags)
Therefore we don't need to merge the argss.last (that correspond to implicit
parameters of macro defs) with tags, as it was incorrectly coded before.
We just need to append tags to argss.
|
| |/ / /
|/| | | |
|
|\ \ \ \
| |/ / /
|/| | | |
reverts changes to ClassTag.Nothing
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It seemed to be a good idea to have ClassTag.Nothing crash
in agreement with its incalculable nature.
However this breaks CanBuildFrom for the situations when Nothing is inferred
or provided explicitly. Hence the rollback.
|
|\ \ \ \
| | | | |
| | | | | |
Improved fix for SI-1987, overloading in package objects.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When reformulating an errant package object overload,
don't forget to fully qualify it lest you trade one error
for another.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Fix stupid logic inversion of try-catch
|
| | | | | |
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
Make Stream.withFilter.{map,flatMap} run in constant stack space
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Test a wider range of functionality.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
No need to check the output - checking programmatically that the
produced streams are empty is enough.
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The included test currently fails because `map` and `flatMap` do not
run in constant stack space on a stream returned by `Stream.withFilter`,
as I reported here:
https://groups.google.com/d/msg/scala-language/WqJR38REXnk/saaSiDdmyqoJ
Fix the problem and add a simple testcase.
Note that the stack space consumed when producing an element of this stream is
proportional to the number of elements failing the test before the next
success. The stack space consumed to produce the stream itself is the
space needed to produce the first element, that is, is proportional to
the number of failures before the first success.
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | | |
ordering of synthetic members on java7 with a lot of cores is non-deterministic
that's not a problem, because the doc doesn't promise anything about synthetics
hence I've adjusted the test, so that it no longer includes accessors
discussion: http://groups.google.com/group/scala-internals/msg/087a7d4805313561
|
|/ / |
|
|\ \
| | |
| | | |
more cleanup in Macros.scala
|
| |/ |
|
| |
| |
| |
| |
| |
| |
| | |
In separate compilation runs, the static field symbol in the
companion class of an object was not being recreated.
Given that the singleton object was compiled separately,
the static field symbol will be recreated on demand.
|
|/
|
|
|
|
|
|
| |
Disable @static for the REPL code.
The problem is that there are no companion classes generated for objects
that contain the top-level declarations in the REPL.
When there is no companion class, the selecting a @static field will translate
to a getter call, instead of to a field load.
|
|\
| |
| | |
Fixes backend crash due to incorrect consumedTypes
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This started out as a compiler crash after Greg copied the
comprehension methods to List and made them final.
The culprit was the dead code elimination phase, which after
sweeping pieces of code was unable to restore the stack to its
original state, thus causing the ASM backend to crash notifying
the resulting bytecode is incorrect.
The dead code elimination phase uses the icode Instructions'
consumedTypes to determine what needs to be dropped from the
stack when an instruction is eliminated, but the consumedTypes
were only defined for a handful of instructions. So dce encountered
a DUP instruction for which it did not have consumedTypes defined
and did not restore the stack correctly.
The consumedTypes/producedTypes for icode instructions are
redundantly defined in 3 separate places:
- Opcodes.scala (consumedTypes/producedTypes)
- ICodeCheckers.scala (for checking icode)
- TypeFlowAnalysis.scala (for computing types on the stack at each
program point)
Since the Opcodes types are the only ones visible outside, I suggest
we use them in ICodeCheckers.scala and TypeFlowAnalysis.scala too. But
we should make such changes after the release, as we're chilling out
by the lake with a glass of good wine: SI-6234
The relevant discussion around it can be found at:
https://groups.google.com/forum/?fromgroups#!topic/scala-internals/qcyTjk8euUI[1-25]
Many thanks to Paul for his help!
Review by @magarciaEPFL or @paulp.
|