aboutsummaryrefslogtreecommitdiff
path: root/tests/new
Commit message (Collapse)AuthorAgeFilesLines
* The big pending/pos test triageMartin Odersky2015-12-2017-12/+196
|
* Merge pull request #902 from dotty-staging/fix-numeric-implicit-argsodersky2015-11-091-0/+9
|\ | | | | Fix numeric implicit args
| * Better handling of implicits over numeric types.Martin Odersky2015-11-011-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compiling scala.math.BigDecimal and scala.math.BigInteger shows a problem. The conversion `int2bigInt` is not applicable to a Byte because `Byte -> Int` requires another implicit conversion. We fix that by using a new method relaxed_<:< for implicit compatibility checks, which always admits numeric widenings. This leads to another problem. Now the conversions implicit def byteToInt(x: Byte): Int implicit def byteToShort(x: Byte): Short are ambiguous when we try to convert from Byte to Int. We fix that by adding a "tie-break" to implicit search where if several methods match a numeric value result type and all have numeric value types as result types, we pick the numerically largest type that matches.
* | Enable <:< implicits as conversions.Martin Odersky2015-11-031-0/+3
|/ | | | | | | | These were disabled before, which means that having evidence of S <:< T did not introduce a usable implicit conversion from S to T. We do do it like scalac: just disable Predef.$conforms. This makes TraversableOnce compile. Fixes #914.
* Unpickle ImportsMartin Odersky2015-04-221-0/+12
| | | | | | Was missing before. Needed a tweak in PlainPrinter for printing import symbol references (their denotation is not current after pickling, so they would have printed differently after and before pickling).
* Harden implicit scope computation against CyclicReference errors.Martin Odersky2014-12-191-31/+0
|
* Avoid name clashes when generating synthetic companion objects.Martin Odersky2014-12-191-0/+31
|
* Test re-org.Martin Odersky2014-12-191-5/+0
| | | | Moved some working test to pos. I wonder why they were in pending? They did work for me.
* Moving java tests to posDmitry Petrashko2014-11-221-0/+5
|
* tests t26xxMartin Odersky2014-05-301-25/+0
|
* typedTyped needs to maintain Mode.Martin Odersky2014-05-301-0/+25
| | | | | The first part of a type ascription e: T can be a pattern or an expression. The mode has to be kept depending on what it was on the outside.
* Fix of pos/t2454Martin Odersky2014-05-3013-243/+0
| | | | "_" type paraeters need to be given fresh names.
* Tests pos/23xx to 24xx.Martin Odersky2014-05-2012-0/+204
|
* Avoid hoisting of local classes out of method bodies.Martin Odersky2014-05-201-0/+39
| | | | | | | | | | Doing so is unsound. We instead approximate local classes by their parents, but only if the expected type is not fully defined. This makes the test t2421_delitedsl1.scala in the commit pass. The oter test, blockEscapesNeg.scala is modified to fail. Previously it failed outright but with the new rules the nested class Bar is approximated to Object. That means that the block containing `Foo.Bar` typechecks, but with type `Object` instead of the unreachable `Bar`.
* Pos tests t17xx - t19xxMartin Odersky2014-05-204-24/+0
|
* More testsMartin Odersky2014-05-124-0/+24
|
* Hygienic desugaringMartin Odersky2014-03-201-6/+0
| | | | | | | | | | | | Made desugaring hygienic. Trees that are derived from some other tree are no longer stored as simple untyped Ident trees, but as TypeTrees that know how to derive their types from some other type. Test cases in pos: hygiene.scala, t0054.scala and t0085.scala. The comment in hygiene.scala points to the difficulties we are facing. In particular, we need type trees that can rebind some references of a source type to local occurrences with the same name. t0054.scala is similar to hygiene.scala. t0085.scala is trickier, but also related. Essentially the problem there is that we have a class that inherits its outer class. In this case it is important to resolve an identifier in the right context. The identifier added to the copy method of a case class must be resolved outside the class (just like the same identifier in the constructor of that case class).
* Fix problems related to t0039Martin Odersky2014-03-101-0/+6
This test case exercised several problems: 1.)2.) Two ways to run into a cyclic references. Fixed by - assuming an early info when completing a typedef, similarly to what is done for a classdef - doing wellformed bounds checking in a later phase. Failure to check whether arguments correspond to F-bounds. - a substitution was missing.