aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/src/dotty/tools/dotc/transform/SyntheticMethods.scala4
-rw-r--r--tests/run/caseClassHash.check8
2 files changed, 6 insertions, 6 deletions
diff --git a/compiler/src/dotty/tools/dotc/transform/SyntheticMethods.scala b/compiler/src/dotty/tools/dotc/transform/SyntheticMethods.scala
index adf65c3bb..bb11348c2 100644
--- a/compiler/src/dotty/tools/dotc/transform/SyntheticMethods.scala
+++ b/compiler/src/dotty/tools/dotc/transform/SyntheticMethods.scala
@@ -149,7 +149,7 @@ class SyntheticMethods(thisTransformer: DenotTransformer) {
* gets the hashCode method:
*
* def hashCode: Int = {
- * <synthetic> var acc: Int = productPrefix.hashCode()
+ * <synthetic> var acc: Int = "C".hashCode // constant folded
* acc = Statics.mix(acc, x);
* acc = Statics.mix(acc, Statics.this.anyHash(y));
* Statics.finalizeHash(acc, 2)
@@ -157,7 +157,7 @@ class SyntheticMethods(thisTransformer: DenotTransformer) {
*/
def caseHashCodeBody(implicit ctx: Context): Tree = {
val acc = ctx.newSymbol(ctx.owner, "acc".toTermName, Mutable | Synthetic, defn.IntType, coord = ctx.owner.pos)
- val accDef = ValDef(acc, This(clazz).select(defn.Product_productPrefix).select(defn.Any_hashCode).ensureApplied)
+ val accDef = ValDef(acc, Literal(Constant(clazz.name.toString.hashCode)))
val mixes = for (accessor <- accessors.toList) yield
Assign(ref(acc), ref(defn.staticsMethod("mix")).appliedTo(ref(acc), hashImpl(accessor)))
val finish = ref(defn.staticsMethod("finalizeHash")).appliedTo(ref(acc), Literal(Constant(accessors.size)))
diff --git a/tests/run/caseClassHash.check b/tests/run/caseClassHash.check
index b5a6f08e9..332fd477d 100644
--- a/tests/run/caseClassHash.check
+++ b/tests/run/caseClassHash.check
@@ -1,9 +1,9 @@
Foo(true,-1,-1,d,-5,-10,500.0,500.0,List(),5.0)
Foo(true,-1,-1,d,-5,-10,500.0,500.0,List(),5)
-1383698062
-1383698062
+205963949
+205963949
true
-## method 1: 1383698062
-## method 2: 1383698062
+## method 1: 205963949
+## method 2: 205963949
Murmur 1: 1383698062
Murmur 2: 1383698062