aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/Checking.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-11-05 16:57:54 +0100
committerMartin Odersky <odersky@gmail.com>2015-11-05 16:58:18 +0100
commit9767782a4766826ef903836609cb34c9bad2df61 (patch)
tree0d67c23e11eb52bdae4b8471aac49086ef5e0cc0 /src/dotty/tools/dotc/typer/Checking.scala
parent5cce9b47427e96ab2159a88137ae74e92939b757 (diff)
downloaddotty-9767782a4766826ef903836609cb34c9bad2df61.tar.gz
dotty-9767782a4766826ef903836609cb34c9bad2df61.tar.bz2
dotty-9767782a4766826ef903836609cb34c9bad2df61.zip
Check bounds of inferred typevars in PostTyper.
Diffstat (limited to 'src/dotty/tools/dotc/typer/Checking.scala')
-rw-r--r--src/dotty/tools/dotc/typer/Checking.scala15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/dotty/tools/dotc/typer/Checking.scala b/src/dotty/tools/dotc/typer/Checking.scala
index b8b4c89b4..3dc7b67df 100644
--- a/src/dotty/tools/dotc/typer/Checking.scala
+++ b/src/dotty/tools/dotc/typer/Checking.scala
@@ -41,6 +41,13 @@ object Checking {
d"Type argument ${arg.tpe} does not conform to $which bound $bound ${err.whyNoMatchStr(arg.tpe, bound)}",
arg.pos)
+ /** Check that type arguments `args` conform to corresponding bounds in `poly`
+ * Note: This does not check the bounds of AppliedTypeTrees. These
+ * are handled by method checkBounds in FirstTransform
+ */
+ def checkBounds(args: List[tpd.Tree], poly: PolyType)(implicit ctx: Context): Unit =
+ checkBounds(args, poly.paramBounds, _.substParams(poly, _))
+
/** Check that `tp` refers to a nonAbstract class
* and that the instance conforms to the self type of the created class.
*/
@@ -295,13 +302,6 @@ trait Checking {
tree
}
- /** Check that type arguments `args` conform to corresponding bounds in `poly`
- * Note: This does not check the bounds of AppliedTypeTrees. These
- * are handled by method checkBounds in FirstTransform
- */
- def checkBounds(args: List[tpd.Tree], poly: PolyType)(implicit ctx: Context): Unit =
- Checking.checkBounds(args, poly.paramBounds, _.substParams(poly, _))
-
/** Check that type `tp` is stable. */
def checkStable(tp: Type, pos: Position)(implicit ctx: Context): Unit =
if (!tp.isStable && !tp.isErroneous)
@@ -407,7 +407,6 @@ trait NoChecking extends Checking {
import tpd._
override def checkNonCyclic(sym: Symbol, info: TypeBounds, reportErrors: Boolean)(implicit ctx: Context): Type = info
override def checkValue(tree: Tree, proto: Type)(implicit ctx: Context): tree.type = tree
- override def checkBounds(args: List[tpd.Tree], poly: PolyType)(implicit ctx: Context): Unit = ()
override def checkStable(tp: Type, pos: Position)(implicit ctx: Context): Unit = ()
override def checkClassTypeWithStablePrefix(tp: Type, pos: Position, traitReq: Boolean)(implicit ctx: Context): Type = tp
override def checkImplicitParamsNotSingletons(vparamss: List[List[ValDef]])(implicit ctx: Context): Unit = ()