aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/typer/ProtoTypes.scala
Commit message (Collapse)AuthorAgeFilesLines
* Fix #2152: Instantiate dependent result type parametersMartin Odersky2017-04-111-8/+9
| | | | | | | #2152 shows that dependent result type parameters can end up in the types of terms, so we have to eliminate them. If we don't we get orphan parameters in pickling. Fix method name and comment
* Rename NameExtractor -> NameKindMartin Odersky2017-04-111-1/+1
|
* Make freshName semanticMartin Odersky2017-04-111-1/+2
|
* Split HKTypeLambda from PolyTypeMartin Odersky2017-04-061-12/+12
|
* replace derived{Method,Poly}Type with derivedLambdaTypeMartin Odersky2017-04-061-1/+1
|
* Rename PolyParam --> TypeParamRefMartin Odersky2017-04-061-10/+10
|
* Refactor ParamRef so that no type params are neededMartin Odersky2017-04-061-1/+1
|
* Harmonize paramTypes and paramBoundsMartin Odersky2017-04-061-7/+7
| | | | | | MethodTypes have paramTypes whereas PolyTypes have paramBounds. We now harmonize by alling both paramInfos, and parameterizing types that will become common to both.
* Break out functionality from MethodTypeMartin Odersky2017-04-061-1/+1
| | | | | and generalize MethodParam to ParamRef, and TypeParamInfo to ParamInfo
* Encode variances in parameter namesMartin Odersky2017-04-061-1/+1
| | | | | | | | | | This leads to a slight overall simplification, harmonizes pickle format with internal representation, and makes MethodTypes and PolyTypes more similar to each other. I believe the change is useful as it is, but in particular it is a useful step for an eventual unification of MethodTypes and PolyTypes.
* Addresses review commentsAllan Renucci2017-04-041-1/+1
|
* Fixes @unchecked warningsAllan Renucci2017-04-031-1/+1
|
* Fix unrelated typos in commentsMartin Odersky2017-03-141-1/+1
|
* Take parameter dependencies into accountMartin Odersky2017-03-141-0/+6
| | | | Take parameter dependencies into account when typechecking arguments.
* Alternative fix of #2066.Martin Odersky2017-03-121-13/+15
| | | | | Now we never match `? { name: T }` with types that have only a private `name` member. This is what scalac does, too.
* Fix #2066: Don't qualify private members in SelectionProto's...Martin Odersky2017-03-121-1/+3
| | | | ... unless they would be accessible in the given context.
* Fix handling of dependent method typesMartin Odersky2017-03-011-2/+22
| | | | | Need to use fresh PolyParams instead of WildcardTypes if constraint is committable.
* Systematic treatment of result types of dependent methodsMartin Odersky2017-02-281-16/+12
| | | | | | We approximate dependencies to parameters by Wildcards. This was already done in one place, is now done in other places as well, instead of doing nothing for dependent methods.
* Constrain results of dependent implicitsMartin Odersky2017-02-281-14/+9
| | | | | No reason why we should not - normalize handles implicit methods just fine. This fixes type errors in test HLists.scala.
* Fix wildApprox functionMartin Odersky2017-02-071-36/+53
| | | | | | | | | | f-bounded-case-class.scala exhibited a StackOverflow in wildApprox before the fixes. The problem was due to F-bounds. Note: wildApprox is performance critical. I ran timed-bootstrap-repeated a couple of times to verify that the changes did not affect runtimes in significant ways. We should also watch out for a slowdown in the benchmark tests.
* Treat Unit type specially in overloading resolutionMartin Odersky2016-12-201-1/+3
| | | | | If the expected type is Unit, any parameterless member should be considered applicable when doing overloading resolution.
* More lenient handling of mixed parameterless and nullary methodsMartin Odersky2016-12-201-0/+16
| | | | | When faced with a denotation that combines parameterless and nullary method definitions (toString is a common example), ignore any redundant () applications.
* Fix #1757: Be more careful about positions of type variable bindersMartin Odersky2016-12-011-4/+7
| | | | | | | | | | | | | | We interpolate a type variable if the current tree contains the type variables binding tree. Previously, this was the application owning the variable. However, sometimes this tree is transformed so that the containment test fails, and type variables are instantiated too late (in the case of #1757 this was never). We fix this by - setting the binding tree to the type tree that first contains the type variable - making sure that tree is never copied literally anywhere else. It's a tricky dance, but I believe we got it right now.
* Move compiler and compiler tests to compiler dirFelix Mulder2016-11-221-0/+488