summaryrefslogtreecommitdiff
path: root/test/pending
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
*-. Merge remote-tracking branches 'ijuma/issue/5341', ↵Paul Phillips2011-12-2722-0/+273
|\ \ | | | | | | | | | 'kepler/topic/reifyclosuretests', 'kepler/topic/antscalacheck', 'szabolcsberecz/SI-5104', 'kepler/ticket/5334' and 'kepler/topic/miscfixes' into develop
| | * Tests for recently submitted SI-5334Eugene Burmako2011-12-232-0/+30
| |/ |/|
| * A handful of tests for closures under reificationEugene Burmako2011-12-2620-0/+243
|/
* Fix reflective toolbox producing invalid bytecodeEugene Burmako2011-12-074-44/+0
| | | | | | | | | | | | | | Wrapper method for AST undergoing a reflective compilation has been incorrectly marked as static. This was off the radars until one day the code being compiled declared a top-level method. During flatten that method got hoisted into the wrapper module, and its invocation got translated into an instance call upon the module. This led to static wrapper method trying to call an instance method, and that blew up the bytecode verifier. More info: https://issues.scala-lang.org/browse/SI-5266. Fixes SI-5266, review by @odersky.
* Another test pack for reflectionEugene Burmako2011-12-0555-0/+1166
| | | | Also see https://github.com/scala/scala/pull/25.
* Merge remote-tracking branch 'kepler/topic/reifytests'Paul Phillips2011-12-0420-0/+222
|\
| * Test pack for various flavors of reflection.Eugene Burmako2011-12-0520-0/+222
| |
* | Reification of classes now produces trees that can be compiled and run.Eugene Burmako2011-12-042-20/+0
|/ | | | | | | | Multiple minor fixes to Martin's implementation of reflection infrastructure. Dominating theme is allowing for the fact that compilation via reflection involves numerous exports/imports between various reflection universes. Fixes SI-5230. Review by @odersky.
* Moved the test for SI-5230 from files to pendingEugene Burmako2011-11-292-0/+20
|
* Begone t1737...Hubert Plociniczak2011-11-02100-166/+3938
|
* Overhaul of mixin.Paul Phillips2011-10-191-0/+22
| | | | | | | | If extempore is going to fix the hard bugs then first he is going to make them less hard to fix. The major work of interest in here is the decomplification of the bitmap logic. Hopefully this will come in handy for anyone wishing to try out other encodings.
* Renamed tests named bugXXX to tXXX, no review.Paul Phillips2011-08-2423-19/+19
|
* Don't want to chase NPEs around for the rest of...Paul Phillips2011-08-061-0/+15
| | | | | | | | Don't want to chase NPEs around for the rest of my life. Created "NoCompilationUnit" and "NoSourceFile" objects to represent not-present versions of these items. Seems a lot better than null. References SI-4859, got past NPE only to uncover the actual problem. No review.
* Attacked classpaths to get "." off of it when i...Paul Phillips2011-08-063-0/+7
| | | | | | | | | | | | | Attacked classpaths to get "." off of it when it's not actually specified. The commit makes me nervous, but there's no invisible way to fix something like this. ** Attention, this commit changes classpath handling ** We desperately need some way of testing that the classpath has certain qualities and does not have others; partest is not that way. Closes SI-4857, no review.
* Working on jar creation infrastructure.Paul Phillips2011-08-011-0/+11
| | | | | | | | | | | | | | | | | | output generation (but only then, since otherwise we're not creating the jar): 1) -Xmain-class foo.Bar will give the jar a Main-Class of foo.Bar 2) Alternatively, if there is only one runnable program, that will be the Main-Class 3) Always, the jar's manifest will have an entry for Scala-Compiler-Version. Not very relatedly, a warning is now issued when a module has a main method but a runnable program will not be generated. Closes SI-4861. This represents an opening step toward automatically recognizing mismatched bytecode situations: coarse, but useful and safe. Review by mirco.
* Moved test out of pending, closes SI-3628, no r...Paul Phillips2011-07-292-14/+0
| | | | | Moved test out of pending, closes SI-3628, no review.
* A few tests for pending and non-pending, no rev...Paul Phillips2011-07-273-0/+75
| | | | | A few tests for pending and non-pending, no review.
* Bounded wildcard types arising during pattern t...Paul Phillips2011-07-131-0/+11
| | | | | | Bounded wildcard types arising during pattern type inference can cause unnecessary crashes. Closes #1048, review by odersky.
* A response to adriaan's last lub commit of the ...Paul Phillips2011-07-131-0/+37
| | | | | | | | A response to adriaan's last lub commit of the housekeeping and pretty printing variety. Non-invasive surgery, don't worry martin. Simplified the input to lublist a bit. Includes illustrative test case for current brand of lub failures. Review by moors.