summaryrefslogtreecommitdiff
path: root/src/compiler
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | | Improved formatting/display of documentation.Simon Ochsenreither2012-04-131-24/+24
| |/ / / | | | | | | | | | | | | Made the primary constructors private to prevent them from appearing in ScalaDoc.
* | | | Merge branch 'develop'Paul Phillips2012-04-1422-173/+392
|\ \ \ \
| | \ \ \
| | \ \ \
| *-. \ \ \ Merge commit 'refs/pull/391/head'; commit 'refs/pull/390/head' into developPaul Phillips2012-04-1418-154/+366
| |\ \ \ \ \
| | | * | | | enable implicit enrichment when typing patternsAdriaan Moors2012-04-132-5/+47
| | | | | | |
| | | * | | | parse patterns, not exprs in interpolatedString's holesAdriaan Moors2012-04-131-7/+13
| | | | | | |
| | * | | | | virtpatmat on by default; chicken out: -XoldpatmatAdriaan Moors2012-04-147-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | some tests (unreachability, exhaustivity, @switch annotation checking) are still run under -Xoldpatmat, but that will change before we go into RC mode (then the test/ partest of this commit will be reverted) removed irrelevant dependency on patmat
| | * | | | | virtpatmat: initial CPS supportAdriaan Moors2012-04-142-23/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | typers&patmatvirtualizer have ad-hoc support for dropping annotations in a way that makes the CPS plugins happy... this is not ideal, but unless virtpatmat runs after the plugin phases, I don't see how to solve it running virtpatmat after the CPS plugin would mean the pattern matching evaluation cannot be captured by CPS, so it's not even desirable to move it to a later phase - typedIf must lub annotated types - drop selector.tpe's annotations - drop annots in matchEnd's argument type - deal with annots in casts synth by in virtpatmat (drop them from type arg to asInstanceof, recover them using type ascription) - workaround skolemize existential dropping annots CPS is the main reason why typedMatchAnonFun is not used anymore, and PartialFunction synthesis is moved back to uncurry (which is quite painful due to labeldefs being so broken) we can't synth partialfunction during typer since T @cps[U] does not conform to Any, so we can't pass it as a type arg to PartialFunction, so we can't type a cps-transformed PF after the CPS plugin, T @cps[U] becomes ControlContext[...], which is a type we can pass to PartialFunction virtpatmat is now also run until right before uncurry (so, can't use isPastTyper, although it means more or less the same thing -- we don't run after uncurry) the main functional improvements are in the selective ANF transform its treatment of labeldefs was broken: for example, LabelDef L1; LabelDef L2 --> DefDef L1; L1(); DefDef L2; L2() but this does not take into account L1 may jump over L2 to another label since methods always return (or fail), and the ANF transform generates ValDefs to store the result of those method calls, both L1 and L2 would always be executed (so you would run a match with N cases N times, with each partial run starting at a later case) also fixed a couple of weird bugs in selective anf that caused matches to be duplicated (with the duplicate being nested in the original) since label defs are turned into method defs, and later defs will be nested in the flatMap calls on the controlcontext yielded by earlier statements, we reverse the list of method definitions, so that earlier (in the control flow sense) methods are visible in later ones selective CPS now generates a catch that's directly digestible by backend
| | * | | | | wip: put skeleton for typetag-based typetests in placeAdriaan Moors2012-04-142-7/+73
| | | | | | |
| | * | | | | more prudent bridging to unapply[Seq]Adriaan Moors2012-04-141-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | since we can't statically know whether the unapply we'll be bridging to is synthetic, drop this condition, and do pessimistic bridging for all unapply[Seq] (i.e., if we can't statically guarantee the type that would be assumed to be safe to cast to by a synthetic extractor, do the type test and return None if it fails)
| | * | | | | synth PartialFunction in uncurryAdriaan Moors2012-04-145-99/+188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | due to interaction with the CPS plugin, can't synth PartialFun during typer (the types don't work out: in PartialFun[T, U @cps[V]], U @cps[V] does not conform to Any, and we can't move the annot from the type arg directly to applyOrElse's result, since then it won't override anything) thus, we face the pain of mangling labeldefs again resetLocalAttrsKeepLabels can't use leaveAlone don't cast matcherror throw, uncurry gets confused uncurry: cast selector valdef's rhs to avoid skolem mismatch NOTE: I'm not happy about this code, but I don't know how to make the clean way (typedMatchAnonFun) compatible with the CPS plugin one avenue to explor would be to introduce PartialFunCPS, which is transformed into a regular PartialFun when T @cps[U] is turned into ControlContext[T, U]
| | * | | | | cleanup in refchecksAdriaan Moors2012-04-141-1/+2
| | | | | | |
| | * | | | | print labeldef's parameter typesAdriaan Moors2012-04-141-1/+11
| | | |_|_|/ | | |/| | |
| * | | | | Merge commit '625397b02e'; commit 'refs/pull/396/head' into developPaul Phillips2012-04-142-1/+14
| |\ \ \ \ \
| | * | | | | restores some disabled macro tests, makes checkFeature synchronous when used ↵Eugene Burmako2012-04-142-1/+14
| | |/ / / / | | | | | | | | | | | | | | | | | | for macros
| * / / / / Added NameTree Tree interface.Paul Phillips2012-04-142-18/+12
| |/ / / /
* / / / / Move primitive widening implicits to companions.Paul Phillips2012-04-141-1/+15
|/ / / / | | | | | | | | | | | | | | | | Take a 15-implicit load off Predef and put it where it belongs: on those brave souls who like their longs to get floaty by way of T.
| | | |
| \ \ \
*-. \ \ \ Merge commit 'refs/pull/389/head'; commit 'refs/pull/393/head' into developPaul Phillips2012-04-145-14/+138
|\ \ \ \ \ | | | |/ / | | |/| |
| * | | | rule out sequence arg to applyDynamicAdriaan Moors2012-04-132-5/+16
| | | | |
| * | | | implement SIP Type DynamicAdriaan Moors2012-04-134-14/+127
| | |/ / | |/| |
* | | | Merge branch 'master' into topic/sip18Martin Odersky2012-04-1332-360/+1491
|\ \ \ \
| * | | | Renamed seven files.Paul Phillips2012-04-132-0/+0
| | |/ / | |/| | | | | | | | | | | | | | Hey everyone, if classnames don't match filenames, ant will recompile said file on every run until the end of time. Still here, ant is.
| * | | Small cleanup in typeref toStringPaul Phillips2012-04-131-4/+4
| | | |
| * | | Touching the untouchable.Paul Phillips2012-04-132-25/+54
| | | | | | | | | | | | | | | | | | | | extempore thinks polymorphism beats boolean constructor parameters any day of the week.
| | | |
| | \ \
| *-. \ \ Merge commit 'refs/pull/385/head'; commit 'refs/pull/386/head' into developPaul Phillips2012-04-1322-331/+1411
| |\ \ \ \ | | | |/ / | | |/| |
| | | * | Scaladoc feature that shows implicit conversionsVlad Ureche2012-04-1320-160/+1228
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See https://github.com/VladUreche/scala/tree/feature/doc-implicits for the history. See https://scala-webapps.epfl.ch/jenkins/view/scaladoc/job/scaladoc-implicits-nightly/ for nightlies. Many thanks fly out to Adriaan for his help with implicit search!
| | * | | performance counters for macros expansionsEugene Burmako2012-04-132-171/+183
| | | | |
| * | | | Introducing some whitespace before colons.Paul Phillips2012-04-131-7/+0
| | |/ / | |/| | | | | | | | | | Maybe helping -Xcheckinit along too.
| * | | Fixes https://scala-webapps.epfl.ch/jenkins/job/scala-checkin-rangpos/404/Eugene Burmako2012-04-131-2/+1
| |/ /
| | |
| | \
| *-. \ Merge commit 'refs/pull/380/head'; commit 'refs/pull/381/head' into developPaul Phillips2012-04-131-2/+8
| |\ \ \
| | | * | SI-5510: string interpolation: parser no longer hangs on unclosed stringDominik Gruntz2012-04-131-2/+8
| | |/ /
| * | | Adjustment to recent fix.Paul Phillips2012-04-131-5/+3
| | | | | | | | | | | | | | | | Try not to break files/specialized/spec-hlists.scala along the way.
| * | | Workaround for SI-5657.Paul Phillips2012-04-123-0/+18
| | | | | | | | | | | | | | | | | | | | Changes to error handling have had unfortunate effects on the repl. Disabling things which used to work to suppress new failures.
| * | | Workaround for SI-5583.Paul Phillips2012-04-121-7/+15
| | | | | | | | | | | | | | | | | | | | Somehow type args to be applied arrive in the specialized subclass where type args are no longer applicable. Log and discard.
| * | | Fix for SI-5535.Paul Phillips2012-04-121-1/+1
| | | |
| * | | fixes petty macro testsEugene Burmako2012-04-121-2/+2
| |/ /
* | | Fine-tuning of isRepresentableWithWildcards and wildcard printing.Martin Odersky2012-04-132-21/+22
| | |
* | | Fixed problems with new deprecated idents scheme.Martin Odersky2012-04-131-7/+6
| | |
* | | Added languageFeature annotation (was missing before). Resolved problem with ↵Martin Odersky2012-04-134-89/+56
| | | | | | | | | | | | late loading of nested classes in Definitions. Resolved handling of deprecated idents `then` and `macro`. Massaged test flags.
* | | Enabling postfix ops feature warning, and working on libs to avoid them.Martin Odersky2012-04-1259-54/+85
| | |
* | | Various improvements to SIP 18 diagnostics. Made scala library and compiler ↵Martin Odersky2012-04-1250-85/+142
| | | | | | | | | | | | feature clean.
* | | Merge branch 'master' into topic/sip18Martin Odersky2012-04-12142-3273/+7274
|\| | | | | | | | | | | | | | | | | | | | Conflicts: src/compiler/scala/reflect/internal/Definitions.scala Various improvements to SIP 18 reporting. Made scala library and compiler feature-clean.
| * | Merge commit 'refs/pull/375/head' into developPaul Phillips2012-04-12114-2158/+5426
| |\ \
| | * | GroundTypeTag => ConcreteTypeTagEugene Burmako2012-04-1210-39/+39
| | | |
| | * | Next generation of macrosEugene Burmako2012-04-12114-2162/+5430
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements SIP 16: Self-cleaning macros: http://bit.ly/wjjXTZ Features: * Macro defs * Reification * Type tags * Manifests aliased to type tags * Extended reflection API * Several hundred tests * 1111 changed files Not yet implemented: * Reification of refined types * Expr.value splicing * Named and default macro expansions * Intricacies of interaction between macros and implicits * Emission of debug information for macros (compliant with JSR-45) Dedicated to Yuri Alekseyevich Gagarin
| | |
| | \
| *-. | Merge commit 'refs/pull/373/head'; commit 'refs/pull/374/head' into developPaul Phillips2012-04-126-107/+155
| |\ \|
| | * | Fixed duplicate method problem for implicit wrappers.Martin Odersky2012-04-111-0/+1
| | | |
| | * | Implementation of SIP 13 take 2.Martin Odersky2012-04-113-27/+32
| | | |
| | * | Implementation of SIP 13 - implicit classesMartin Odersky2012-04-115-83/+123
| | | |
| | * | new annotation targets for companion classes/objects/factory methods.Martin Odersky2012-04-112-5/+7
| | |/
| * / Fix memory leak related to default arguments in presentation compiler.Lukas Rytz2012-04-103-6/+7
| |/ | | | | | | | | | | | | | | | | | | | | This bug exists for a long time, but was triggered / discovered only lately by the default argument of mkParams in 118aef558f. This reverts the workaroud commit 19b6ad5ee4. The fix is tested by test/files/presentation/memory-leaks which runs the presentation compiler several times on Typers.scala. I could not reproduce the memory leak in a smaller test case.