diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2014-04-24 10:38:15 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2014-04-24 10:38:15 +0200 |
commit | f61e97af85e70794850044e4c45153a94dd0a37e (patch) | |
tree | 69b89660ad94a0aead787ad93c9a13fd27d3c98d | |
parent | aa3a3dd6a420f57b0fe815bfcb2b23fbb4284468 (diff) | |
parent | ecdc4415c77271e4743066e769342d0577a7d9b4 (diff) | |
download | scala-f61e97af85e70794850044e4c45153a94dd0a37e.tar.gz scala-f61e97af85e70794850044e4c45153a94dd0a37e.tar.bz2 scala-f61e97af85e70794850044e4c45153a94dd0a37e.zip |
Merge pull request #3694 from retronym/ticket/8478-2
SI-8478 Fix a performance regression in subtyping
-rw-r--r-- | src/reflect/scala/reflect/internal/Types.scala | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/reflect/scala/reflect/internal/Types.scala b/src/reflect/scala/reflect/internal/Types.scala index eb56f4ba81..f26315c538 100644 --- a/src/reflect/scala/reflect/internal/Types.scala +++ b/src/reflect/scala/reflect/internal/Types.scala @@ -4113,8 +4113,8 @@ trait Types def isSubArgs(tps1: List[Type], tps2: List[Type], tparams: List[Symbol], depth: Depth): Boolean = { def isSubArg(t1: Type, t2: Type, variance: Variance) = ( - (variance.isContravariant || isSubType(t1, t2, depth)) - && (variance.isCovariant || isSubType(t2, t1, depth)) + (variance.isCovariant || isSubType(t2, t1, depth)) // The order of these two checks can be material for performance (SI-8478) + && (variance.isContravariant || isSubType(t1, t2, depth)) ) corresponds3(tps1, tps2, mapList(tparams)(_.variance))(isSubArg) |