From 82f2279bd4c94671703bfaa6d9d3dda5042690ac Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Fri, 3 Jul 2009 22:29:46 -0400 Subject: [PATCH] tests: add base_gen2.nit Signed-off-by: Jean Privat --- tests/base_gen2.nit | 66 +++++++++++++++++++++++++++++++++++++++++++++++ tests/sav/base_gen2.sav | 4 +++ 2 files changed, 70 insertions(+) create mode 100644 tests/base_gen2.nit create mode 100644 tests/sav/base_gen2.sav diff --git a/tests/base_gen2.nit b/tests/base_gen2.nit new file mode 100644 index 0000000..f709c37 --- /dev/null +++ b/tests/base_gen2.nit @@ -0,0 +1,66 @@ +# 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 + fun output is abstract +end + +class Int + redef fun output is intern +end + +class A + redef fun output do 1.output +end + +class B[E] + redef fun output do _e.output + var _e: E + init(e: E) do _e = e +end + +class C[F, G] + redef fun output + do + _f.output + _g.output + end + var _f: F + var _g: G + init(f: F, g: G) + do + _f = f + _g = g + end +end + +var a = new A +a.output + +var b = new B[Int](2) +b.output + +var c = new C[Int, A](2, a) +c.output + +#alt1#var d = new A[Int] +#alt2#var d = new B +#alt3#var d = new B[Int, Int] +#alt4#var d = new C +#alt5#var d = new C[Int] + diff --git a/tests/sav/base_gen2.sav b/tests/sav/base_gen2.sav new file mode 100644 index 0000000..1a3c570 --- /dev/null +++ b/tests/sav/base_gen2.sav @@ -0,0 +1,4 @@ +1 +2 +2 +1 -- 1.7.9.5