tests: add base_var_assignment_flow.nit
authorJean Privat <jean@pryen.org>
Fri, 19 Jun 2009 05:07:17 +0000 (01:07 -0400)
committerJean Privat <jean@pryen.org>
Wed, 24 Jun 2009 19:47:47 +0000 (15:47 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

tests/base_var_assignment_flow.nit [new file with mode: 0644]
tests/sav/base_var_assignment_flow.sav [new file with mode: 0644]
tests/sav/base_var_assignment_flow_alt1.sav [new file with mode: 0644]
tests/sav/base_var_assignment_flow_alt4.sav [new file with mode: 0644]
tests/sav/base_var_assignment_flow_alt5.sav [new file with mode: 0644]
tests/sav/base_var_assignment_flow_alt6.sav [new file with mode: 0644]

diff --git a/tests/base_var_assignment_flow.nit b/tests/base_var_assignment_flow.nit
new file mode 100644 (file)
index 0000000..a05a167
--- /dev/null
@@ -0,0 +1,68 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2009 Jean Privat <jean@pryen.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 end
+
+interface Object
+       meth output is abstract
+end
+
+universal Int
+       redef meth output is intern
+end
+
+universal Bool
+       redef meth output is intern
+end
+
+meth maybe: Bool do return false
+
+var a: Object
+#alt1#a.output
+a = 1
+a.output
+
+var b = a
+b.output
+
+var c: Object
+if maybe then
+       c = 2 #!alt2# #!alt4#
+else
+       c = 2 #!alt3# #!alt4#
+end
+c.output
+
+var d: Object
+if maybe then
+       d = 3
+       d.output
+end
+#alt5#d.output
+
+var e: Object
+do
+       e = 4
+       e.output
+end
+e.output
+
+var f: Object
+while maybe do
+       f = 5
+       f.output
+end
+#alt6#f.output
diff --git a/tests/sav/base_var_assignment_flow.sav b/tests/sav/base_var_assignment_flow.sav
new file mode 100644 (file)
index 0000000..efb41c0
--- /dev/null
@@ -0,0 +1,5 @@
+1
+1
+2
+4
+4
diff --git a/tests/sav/base_var_assignment_flow_alt1.sav b/tests/sav/base_var_assignment_flow_alt1.sav
new file mode 100644 (file)
index 0000000..8f78919
--- /dev/null
@@ -0,0 +1 @@
+alt/base_var_assignment_flow_alt1.nit:34,1--1: Error: variable 'a' is possibly unset.
diff --git a/tests/sav/base_var_assignment_flow_alt4.sav b/tests/sav/base_var_assignment_flow_alt4.sav
new file mode 100644 (file)
index 0000000..be5fb12
--- /dev/null
@@ -0,0 +1 @@
+alt/base_var_assignment_flow_alt4.nit:45,1--1: Error: variable 'c' is possibly unset.
diff --git a/tests/sav/base_var_assignment_flow_alt5.sav b/tests/sav/base_var_assignment_flow_alt5.sav
new file mode 100644 (file)
index 0000000..f8078f9
--- /dev/null
@@ -0,0 +1 @@
+alt/base_var_assignment_flow_alt5.nit:54,1--1: Error: variable 'd' is possibly unset.
diff --git a/tests/sav/base_var_assignment_flow_alt6.sav b/tests/sav/base_var_assignment_flow_alt6.sav
new file mode 100644 (file)
index 0000000..23bad0d
--- /dev/null
@@ -0,0 +1 @@
+alt/base_var_assignment_flow_alt6.nit:68,1--1: Error: variable 'f' is possibly unset.