var btype = v.base_variable_ctx.stype(variable)
if not v.check_conform_expr(n_value, btype) then return
- # Bypasse cast if then current type does not match
- if not n_value.stype < t then v.variable_ctx.stype(variable) = btype
+ # Always cast
+ v.variable_ctx.stype(variable) = n_value.stype
_is_typed = true
end
var btype = v.base_variable_ctx.stype(variable)
if not v.check_conform(n_value, t2, btype) then return
- # Bypasse cast if then current type does not match
- if not t2 < t then v.variable_ctx.stype(variable) = btype
+ # Always cast
+ v.variable_ctx.stype(variable) = t2
_is_typed = true
end
init do end
end
-var an: Object
+
var c = new C
var i = 5
var a = [c]
id1 = c.object_id
print(c.object_id == id1)
-an = c
-print(an.object_id == id1)
+var an1: Object = c
+print(an1.object_id == id1)
print((new C).object_id != id1)
printn('\n')
id2 = i.object_id
print(id1 != id2)
print(i.object_id == id2)
-an = i
-print(an.object_id == id2)
+var an2: Object = i
+print(an2.object_id == id2)
print(5.object_id == id2)
printn('\n')
id3 = a.object_id
print(id1 != id3 and id2 != id3)
print(a.object_id == id3)
-an = a
-print(an.object_id == id3)
+var an3: Object = a
+print(an3.object_id == id3)
print([c].object_id != id3)
printn('\n')
id4 = s.object_id
print(id1 != id4 and id2 != id4 and id3 != id4)
print(s.object_id == id4)
-an = s
-print(an.object_id == id4)
+var an4: Object = s
+print(an4.object_id == id4)
print("Bonjour".object_id != id4)
# See the License for the specific language governing permissions and
# limitations under the License.
-var a : Object
+
print("int:")
-a = 5
-print(a isa Int)
-print(not a isa String)
-print(not a isa AbstractArray[Char])
-print(not a isa Iterator[Int])
-print(a isa Discrete)
-print(a isa Object)
+var a1: Object = 5
+print(a1 isa Int)
+print(not a1 isa String)
+print(not a1 isa AbstractArray[Char])
+print(not a1 isa Iterator[Int])
+print(a1 isa Discrete)
+print(a1 isa Object)
print("string:")
-a = "Bonjour"
-print(not a isa Int)
-print(a isa String)
-print(a isa AbstractArrayRead[Char])
-print(not a isa Iterator[Int])
-print(not a isa Discrete)
-print(a isa Object)
+var a2: Object = "Bonjour"
+print(not a2 isa Int)
+print(a2 isa String)
+print(a2 isa AbstractArrayRead[Char])
+print(not a2 isa Iterator[Int])
+print(not a2 isa Discrete)
+print(a2 isa Object)
print("null:")
-a = null
-print(a isa Int)
-print(a isa String)
-print(a isa AbstractArray[Char])
-print(a isa Iterator[Int])
-print(a isa Discrete)
-print(a isa Object)
+var a3: Object = null
+print(a3 isa Int)
+print(a3 isa String)
+print(a3 isa AbstractArray[Char])
+print(a3 isa Iterator[Int])
+print(a3 isa Discrete)
+print(a3 isa Object)