aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/transform/ElimRepeated.scala
Commit message (Collapse)AuthorAgeFilesLines
* replace derived{Method,Poly}Type with derivedLambdaTypeMartin Odersky2017-04-061-4/+4
|
* Harmonize paramTypes and paramBoundsMartin Odersky2017-04-061-3/+3
| | | | | | MethodTypes have paramTypes whereas PolyTypes have paramBounds. We now harmonize by alling both paramInfos, and parameterizing types that will become common to both.
* Construct MethodTypes from parameter closureMartin Odersky2017-03-141-2/+2
| | | | | To allow for dependencies between method type parameters, construct MethodTypes from a closure that maps the currently constructed MethodType to its parameter types.
* ElimRepeated: Do not use installAfterGuillaume Martres2017-03-121-6/+14
| | | | | | | This was a mistake introduced in the previous commit, installAfter is only safe to use in `IdentityDenotTransformer` phases, otherwise it means that the phase denotation transformer is not run at all for this particular denotation, this caused Ycheck to fail.
* Fix overriding a Java method with varargsGuillaume Martres2017-03-121-2/+7
| | | | | | | | | | | | | | | | | | If A method like: override def foo(x: Object*) overrides a Java method, it needs to be rewritten as: def foo(x: Seq[Object]) override def foo(x: Array[Object]): Object = foo(Predef.wrapRefArray(x)) This should be handled by ElimRepeated but there were two bugs: - `addVarArgsBridge` was called at phase `thisTransformer.next`, this is too late to create the bridge since `T*` has already been rewritten as `Seq[T]` - The original method symbol needs to have the `override` flag dropped, since it doesn't override anything. Furthermore, RefChecks had to be moved after ElimRepeated, otherwise the testcase would fail the overriding checks.
* Move compiler and compiler tests to compiler dirFelix Mulder2016-11-221-0/+135