Skip to content

Commit f7d27ff

Browse files
committed
Use equalsNumObject and equalsCharObject again.
1 parent c5ccbf3 commit f7d27ff

File tree

1 file changed

+50
-52
lines changed

1 file changed

+50
-52
lines changed

src/library/scala/runtime/BoxesRunTime.java

Lines changed: 50 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -125,79 +125,77 @@ public static boolean equals(Object x, Object y) {
125125
* in any case, we dispatch to it as soon as we spot one on either side.
126126
*/
127127
public static boolean equals2(Object x, Object y) {
128+
if (x instanceof java.lang.Number)
129+
return equalsNumObject((java.lang.Number)x, y);
130+
if (x instanceof java.lang.Character)
131+
return equalsCharObject((java.lang.Character)x, y);
132+
if (y instanceof scala.math.ScalaNumber)
133+
return y.equals(x);
134+
128135
if (x == null)
129136
return y == null;
137+
return x.equals(y);
138+
}
130139

131-
if (x instanceof java.lang.Number) {
132-
if (x instanceof java.lang.Integer) {
133-
if (y instanceof java.lang.Integer)
134-
return ((java.lang.Integer)x).intValue() == ((java.lang.Integer)y).intValue();
135-
return slowEqualsLongObject(x, ((java.lang.Integer)x).longValue(), y);
136-
}
137-
138-
if (x instanceof java.lang.Double) {
139-
if (y instanceof java.lang.Double)
140-
return ((java.lang.Double)x).doubleValue() == ((java.lang.Double)y).doubleValue();
141-
return slowEqualsDoubleObject(x, ((java.lang.Double)x).doubleValue(), y);
142-
}
143-
144-
if (x instanceof java.lang.Long) {
145-
if (y instanceof java.lang.Long)
146-
return ((java.lang.Long)x).longValue() == ((java.lang.Long)y).longValue();
147-
return slowEqualsLongObject(x, ((java.lang.Long)x).longValue(), y);
148-
}
149-
150-
if (x instanceof java.lang.Float) {
151-
if (y instanceof java.lang.Float)
152-
return ((java.lang.Float)x).floatValue() == ((java.lang.Float)y).floatValue();
153-
return slowEqualsDoubleObject(x, ((java.lang.Float)x).doubleValue(), y);
154-
}
155-
156-
if (x instanceof java.lang.Byte) {
157-
if (y instanceof java.lang.Byte)
158-
return ((java.lang.Byte)x).byteValue() == ((java.lang.Byte)y).byteValue();
159-
return slowEqualsLongObject(x, ((java.lang.Byte)x).longValue(), y);
160-
}
140+
public static boolean equalsNumObject(java.lang.Number xn, Object y) {
141+
if (xn instanceof java.lang.Integer) {
142+
if (y instanceof java.lang.Integer)
143+
return ((java.lang.Integer)xn).intValue() == ((java.lang.Integer)y).intValue();
144+
return slowEqualsLongObject(xn, ((java.lang.Integer)xn).longValue(), y);
145+
}
161146

162-
if (x instanceof java.lang.Short) {
163-
if (y instanceof java.lang.Short)
164-
return ((java.lang.Short)x).shortValue() == ((java.lang.Short)y).shortValue();
165-
return slowEqualsLongObject(x, ((java.lang.Short)x).longValue(), y);
166-
}
147+
if (xn instanceof java.lang.Double) {
148+
if (y instanceof java.lang.Double)
149+
return ((java.lang.Double)xn).doubleValue() == ((java.lang.Double)y).doubleValue();
150+
return slowEqualsDoubleObject(xn, ((java.lang.Double)xn).doubleValue(), y);
151+
}
167152

168-
if (x instanceof scala.math.ScalaNumber)
169-
return x.equals(y);
170-
if (y instanceof scala.math.ScalaNumber)
171-
return y.equals(x);
153+
if (xn instanceof java.lang.Long) {
154+
if (y instanceof java.lang.Long)
155+
return ((java.lang.Long)xn).longValue() == ((java.lang.Long)y).longValue();
156+
return slowEqualsLongObject(xn, ((java.lang.Long)xn).longValue(), y);
157+
}
172158

173-
return x.equals(y);
159+
if (xn instanceof java.lang.Float) {
160+
if (y instanceof java.lang.Float)
161+
return ((java.lang.Float)xn).floatValue() == ((java.lang.Float)y).floatValue();
162+
return slowEqualsDoubleObject(xn, ((java.lang.Float)xn).doubleValue(), y);
174163
}
175164

176-
if (x instanceof java.lang.Character) {
177-
if (y instanceof java.lang.Character)
178-
return ((java.lang.Character)x).charValue() == ((java.lang.Character)y).charValue();
179-
return slowEqualsLongObject(x, (long)((java.lang.Character)x).charValue(), y);
165+
if (xn instanceof java.lang.Byte) {
166+
if (y instanceof java.lang.Byte)
167+
return ((java.lang.Byte)xn).byteValue() == ((java.lang.Byte)y).byteValue();
168+
return slowEqualsLongObject(xn, ((java.lang.Byte)xn).longValue(), y);
180169
}
181170

182-
return x.equals(y);
183-
}
171+
if (xn instanceof java.lang.Short) {
172+
if (y instanceof java.lang.Short)
173+
return ((java.lang.Short)xn).shortValue() == ((java.lang.Short)y).shortValue();
174+
return slowEqualsLongObject(xn, ((java.lang.Short)xn).longValue(), y);
175+
}
184176

185-
// The following specialized variants are probably not useful with the new scheme
177+
if (xn instanceof scala.math.ScalaNumber)
178+
return xn.equals(y);
179+
if (y instanceof scala.math.ScalaNumber)
180+
return y.equals(xn);
186181

187-
public static boolean equalsNumObject(java.lang.Number xn, Object y) {
188-
return equals2(xn, y);
182+
if (xn == null)
183+
return y == null;
184+
return xn.equals(y);
189185
}
190186

191187
public static boolean equalsNumNum(java.lang.Number xn, java.lang.Number yn) {
192-
return equals2(xn, yn);
188+
return equalsNumObject(xn, yn);
193189
}
194190

195191
public static boolean equalsCharObject(java.lang.Character xc, Object y) {
196-
return equals2(xc, y);
192+
if (y instanceof java.lang.Character)
193+
return ((java.lang.Character)xc).charValue() == ((java.lang.Character)y).charValue();
194+
return slowEqualsLongObject(xc, (long)((java.lang.Character)xc).charValue(), y);
197195
}
198196

199197
public static boolean equalsNumChar(java.lang.Number xn, java.lang.Character yc) {
200-
return equals2(xn, yc);
198+
return equalsNumObject(xn, yc);
201199
}
202200

203201
private static boolean slowEqualsLongObject(Object x, long xn, Object y) {

0 commit comments

Comments
 (0)