import kernel
class A
- readable var _a: Int
-
+ var a: Int
+
init(a: Int)
do
- _a = a
+ a = a
end
end
class B
super A
- redef fun ==(a: nullable Object): Bool
+ redef fun ==(o: nullable Object): Bool
do
- if not a isa B then
+ if not o isa B then
return false
end
- assert a isa B
- return a.a is _a
+
+ return o.a.is_same_instance(a)
end
init(b: Int)
do
- _a = b
+ a = b
end
end
'\n'.output
-(a1 is a1).output
-(a1 is a2).output
-(not a1 is a3).output
-(not a1 is b1).output
-(not b1 is b2).output
-(not b1 is b3).output
+(a1.is_same_instance(a1)).output
+(a1.is_same_instance(a2)).output
+(not a1.is_same_instance(a3)).output
+(not a1.is_same_instance(b1)).output
+(not b1.is_same_instance(b2)).output
+(not b1.is_same_instance(b3)).output
'\n'.output