aboutsummaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Take expected result type into account more often for overloading resolutionMartin Odersky2015-06-191-1/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the expected result type of a FunProto type was ignored and taken into account only in case of ambiguities. arrayclone-new.scala shows that this is not enough. In a case like val x: Array[Byte] = Array(1, 2) we typed 1, 2 to be Int, so overloading resulution would give the Array.apply of type (Int, Int*)Array[Int]. But that's a dead end, since Array[Int] is not a subtype of Array[Byte]. This commit proposes the following modified rule for overloading resulution: A method alternative is applicable if ... (as before), and if its result type is copmpatible with the expected type of the method application. The commit does not pre-select alternatives based on comparing with the expected result type. I tried that but it slowed down typechecking by a factor of at least 4. Instead, we proceed as usual, ignoring the result type except in case of ambiguities, but check whether the result of overloading resolution has a compatible result type. If that's not the case, we filter all alternatives for result type compatibility and try again.
* | More explicit test of trait parameter initialization orderMartin Odersky2015-06-191-0/+30
| | | | | | | | As suggested by @retronym
* | Drop parameter accessor flag in traitsMartin Odersky2015-06-191-0/+6
| | | | | | | | | | Parameter accessors in traits have the ParamAccessor flag removed in the Mixin transformSym method.
* | Extend test to verify initialization orderMartin Odersky2015-06-191-6/+13
| | | | | | | | Verify that the initilialization order described in #640 is correctly implemented.
* | Convert pos test to be a run test.Martin Odersky2015-06-192-12/+19
| |
* | Implement trait parametersMartin Odersky2015-06-192-0/+24
| | | | | | | | | | | | Add necessary logic to Mixin. Also add tests that all parameterized traits are called with parameters set.
* | Implement checking for illegal parent trait constructor calls.Martin Odersky2015-06-191-0/+16
| | | | | | | | | | A parent trait may not be parameterized (as in T()) if the calling class does not directly implement that trait.
* | Add missing testMartin Odersky2015-06-191-0/+38
| |
* | Merge pull request #663 from dotty-staging/fix/#643-scala2-noinitsDmitry Petrashko2015-06-192-0/+0
|\ \ | | | | | | Fix #643 - Scala2 unpickling now sets NoInits flag for interfaces.
| * | Avoid spurious StaleSymbol error in <refinement> membersMartin Odersky2015-06-162-0/+0
| |/ | | | | | | | | | | | | Refinement classes and their members could give spurious stale symbol errors if the symbol is loaded in a different run than the classfile containing it. The problem is that refinement classes do not form part of the scope of their owners. The fix assumes that refinement classes are always "stillValid".
* | Merge pull request #599 from dotty-staging/add/existential-skolemizationodersky2015-06-193-7/+47
|\ \ | | | | | | Tighten comparison of skolem types
| * | Deskolemize types inferred for vals and defsMartin Odersky2015-06-061-0/+20
| | | | | | | | | | | | | | | | | | | | | We want to establish the invariant (optionally checked by assertNoSkolems) that symbols do not contain skolemized types as their info. This avoids unsoundness situations where a skolem gets exported as part if the result type of a method, so different instantiations look like their are the same instance.
| * | Skolemize unstable prefixes in asSeenFromMartin Odersky2015-06-061-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Skolemize unstable prefixes in asSeenFrom provided - the prefix appears at least once in non-variant or contra-variant position - we are in phase typer. After typer, we have already established soundness, so there's no need to do skolemization again. We can simply do the (otherwise unsound) substitution from this-type to prefix.
| * | Tighten isStable predicateMartin Odersky2015-06-061-7/+0
| | | | | | | | | | | | | | | A term ref is stable only if its prefix is also stable. At the same time, we drop stability requirements where they no longer make sense (e.g. in isLegalPrefix).
* | | Merge pull request #664 from dotty-staging/more-testsodersky2015-06-181103-42/+20
|\ \ \ | |_|/ |/| | Enable tests that pass, move macro tests to disabled.
| * | Move tests that have " macro" or "reify" to disabled.Dmitry Petrashko2015-06-151020-0/+0
| | |
| * | Update origins.check with origins that match dotty.Dmitry Petrashko2015-06-151-3/+3
| | |
| * | Remove warnings that dotty doesn't emit from check files.Dmitry Petrashko2015-06-156-22/+0
| | |
| * | Enable tests that succeed.Dmitry Petrashko2015-06-1578-0/+0
| | |
* | | Revert changes in testMartin Odersky2015-06-151-2/+1
| | | | | | | | | | | | Changes were made by accident.
* | | Fix #651 Generalize criterion for isOpAssignMartin Odersky2015-06-152-1/+2
| | | | | | | | | | | | | | | Methods like + can have multiple parameters. In that case += also takes multiple parameters.
* | | Merge pull request #635 from dotty-staging/fix/private-scala2-trait-settersDmitry Petrashko2015-06-122-4/+10
|\| | | | | | | | Some fixes around mixin and memoization
| * | Copy annotations from trait members to their implementationsMartin Odersky2015-06-081-1/+7
| | | | | | | | | | | | Implementations inherit all annotations on the implemented trait methods.
| * | Fix to trait setter generationMartin Odersky2015-06-081-3/+3
| |/ | | | | | | | | The logic to add trait setters to Scala 2 traits was wrong. This led to AbstractMethodErrors in the formerly commented out part of scala-trait.scala.
* | Fix mergeDenot one more time.Martin Odersky2015-06-072-0/+0
| | | | | | | | | | | | | | | | | | | | It's easy to get this wrong. What happened was that when computing deferred members of a class a deferred member was preferred over a concrete one because the types did not match. Thsi should not happen. We now change the scheme to always prefer concrete over abstract, and subclass-owned over superclass-owned. But we pick a denotation only if the overrides relationship on types coincides with the preference on symbols.
* | Bring back tests from disabled.Martin Odersky2015-06-073-0/+0
| | | | | | | | The tests in this commit pos were verified to work again.
* | Fix refs to inner objectsMartin Odersky2015-06-071-1/+3
|/ | | | | | | | A reference to an object from anywhere in its module class can be established by the This of the module class. The previous behavior always referenced the object as a term ref which might cause a reference to the outer This which might not be available (since this is not tracked by ExplicitOuter). Brings t3174.scala back from disabled.
* Merge pull request #622 from dotty-staging/add/implement-scala2-traitsodersky2015-06-063-2/+66
|\ | | | | Implement Scala2 traits
| * Fixed test.Martin Odersky2015-06-021-2/+8
| | | | | | | | | | | | | | | | | | Until the previous fix to Denotation-& the test here spuriously passed. The Dotty spec is that value classes synthesize equals and hashCode only if no concrete definitions are inherited except the ones from Any. That was previously miscalculated. The test has been updated to reflect the specified behavior.
| * Add test case.Martin Odersky2015-06-012-0/+58
| | | | | | | | We are still lacking the setup to do this right for mixed Scala 2/Dotty runtime tests. So I checked into `pos` for now.
* | Test case for problems with lambda lifting.Martin Odersky2015-06-031-0/+9
| |
* | Move test from lambdaLift.scala to a separate file in pending.Dmitry Petrashko2015-06-022-21/+20
| |
* | Revert "Update t6260-delambdafy.check to account for change in lambda ↵Dmitry Petrashko2015-06-021-0/+1
| | | | | | | | | | | | | | | | generation" This reverts commit cafd71af4902c76561f27a479c14e53729600bb9. For the future refference: tests and checkfiles should be modified only after carefull thought. Otherwise our tests will stop indicating the correct behaviour.
* | Revert "Avoid static initialization deadlock in run tests."Martin Odersky2015-06-015-34/+23
|/ | | | This reverts commit 8f90105dc4e62e78d53b385df1b2eb29f2855183.
* Update t6260-delambdafy.check to account for change in lambda generationGuillaume Martres2015-05-301-1/+0
|
* Avoid static initialization deadlock in run tests.Guillaume Martres2015-05-305-23/+34
| | | | | See https://github.com/lampepfl/dotty/pull/624#issuecomment-107064519 for a lengthy explanation.
* Bring back disabled test.Martin Odersky2015-05-292-0/+0
|
* Move test that fails again to disabled.Martin Odersky2015-05-292-0/+26
|
* Revert "Fix #580: use isContainedIn to support cases where the enclosing ↵Martin Odersky2015-05-292-26/+0
| | | | | | class is also the top-level class" This reverts commit 6898d2c296326779d373ef0e0b84e4451550120a.
* Merge pull request #611 from dotty-staging/supercalls-traits-testDmitry Petrashko2015-05-282-0/+56
|\ | | | | Add a test for supercalls in traits.
| * Extended test case.Martin Odersky2015-05-271-0/+10
| | | | | | | | Also added non-unit fields and a class that directly implements two traits with the same fields.
| * workaround https://issues.scala-lang.org/browse/SI-7666Dmitry Petrashko2015-05-271-5/+11
| |
| * Add super calls to trait initialization test)Dmitry Petrashko2015-05-271-3/+3
| |
| * Add a test for trait initialization.Dmitry Petrashko2015-05-271-0/+25
| |
| * Add a test that tests supercalls in traits.Dmitry Petrashko2015-05-271-0/+15
| |
* | ParamForwarding: do not require param accessors to be private[this]Guillaume Martres2015-05-282-0/+105
| | | | | | | | | | | | | | | | | | | | Also mark the forwarder as Stable otherwise we get a RefChecks error. This fixes #608. Note that we do less parameter forwarding than scalac. See for example D and Y in tests/run/paramForwarding.scala which don't get their own local fields in scalac but do in dotty.
* | Uncomment testsMartin Odersky2015-05-271-2/+2
| |
* | Introduce harmonization of numeric argumentsMartin Odersky2015-05-271-0/+28
|/ | | | | | | | | | | | | | Harmonization is Dotty's alternative to Scala 2's notion of weak conformance. It is less powerful but also less entangled with the core type system. The idea is that in some specific contexts trees that all have primitive numeric types will be converted as necessary so that they all have the same numeric type. These tree sets are: - the two branches of an if - the alternatives of a match - the body together with the catch blocks of a try - the arguments of a vararg parameter Examples are in the test file, harmonize.scala.
* New pos testsMartin Odersky2015-05-275-0/+62
| | | | Some of them were moved from disabled after verifiying that they compile now.
* Categorize disabled tests into pos/runMartin Odersky2015-05-275-0/+0
|