summaryrefslogtreecommitdiff
path: root/test/pending
Commit message (Collapse)AuthorAgeFilesLines
* Test cases for SI-5472, SI-5399, SI-5685.Paul Phillips2012-05-034-11/+69
|
* Pending test for si-4683.Aleksandar Prokopec2012-05-021-0/+11
|
* Pending test for si-5240.Aleksandar Prokopec2012-05-021-0/+11
|
* Pending test for si-5514Aleksandar Prokopec2012-05-021-0/+35
|
* Test case for si-5559.Aleksandar Prokopec2012-05-021-0/+23
|
* Test case for si-5606.Aleksandar Prokopec2012-05-021-0/+9
|
* Test case for si-5618.Aleksandar Prokopec2012-05-022-0/+34
|
* Pending test for si-5676.Aleksandar Prokopec2012-05-022-0/+26
|
* Add pending test for si-5698.Aleksandar Prokopec2012-05-023-0/+36
|
* Add pending test for SI-5018.Aleksandar Prokopec2012-05-021-0/+34
|
* Merge commit 'refs/pull/443/head'; commit 'refs/pull/444/head' into developPaul Phillips2012-04-262-10/+0
|\
| * SI-5702 Pattern parser halts on starSom Snytt2012-04-262-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In patterns, the parser halts when it sees stars. This means it does not handle infix notation for a case class named "*". This patch uses lookahead to decide whether to parse '_' '*' as a sequence pattern or as the start of infix. (For both normal and error cases, the tokens are always consumed immediately.) Error messages are improved for _* (as a help to learners) and slightly improved recovery helps the parse continue. The entry point for XML patterns is now distinct; otherwise, the change is local to pattern3-simplepattern; the entry point for simplepattern() is unchanged because it is commented "hook for IDE."
* | diagnostics for SI-5692Eugene Burmako2012-04-253-0/+14
| |
* | Merge commit 'refs/pull/427/head'; commit 'refs/pull/428/head' into developPaul Phillips2012-04-232-42/+42
|\ \
| * | migrates stdlib and compiler to tagsEugene Burmako2012-04-232-42/+42
| |/ | | | | | | | | * all usages of ClassManifest and Manifest are replaced with tags * all manifest tests are replaced with tag tests
* / minor fixes to reificationEugene Burmako2012-04-239-28/+6
|/
* assorted stability fixesEugene Burmako2012-04-174-0/+23
|
* GroundTypeTag => ConcreteTypeTagEugene Burmako2012-04-121-3/+3
|
* Next generation of macrosEugene Burmako2012-04-1283-240/+409
| | | | | | | | | | | | | | | | | | | | | | 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
* A couple tests for pending.Paul Phillips2012-03-294-0/+62
|
* Clarifying MethodSynthesis.Paul Phillips2012-03-211-0/+17
| | | | | Tried to paint a picture of how one might synthesize an implicit method to accompany an implicit class.
* [vpm] typer synths Function{} for empty-sel matchAdriaan Moors2012-03-203-0/+5
| | | | | | | | | | | | | | | | | typedMatchAnonFun is called from typedFunction when the function's body is a match this is work-in-progres: the compiler currently won't bootstrap under -Yvirtpatmat see also the pending test make sure to use the right context in typeFunction when the body is a Match when typer is set up for type checking a Function, the current owner is the symbol for the function, but we'll type check a Block(List(ClassDef(cd)), New(cd)) when the function is a match, and the function symbol is nowhere to be found, so go to outer context in patmatvirt: - simplified default case gen (no need for a Casegen instance) - using CASE | SYNTHETIC to detect generated matches (for switches) and avoid typing them endlessly more uniform, and necessary for new-style anon Function class instance gen for matches
* Test case closes SI-4777.Paul Phillips2012-03-036-0/+141
| | | | | And pending tests for most of the other VerifyErrors which still fail to verify.
* Improving error message.Paul Phillips2012-02-281-0/+25
| | | | | Hacked filename into message to alleviate meaningless "_$1 defined twice" error condition. References SI-4893.
* Moved and edited tests.Paul Phillips2012-02-2311-81/+80
| | | | | | Remove obsolete, move passing pending -> files, update those-kinds-are-high with some new info, added a couple new ones to pending.
* A better error message for inheritance conflict.Paul Phillips2012-02-192-0/+46
| | | | | | And some tests for pending. Closes SI-5358.
* More specialization tests.Paul Phillips2012-02-196-17/+28
| | | | Some in pending, some in files. Closes SI-4770.
* More on SI-5500.Paul Phillips2012-02-181-0/+15
| | | | | | A reimagining of erik's patch in 1df4fc6e59 . He did the hard part, this is the batman reboot. I added more tests and tried to make the anyref caching code less fragile.
* Merge remote-tracking branch 'scalamacros/pullrequest/macros' into developPaul Phillips2012-02-174-0/+20
|\
| * Fixes miscellaneous macro bugsEugene Burmako2012-02-174-0/+20
| |
* | Fixed AnyRef specialization.Paul Phillips2012-02-172-0/+17
|/ | | | | | | | | | At least for the value of fix which means "better than it was in 2.9." I accidentally spent a long while trying to fix something I didn't realize I hadn't broken. But then I lucked into partially fixing it, so that's good news. See run/t5488-fn.scala if you want to see what still doesn't work. (It's covered at SI-4770, which is now reopened.) Closes SI-5488.
*-. Merge remote-tracking branches 'scalamacros/pullrequest/preprocessreifees' ↵Paul Phillips2012-02-1535-279/+29
|\ \ | | | | | | | | | and 'scalamacros/pullrequest/multilineinterpolation' into develop
| * | Disables typechecking that precedes reflective compilationEugene Burmako2012-02-1432-235/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously toolboxes used to typecheck their inputs before compiling. Actually, the initial demo by Martin first typechecked the reified tree, then ran it, which typechecked it again, and only then launched the reflective compiler. However, as observed in https://issues.scala-lang.org/browse/SI-5464 current implementation of typechecking is not always idempotent. That's why we cannot allow inputs of toolboxes to be typechecked, at least not until the aforementioned issue is closed. This is not only a convention but also a check inside compileExpr.
| * | Preprocessing for reifeesEugene Burmako2012-02-1410-82/+0
| |/
* / Specialization action.Paul Phillips2012-02-147-0/+85
|/ | | | | | | | | | | | | | | | | | | | | The crickets at http://www.scala-lang.org/node/11901 were in unanimous agreement that I should proceed as suggested. - No arguments to @specialize gets you 10/10, not 9/10 - Fixed bugs in AnyRef specialization revealed by trying to use it - Specialized Function1 on AnyRef. - Changed AnyRef specialization to use OBJECT_TAG, not TVAR_TAG. - Deprecated SpecializableCompanion in favor of Specializable, which has the virtue of being public so it can be referenced from outside the library. - Cooked up mechanism to group specializable types so we don't have to repeat ourselves quite so much, and create a few groups for illustrative purposes. I'm not too serious about those names but I used up all my name-thinking-up brain for the day. - Updated genprod and friends since I had to regenerate Function1. - Put tests for a bunch of remaining specialization bugs in pending. Closes SI-4740, SI-4770, SI-5267.
* Fixes https://issues.scala-lang.org/browse/SI-5229Eugene Burmako2012-02-147-63/+0
|
* reifyAnnotationsEugene Burmako2012-02-128-41/+28
| | | | | | | | | | | | | | | | | | | | | | | Annotations are now supported by the reifier: * AnnotationInfos from symbols get transformed back into mods. * AnnotatedTypes are retained and are reified along with AnnotationInfos. Reification is no magic, and reification of annotations especially: * Annotations cannot refer to symbols defined inside the quasiquote. This restriction is due to the fact that we need to erase locally defined symbols before reifying to make subsequent reflective compilations succeed. However, while doing that, we also need to make sure that we don't make resulting ASTs non-compilable by removing essential information. This is tricky, and it more or less works for TypeTrees, but not for annotations that can contain arbitrary ASTs. For more details look into the comments to Reifiers.scala. * Classfile annotations that contain array arguments and are applied to types, i.e. the ones that generate AnnotatedTypes, cannot be reified. This is because of limitations of manifest infrastructure. Typechecking "Array(mirror.LiteralAnnotArg(...))" would require the compiler to produce a manifest for a path-dependent type, which cannot be done now. Review by @odersky.
* Another existential problem down.Paul Phillips2012-02-111-54/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a window of danger when multiple related elements are being typed where something which is conceptually one thing can slip into two things, and those two things can be incompatible with one another. Less mysteriously, c478eb770d fixed this: def f = { object Bob ; Bob } ; val g = f But, it did not fix this: def f = { case class Bob() ; Bob } ; val g = f See test case pos/existentials-harmful.scala for an "in the wild" code example fixed by this commit. The root of the problem was that the getter and the field would each independently derive the same existential type to describe Bob, but those existentials were not the same as one another. This has been the most elusive bug I have ever fixed. I want to cry when I think of how much time I've put into it over the past half decade or so. Unfortunately the way the repl works it is particularly good at eliciting those grotesque found/required error messages and so I was never able to let the thing go. There is still a cosmetic issue (from the last commit really) where compound types wind up with repeated parents. Closes SI-1195, SI-1201.
* Failing tests for pending.Paul Phillips2012-02-103-0/+43
|
*---. Merge remote-tracking branches 'VladUreche/feature/compiler-rootdoc', ↵Paul Phillips2012-02-054-48/+0
|\ \ \ | | | | | | | | | | | | 'scalamacros/pullrequest/5334', 'scalamacros/pullrequest/5272' and 'VladUreche/issue/5287-cleanup' into develop
| | | * Fixes https://issues.scala-lang.org/browse/SI-5272Eugene Burmako2012-02-052-18/+0
| |_|/ |/| |
| | * Fixes https://issues.scala-lang.org/browse/SI-5334Eugene Burmako2012-02-052-30/+0
| |/ |/| | | | | | | | | | | | | | | | | | | New version of reification isn't susceptible to this bug. The problem was with Code.lift generating not only a tree, but also a manifest with the type of that tree. That led to an issue in the case of the type of the manifest depending on a class declared inside the quasiquote. Now manifests in reification are gone, so is the problem.
* | Replaced LiftCode with a function in MacroContextEugene Burmako2012-02-054-8/+8
|/ | | | | | | | | | | | | | Major cleanup of reification: * LiftCode phase has been removed * Code has been deprecated and will be removed as we roll a new starr * Logic related to type-directed lifting has been purged scala.reflect.macro.Context#reify now provides the same services as LiftCode provided (except that it returns Tree, not Code). For testing purposes, I've retained the oh-so-convenient automagic lift. test/files/codelib/code.jar now hosts Code.lift reimplemented in a macro, so that the tests can continue working as if nothing has happened.
* Fixes reifyThisEugene Burmako2012-02-0230-427/+0
|
* Miscellaneous fixes to reificationEugene Burmako2012-02-0234-169/+190
| | | | | | | | More specifically: * Importers now preserve wasEmpty and original * ToolBoxes no longer auto-evaluate nullary functions returned by runExpr * All local symbols from previous typechecks are now correctly erased by ResetAttrs * Originals are now reified
*-. Merge remote-tracking branches 'scalamacros/pullrequest/5258' and ↵Paul Phillips2012-02-0110-0/+69
|\ \ | | | | | | | | | 'scalamacros/pullrequest/5256' into develop
| | * Hardens classToType logicEugene Burmako2012-02-016-0/+37
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | Reflection now correctly processes classes, objects and inner classes that are declared in classes and objects. However classToType still crashes on compound types and local classes. For more information on those, follow the links: * Compound types: https://issues.scala-lang.org/browse/SI-5430 * Local classes: https://issues.scala-lang.org/browse/SI-5431 Fixes https://issues.scala-lang.org/browse/SI-5256. Review by @paulp, @odersky.
| * Hardens reification against rare kinds of ConstantsEugene Burmako2012-02-014-0/+32
|/ | | | | | | | | Importers now correctly process constants that carry types and symbols. However, it is still impossible to reify classOf for a class/trait that is defined inside a quasiquote. Theoretically, this can be implemented, but will require attaching original trees to classOf constants, which needs much more effort.
* Tests for https://issues.scala-lang.org/browse/SI-5427Eugene Burmako2012-02-018-0/+49
|
* Test for https://issues.scala-lang.org/browse/SI-5418Eugene Burmako2012-01-292-0/+14
|