summaryrefslogtreecommitdiff
path: root/test/pending
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Added sanity check to lub calculation to preven...Paul Phillips2011-06-241-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added sanity check to lub calculation to prevent invalid lubs from emerging. The underlying cause of said lubs is that higher-order type parameters are not handled correctly: this is why the issue is seen so frequently in the collections. See pending test pending/pos/those-kinds-are-high.scala for a demonstration. Until that's fixed, we can at least raise the bar a bit. Closes #2094, #2322, #4501. Also, some test cases in neg have been promoted into working programs: #2179, #3774. (They're not in neg for the "shouldn't work" reason, but out of despair.) In some cases, such as the original reported ticket in #3528, this only pushes the problem downfield: it still fails due to inferred type parameters not conforming to bounds. I believe a similar issue with higher-order type parameters underlies that. Look at how far this takes us though. All kinds of stuff which did not work, now works. None of these even compiled until now: scala> :type List(mutable.Map(1 -> 1), immutable.Map(1 -> 1)) List[scala.collection.Map[Int,Int]] scala> :type Set(List(1), mutable.Map(1 -> 1)) scala.collection.Set[Iterable[Any] with PartialFunction[Int,Int]] scala> :type Stream(List(1), Set(1), 1 to 5) Stream[Iterable[Int] with Int => AnyVal{def getClass(): Class[_ >: Int with Boolean <: AnyVal]}] scala> :type Map(1 -> (1 to 10), 2 -> (1 to 10).toList) scala.collection.immutable.Map[Int,scala.collection.immutable.Seq[Int] ] PERFORMANCE: compiling quick.lib and quick.comp, this patch results in an extra 27 subtype tests. Total. Time difference too small to measure. However to be on the safe side I made it really easy to disable. private final val verifyLubs = true // set to false Review by moors, odersky.
* Added test case.Martin Odersky2011-06-212-0/+19
|
* Some tests for pending, no review.Paul Phillips2011-06-212-0/+51
|
* Moved a test to pending.Aleksandar Pokopec2011-06-201-0/+29
| | | | | No review.
* Restored the lisp.scala test.Paul Phillips2011-05-312-544/+0
| | | | | test in r25038, so closes #4512, no review.
* Each of the three commits preceding this are to...Paul Phillips2011-05-291-158/+0
| | | | | | | | | | | Each of the three commits preceding this are to correct regressions which would have been caught by the interpreter test and never checked in in the first place, were it not disabled. The windows tax claims another victim. Or three victims. Re-enabled the interpreter test. No way for me to know if it will pass everywhere without trying it. No review.
* Finished reverting the misbegotten r23262, no r...Paul Phillips2011-05-261-0/+19
| | | | | Finished reverting the misbegotten r23262, no review.
* Temporarily sending lisp.scala to be interprete...Paul Phillips2011-05-152-0/+544
| | | | | | | | Temporarily sending lisp.scala to be interpreter.scala's equally memory hungry buddy in pending. References #4512. This should be straightened out imminently, but I will solve this more easily by looking forward, not backward. No review.
* Temporarily moving interpreter.scala to pending.Martin Odersky2011-04-251-0/+158
|
* Working my way through pattern matcher sequence...Paul Phillips2011-04-231-9/+0
| | | | | | | | | Working my way through pattern matcher sequence issues mostly caused by the special handling of Lists. Also deleting all kinds of useless or almost useless code which is presently only clutter. Closes #2756, #2800, #3050, #3530, #3972, no review.
* Fixes my part of #4283 by inserting another cas...Martin Odersky2011-04-132-2/+15
| | | | | | | Fixes my part of #4283 by inserting another cast pre-emptively when an IllegalAccess error is possible in an erasure-inserted cast. Review by extempore.
* Added test to pending.Martin Odersky2011-04-123-0/+15
|
* Moved failing tests to pending after having dia...Martin Odersky2011-03-246-0/+158
| | | | | | | | Moved failing tests to pending after having diagnosed that the only problem is a difference in output between Java 1.5 and 1.6 reflection libraries. Can we moved back once that's fixed. For now, it's more important to ghet the build back.
* Spiced up the signature test infrastructure a b...Paul Phillips2011-03-234-39/+0
| | | | | | Spiced up the signature test infrastructure a bunch, wrote some more tests, restored the tests in pending. No review.
* Moving signature tests to pending, because they...Martin Odersky2011-03-234-0/+39
| | | | | | Moving signature tests to pending, because they operate under wrong assumptions now that mixed in members are bridges. Review by extempore.