From: Jean Privat Date: Wed, 24 Jun 2009 19:54:22 +0000 (-0400) Subject: tests: base_nullable.nit and base_eq_null_notnull.nit X-Git-Tag: v0.3~222 X-Git-Url: http://nitlanguage.org tests: base_nullable.nit and base_eq_null_notnull.nit Signed-off-by: Jean Privat --- diff --git a/tests/base_eq_null_notnull.nit b/tests/base_eq_null_notnull.nit new file mode 100644 index 0000000..67af307 --- /dev/null +++ b/tests/base_eq_null_notnull.nit @@ -0,0 +1,47 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Copyright 2009 Jean Privat +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import end + +class Object + meth ==(o: nullable Object): Bool do return self is o + meth !=(o: nullable Object): Bool do return not (self == o) + meth output is intern +end + +class Bool + redef meth output is intern +end + +class A +end + +var a = new A +var b: nullable A = new A + +(a == a).output +(not a == b).output +(not a == null).output +(not b == a).output +(b == b).output +(not b == null).output + +(not a != a).output +(a != b).output +(a != null).output +(b != a).output +(not b != b).output +(b != null).output diff --git a/tests/base_nullable.nit b/tests/base_nullable.nit new file mode 100644 index 0000000..12c36b9 --- /dev/null +++ b/tests/base_nullable.nit @@ -0,0 +1,57 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Copyright 2009 Jean Privat +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import kernel + +class A + attr _i: Int + init (i: Int) do _i = i + redef meth output do _i.output +end + +var a: A +var na: nullable A +var o: Object +var no: nullable Object + +var a: A = new A(1) +var na: nullable A = new A(2) +var o: Object = new A(3) +var no: nullable Object = new A(4) + +var a1: A = a +#alt1#var a2: A = na +#alt2#var a3: A = o +#alt3#var a4: A = no +var na1: nullable A = na +var na2: nullable A = a +#alt4#var na3: nullable A = o +#alt5#var na4: nullable A = no +var o1: Object = a +#alt6#var o2: Object = na +var o3: Object = o +#alt7#var o4: Object = no +var no1: nullable Object = a +var no2: nullable Object = na +var no3: nullable Object = o +var no4: nullable Object = no +#alt8# var na5: nullable A = new nullable A(4) + +#alt9#var a6: A = null +var na6: nullable A = null +#alt10#var o6: Object = null +var no6: nullable Object = null + diff --git a/tests/sav/base_eq_null_notnull.sav b/tests/sav/base_eq_null_notnull.sav new file mode 100644 index 0000000..41a85bf --- /dev/null +++ b/tests/sav/base_eq_null_notnull.sav @@ -0,0 +1,12 @@ +true +true +true +true +true +true +true +true +true +true +true +true diff --git a/tests/sav/base_nullable.sav b/tests/sav/base_nullable.sav new file mode 100644 index 0000000..e69de29 diff --git a/tests/sav/base_nullable_alt1.sav b/tests/sav/base_nullable_alt1.sav new file mode 100644 index 0000000..e69de29 diff --git a/tests/sav/base_nullable_alt2.sav b/tests/sav/base_nullable_alt2.sav new file mode 100644 index 0000000..ecb4861 --- /dev/null +++ b/tests/sav/base_nullable_alt2.sav @@ -0,0 +1 @@ +alt/base_nullable_alt2.nit:37,13--13: Type error: expected A, got Object diff --git a/tests/sav/base_nullable_alt3.sav b/tests/sav/base_nullable_alt3.sav new file mode 100644 index 0000000..aa339a1 --- /dev/null +++ b/tests/sav/base_nullable_alt3.sav @@ -0,0 +1 @@ +alt/base_nullable_alt3.nit:38,13--14: Type error: expected A, got nullable Object diff --git a/tests/sav/base_nullable_alt4.sav b/tests/sav/base_nullable_alt4.sav new file mode 100644 index 0000000..e65bb22 --- /dev/null +++ b/tests/sav/base_nullable_alt4.sav @@ -0,0 +1 @@ +alt/base_nullable_alt4.nit:41,23--23: Type error: expected nullable A, got Object diff --git a/tests/sav/base_nullable_alt5.sav b/tests/sav/base_nullable_alt5.sav new file mode 100644 index 0000000..50b3d9f --- /dev/null +++ b/tests/sav/base_nullable_alt5.sav @@ -0,0 +1 @@ +alt/base_nullable_alt5.nit:42,23--24: Type error: expected nullable A, got nullable Object diff --git a/tests/sav/base_nullable_alt6.sav b/tests/sav/base_nullable_alt6.sav new file mode 100644 index 0000000..e69de29 diff --git a/tests/sav/base_nullable_alt7.sav b/tests/sav/base_nullable_alt7.sav new file mode 100644 index 0000000..e69de29 diff --git a/tests/sav/base_nullable_alt8.sav b/tests/sav/base_nullable_alt8.sav new file mode 100644 index 0000000..e69de29