From 388fb5b6f8949a9983c75e097586cb6e704b0883 Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Tue, 10 Feb 2015 17:51:07 +0700 Subject: [PATCH] tests: add base_init_autoinit3.nit Signed-off-by: Jean Privat --- tests/base_init_autoinit3.nit | 67 +++++++++++++++++++++++++++ tests/sav/base_init_autoinit3.res | 8 ++++ tests/sav/base_init_autoinit3_alt1.res | 9 ++++ tests/sav/base_init_autoinit3_alt2.res | 1 + tests/sav/base_init_autoinit3_alt4.res | 1 + tests/sav/base_init_autoinit3_alt5.res | 2 + tests/sav/base_init_autoinit3_alt6.res | 1 + tests/sav/base_init_autoinit3_alt7.res | 2 + tests/sav/base_init_autoinit3_alt8.res | 9 ++++ tests/sav/niti/base_init_autoinit3_alt1.res | 9 ++++ 10 files changed, 109 insertions(+) create mode 100644 tests/base_init_autoinit3.nit create mode 100644 tests/sav/base_init_autoinit3.res create mode 100644 tests/sav/base_init_autoinit3_alt1.res create mode 100644 tests/sav/base_init_autoinit3_alt2.res create mode 100644 tests/sav/base_init_autoinit3_alt4.res create mode 100644 tests/sav/base_init_autoinit3_alt5.res create mode 100644 tests/sav/base_init_autoinit3_alt6.res create mode 100644 tests/sav/base_init_autoinit3_alt7.res create mode 100644 tests/sav/base_init_autoinit3_alt8.res create mode 100644 tests/sav/niti/base_init_autoinit3_alt1.res diff --git a/tests/base_init_autoinit3.nit b/tests/base_init_autoinit3.nit new file mode 100644 index 0000000..37c2cb2 --- /dev/null +++ b/tests/base_init_autoinit3.nit @@ -0,0 +1,67 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# 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 + var i: Int +end + +class B + autoinit b, i #alt2# autoinit foo #alt4# autoinit fail + super A + var b: Bool #alt5# var b: Bool is noinit + fun foo do end +end + +class C + super A + var f: Float +end + +class D + autoinit i, b, f + super B + super C +end + +class E + noautoinit #alt6# + #alt6,7# autoinit + super A + var a: A +end + +class F + #alt8#noautoinit +end + +var a = new A(1) +a.i.output + +var b = new B(false, 2) +b.i.output +b.b.output + +var c = new C(3, 3.3) +c.i.output +c.f.output + +var d = new D(4, true, 4.4) +d.i.output +d.b.output +d.f.output + +var e = new E +#alt1# e.a.i.output diff --git a/tests/sav/base_init_autoinit3.res b/tests/sav/base_init_autoinit3.res new file mode 100644 index 0000000..6851c6d --- /dev/null +++ b/tests/sav/base_init_autoinit3.res @@ -0,0 +1,8 @@ +1 +2 +false +3 +3.300000 +4 +true +4.400000 diff --git a/tests/sav/base_init_autoinit3_alt1.res b/tests/sav/base_init_autoinit3_alt1.res new file mode 100644 index 0000000..92263fd --- /dev/null +++ b/tests/sav/base_init_autoinit3_alt1.res @@ -0,0 +1,9 @@ +Runtime error: Uninitialized attribute _a (alt/base_init_autoinit3_alt1.nit:43) +1 +2 +false +3 +3.300000 +4 +true +4.400000 diff --git a/tests/sav/base_init_autoinit3_alt2.res b/tests/sav/base_init_autoinit3_alt2.res new file mode 100644 index 0000000..cd95aed --- /dev/null +++ b/tests/sav/base_init_autoinit3_alt2.res @@ -0,0 +1 @@ +alt/base_init_autoinit3_alt2.nit:22,11--13: Error: `foo` is not an autoinit method diff --git a/tests/sav/base_init_autoinit3_alt4.res b/tests/sav/base_init_autoinit3_alt4.res new file mode 100644 index 0000000..269b2fd --- /dev/null +++ b/tests/sav/base_init_autoinit3_alt4.res @@ -0,0 +1 @@ +alt/base_init_autoinit3_alt4.nit:22,11--14: Error: unknown method `fail` diff --git a/tests/sav/base_init_autoinit3_alt5.res b/tests/sav/base_init_autoinit3_alt5.res new file mode 100644 index 0000000..67f272a --- /dev/null +++ b/tests/sav/base_init_autoinit3_alt5.res @@ -0,0 +1,2 @@ +alt/base_init_autoinit3_alt5.nit:22,11: Error: `b=` is not an autoinit method +alt/base_init_autoinit3_alt5.nit:34,14: Error: `b=` is not an autoinit method diff --git a/tests/sav/base_init_autoinit3_alt6.res b/tests/sav/base_init_autoinit3_alt6.res new file mode 100644 index 0000000..e95f861 --- /dev/null +++ b/tests/sav/base_init_autoinit3_alt6.res @@ -0,0 +1 @@ +alt/base_init_autoinit3_alt6.nit:40,2--41,9: Syntax error: `autoinit` expects method identifiers, use `noautoinit` to clear all autoinits. diff --git a/tests/sav/base_init_autoinit3_alt7.res b/tests/sav/base_init_autoinit3_alt7.res new file mode 100644 index 0000000..9fb22d1 --- /dev/null +++ b/tests/sav/base_init_autoinit3_alt7.res @@ -0,0 +1,2 @@ +alt/base_init_autoinit3_alt7.nit:41,2--9: Error: `autoinit` and `noautoinit` are incompatible. +alt/base_init_autoinit3_alt7.nit:41,2--9: Syntax error: `autoinit` expects method identifiers, use `noautoinit` to clear all autoinits. diff --git a/tests/sav/base_init_autoinit3_alt8.res b/tests/sav/base_init_autoinit3_alt8.res new file mode 100644 index 0000000..f88f100 --- /dev/null +++ b/tests/sav/base_init_autoinit3_alt8.res @@ -0,0 +1,9 @@ +alt/base_init_autoinit3_alt8.nit:47,2--11: Warning: the list of autoinit is already empty. +1 +2 +false +3 +3.300000 +4 +true +4.400000 diff --git a/tests/sav/niti/base_init_autoinit3_alt1.res b/tests/sav/niti/base_init_autoinit3_alt1.res new file mode 100644 index 0000000..70e53f3 --- /dev/null +++ b/tests/sav/niti/base_init_autoinit3_alt1.res @@ -0,0 +1,9 @@ +Runtime error: Uninitialized attribute _a (alt/base_init_autoinit3_alt1.nit:67) +1 +2 +false +3 +3.300000 +4 +true +4.400000 -- 1.7.9.5