aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/core/Types.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-12-13 14:58:26 +0100
committerMartin Odersky <odersky@gmail.com>2016-12-17 18:34:27 +0100
commit6eb1a72bce041d4fd8519713031894dac3192025 (patch)
tree61909b6fcab49b310b9d4f3f82e66fe82f772798 /compiler/src/dotty/tools/dotc/core/Types.scala
parent5e2f7d18d711814cecce62a4bd7315a26a5efb87 (diff)
downloaddotty-6eb1a72bce041d4fd8519713031894dac3192025.tar.gz
dotty-6eb1a72bce041d4fd8519713031894dac3192025.tar.bz2
dotty-6eb1a72bce041d4fd8519713031894dac3192025.zip
New ShortcutImplicits phase
Optimizes implicit closures by avoiding closure creation where possible.
Diffstat (limited to 'compiler/src/dotty/tools/dotc/core/Types.scala')
-rw-r--r--compiler/src/dotty/tools/dotc/core/Types.scala4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/src/dotty/tools/dotc/core/Types.scala b/compiler/src/dotty/tools/dotc/core/Types.scala
index 01a331e86..344227299 100644
--- a/compiler/src/dotty/tools/dotc/core/Types.scala
+++ b/compiler/src/dotty/tools/dotc/core/Types.scala
@@ -2376,7 +2376,9 @@ object Types {
protected def computeSignature(implicit ctx: Context): Signature =
resultSignature.prepend(paramTypes, isJava)
- def derivedMethodType(paramNames: List[TermName], paramTypes: List[Type], resType: Type)(implicit ctx: Context) =
+ def derivedMethodType(paramNames: List[TermName] = this.paramNames,
+ paramTypes: List[Type] = this.paramTypes,
+ resType: Type = this.resType)(implicit ctx: Context) =
if ((paramNames eq this.paramNames) && (paramTypes eq this.paramTypes) && (resType eq this.resType)) this
else {
val resTypeFn = (x: MethodType) => resType.subst(this, x)