First NIT release and new clean mercurial repository
[nit.git] / tests / test_id.nit
1 # This file is part of NIT ( http://www.nitlanguage.org ).
2 #
3 # Copyright 2004-2008 Jean Privat <jean@pryen.org>
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16
17
18 class C
19
20 init do end
21 end
22
23 var an: Object
24 var c = new C
25 var i = 5
26 var a = [c]
27 var s = "Bonjour"
28 var id1: Int
29 var id2: Int
30 var id3: Int
31 var id4: Int
32
33 id1 = c.object_id
34 print(c.object_id == id1)
35 an = c
36 print(an.object_id == id1)
37 print((new C).object_id != id1)
38 printn('\n')
39
40 id2 = i.object_id
41 print(id1 != id2)
42 print(i.object_id == id2)
43 an = i
44 print(an.object_id == id2)
45 print(5.object_id == id2)
46 printn('\n')
47
48 id3 = a.object_id
49 print(id1 != id3 and id2 != id3)
50 print(a.object_id == id3)
51 an = a
52 print(an.object_id == id3)
53 print([c].object_id != id3)
54 printn('\n')
55
56 id4 = s.object_id
57 print(id1 != id4 and id2 != id4 and id3 != id4)
58 print(s.object_id == id4)
59 an = s
60 print(an.object_id == id4)
61 print("Bonjour".object_id != id4)