diff options
author | Martin Odersky <odersky@gmail.com> | 2013-04-23 14:43:06 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-04-23 14:43:06 +0200 |
commit | ae816296034133b1dee25020224b9f7a334c8928 (patch) | |
tree | fcd5a2c70d63f61a7d90ed958368c4ea6c7f41f0 /src/dotty/tools/dotc/core/Types.scala | |
parent | 91f71c3112a06c86aa36a9aaedf4ed159c3d8961 (diff) | |
download | dotty-ae816296034133b1dee25020224b9f7a334c8928.tar.gz dotty-ae816296034133b1dee25020224b9f7a334c8928.tar.bz2 dotty-ae816296034133b1dee25020224b9f7a334c8928.zip |
Making fields in MethodType, PolyType strict to avoid context capturing.
Diffstat (limited to 'src/dotty/tools/dotc/core/Types.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/Types.scala | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/core/Types.scala b/src/dotty/tools/dotc/core/Types.scala index a2d8d596b..60f329bc6 100644 --- a/src/dotty/tools/dotc/core/Types.scala +++ b/src/dotty/tools/dotc/core/Types.scala @@ -189,7 +189,8 @@ object Types { } else tp.cls case tp: TypeProxy => - tp.underlying.classSymbol + tp.underlying.typeSymbol // this should be classSymbol, but that produces + // stackoverflows at the moment. Need to follow up on this. case AndType(l, r) => val lsym = l.classSymbol val rsym = r.classSymbol @@ -1220,7 +1221,7 @@ object Types { (resultTypeExp: MethodType => Type) extends CachedGroundType with BindingType with TermType { - override lazy val resultType = resultTypeExp(this) + override val resultType = resultTypeExp(this) def isJava = false def isImplicit = false @@ -1342,8 +1343,8 @@ object Types { case class PolyType(paramNames: List[TypeName])(paramBoundsExp: PolyType => List[TypeBounds], resultTypeExp: PolyType => Type) extends UncachedGroundType with BindingType with TermType { - lazy val paramBounds = paramBoundsExp(this) // TODO !!! this captures context, consider forcing the vals! - override lazy val resultType = resultTypeExp(this) + val paramBounds = paramBoundsExp(this) + override val resultType = resultTypeExp(this) override def signature(implicit ctx: Context) = resultType.signature |