aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Definitions.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-07-10 14:37:19 +0200
committerMartin Odersky <odersky@gmail.com>2014-07-17 11:02:01 +0200
commitcd82c859bb2fe05de257cbc81e97bedd2bbf2a4a (patch)
treee20e36ea5d844e6620ca0215fea0fbf604cb2e13 /src/dotty/tools/dotc/core/Definitions.scala
parent05120fc7ea83a00485a68d2854e5b62c1dbb8c01 (diff)
downloaddotty-cd82c859bb2fe05de257cbc81e97bedd2bbf2a4a.tar.gz
dotty-cd82c859bb2fe05de257cbc81e97bedd2bbf2a4a.tar.bz2
dotty-cd82c859bb2fe05de257cbc81e97bedd2bbf2a4a.zip
Make more Definition methods depend on implicit context argument
The problem is that exploration methods are run and phase dependent, whereas Definitions has an implicit context that freezes the period when Definitions ewas created. We should complement this by splitting Definitions into a global and per/run part, but that is independent of the change in this commit.
Diffstat (limited to 'src/dotty/tools/dotc/core/Definitions.scala')
-rw-r--r--src/dotty/tools/dotc/core/Definitions.scala10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala
index d04a26883..594f0c013 100644
--- a/src/dotty/tools/dotc/core/Definitions.scala
+++ b/src/dotty/tools/dotc/core/Definitions.scala
@@ -409,20 +409,20 @@ class Definitions {
lazy val RootImports = List[Symbol](JavaLangPackageVal, ScalaPackageVal, ScalaPredefModule, DottyPredefModule)
- def isTupleType(tp: Type) = {
+ def isTupleType(tp: Type)(implicit ctx: Context) = {
val arity = tp.dealias.argInfos.length
arity <= MaxTupleArity && (tp isRef TupleClass(arity))
}
- def isProductSubType(tp: Type) =
+ def isProductSubType(tp: Type)(implicit ctx: Context) =
(tp derivesFrom ProductClass) && tp.baseClasses.exists(ProductClasses contains _)
- def isFunctionType(tp: Type) = {
+ def isFunctionType(tp: Type)(implicit ctx: Context) = {
val arity = functionArity(tp)
0 <= arity && arity <= MaxFunctionArity && (tp isRef FunctionClass(arity))
}
- def functionArity(tp: Type) = tp.dealias.argInfos.length - 1
+ def functionArity(tp: Type)(implicit ctx: Context) = tp.dealias.argInfos.length - 1
// ----- LambdaXYZ traits ------------------------------------------
@@ -544,7 +544,7 @@ class Definitions {
val BooleanEnc = 17
val UnitEnc = 19
- def isValueSubClass(cls1: Symbol, cls2: Symbol) =
+ def isValueSubClass(cls1: Symbol, cls2: Symbol)(implicit ctx: Context) =
valueClassEnc(cls2) % valueClassEnc(cls1) == 0
// ----- Initialization ---------------------------------------------------