aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/TypeOps.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-11-15 12:07:31 +0100
committerMartin Odersky <odersky@gmail.com>2014-11-15 12:07:52 +0100
commitc1b0ab6f6ed36fed7cc4bfa710704ff197c12b31 (patch)
tree946fcb12c30b54e6386838e1e38ebdc52c56dcbd /src/dotty/tools/dotc/core/TypeOps.scala
parent387bdf9fa0bafd76b06d91d5e88f74e29143fc06 (diff)
downloaddotty-c1b0ab6f6ed36fed7cc4bfa710704ff197c12b31.tar.gz
dotty-c1b0ab6f6ed36fed7cc4bfa710704ff197c12b31.tar.bz2
dotty-c1b0ab6f6ed36fed7cc4bfa710704ff197c12b31.zip
Fixes for type argument handling.
(1) Type arguments now get a coordinate. (2) They are labeled Override (2) avoids having to special case TypeArgs in OverridingPairs.
Diffstat (limited to 'src/dotty/tools/dotc/core/TypeOps.scala')
-rw-r--r--src/dotty/tools/dotc/core/TypeOps.scala8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/TypeOps.scala b/src/dotty/tools/dotc/core/TypeOps.scala
index efd7fcca3..7a853ae12 100644
--- a/src/dotty/tools/dotc/core/TypeOps.scala
+++ b/src/dotty/tools/dotc/core/TypeOps.scala
@@ -197,8 +197,6 @@ trait TypeOps { this: Context =>
}
}
-
-
private def enterArgBinding(formal: Symbol, info: Type, cls: ClassSymbol, decls: Scope) = {
val lazyInfo = new LazyType { // needed so we do not force `formal`.
def complete(denot: SymDenotation)(implicit ctx: Context): Unit = {
@@ -207,7 +205,11 @@ trait TypeOps { this: Context =>
}
}
val typeArgFlag = if (formal is Local) TypeArgument else EmptyFlags
- val sym = ctx.newSymbol(cls, formal.name, formal.flagsUNSAFE & RetainedTypeArgFlags | typeArgFlag, lazyInfo)
+ val sym = ctx.newSymbol(
+ cls, formal.name,
+ formal.flagsUNSAFE & RetainedTypeArgFlags | typeArgFlag | Override,
+ lazyInfo,
+ coord = cls.coord)
cls.enter(sym, decls)
}