ignore.fz
# 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 <https://www.gnu.org/licenses/>.
# -----------------------------------------------------------------------
#
# Tokiwa Software GmbH, Germany
#
# Source code of Fuzion standard library feature ignore
#
# Author: Fridtjof Siebert (siebert@tokiwa.software)
#
# -----------------------------------------------------------------------
# ignore -- function mapping any value to unit
#
# This can be used to ignore the result of an expression, e.g. the
# instance returned by a constructor or the value returned by a fuction.
#
# Ex. with these features
#
# hello is
# say "Hello!"
#
# say_and_inc(x i32) i32 =>
# say x
# x+1
#
# the results can be ignored as follows
#
# hello |> ignore
# (say_and_inc 42) |> ignore
# ignore hello
# ignore (say_and_inc 42)
# _ := hello
# _ := say_and_inc 42
#
public ignore(T type, x T) unit =>