diff --git a/src/dev/flang/ast/Match.java b/src/dev/flang/ast/Match.java index f125d69cf..714a424b3 100644 --- a/src/dev/flang/ast/Match.java +++ b/src/dev/flang/ast/Match.java @@ -151,7 +151,7 @@ public void resolveTypes(Resolution res, Context context) { res.resolveTypes(st.feature()); } - if (st.isChoice()) + if (st.isChoice() && Types.resolved.t_void != st) { var cgs = st.choiceGenerics(context); for (var i = 0; i < cgs.size(); i++) diff --git a/tests/reg_issue4418/Makefile b/tests/reg_issue4418/Makefile new file mode 100644 index 000000000..ad333e619 --- /dev/null +++ b/tests/reg_issue4418/Makefile @@ -0,0 +1,25 @@ +# This file is part of the Fuzion language implementation. +# +# The Fuzion language implementation is free software: you can redistribute it +# and/or modify it under the terms of the GNU General Public License as published +# by the Free Software Foundation, version 3 of the License. +# +# The Fuzion language implementation is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +# License for more details. +# +# You should have received a copy of the GNU General Public License along with The +# Fuzion language implementation. If not, see . + + +# ----------------------------------------------------------------------- +# +# Tokiwa Software GmbH, Germany +# +# Source code of Fuzion test Makefile +# +# ----------------------------------------------------------------------- + +override NAME = reg_issue4418 +include ../simple.mk diff --git a/tests/reg_issue4418/reg_issue4418.fz b/tests/reg_issue4418/reg_issue4418.fz new file mode 100644 index 000000000..92591d0a4 --- /dev/null +++ b/tests/reg_issue4418/reg_issue4418.fz @@ -0,0 +1,26 @@ +# This file is part of the Fuzion language implementation. +# +# The Fuzion language implementation is free software: you can redistribute it +# and/or modify it under the terms of the GNU General Public License as published +# by the Free Software Foundation, version 3 of the License. +# +# The Fuzion language implementation is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +# License for more details. +# +# You should have received a copy of the GNU General Public License along with The +# Fuzion language implementation. If not, see . + + +# ----------------------------------------------------------------------- +# +# Tokiwa Software GmbH, Germany +# +# Source code of Fuzion test reg_issue4418 +# +# ----------------------------------------------------------------------- + +test(s) => match s.first + nil => true + * => false diff --git a/tests/reg_issue4418/reg_issue4418.fz.expected_err b/tests/reg_issue4418/reg_issue4418.fz.expected_err new file mode 100644 index 000000000..048abca9f --- /dev/null +++ b/tests/reg_issue4418/reg_issue4418.fz.expected_err @@ -0,0 +1,7 @@ + +--CURDIR--/reg_issue4418.fz:24:6: error 1: Type inference from actual arguments failed since no actual call was found +test(s) => match s.first +-----^ +For the formal argument 'test.s' the type can only be derived if there is a call to 'test'. + +one error. diff --git a/tests/reg_issue4418/reg_issue4418.fz.expected_out b/tests/reg_issue4418/reg_issue4418.fz.expected_out new file mode 100644 index 000000000..e69de29bb