diff options
author | Martin Odersky <odersky@gmail.com> | 2014-07-10 14:37:19 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2014-07-17 11:02:01 +0200 |
commit | cd82c859bb2fe05de257cbc81e97bedd2bbf2a4a (patch) | |
tree | e20e36ea5d844e6620ca0215fea0fbf604cb2e13 /src/dotty/tools/dotc/core/Definitions.scala | |
parent | 05120fc7ea83a00485a68d2854e5b62c1dbb8c01 (diff) | |
download | dotty-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.scala | 10 |
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 --------------------------------------------------- |