Fuzion Logo
fuzion-lang.dev — The Fuzion Language Portal
JavaScript seems to be disabled. Functionality is limited.

property/interval.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 interval
#
# -----------------------------------------------------------------------


# interval -- feature for integers that can define an interval
#
public interval : /* NYI: UNDER DEVELOPMENT: inherit privately */ integer is


  # defining an integer interval from this to other, both inclusive
  #
  # special cases of interval a..b:
  #
  #     a <  b: the interval from a to b, both inclusive
  #     a == b: the interval containing only one element, a
  #     a >  b: an empty interval
  public infix .. (through property.interval.this) universe.interval property.interval.this =>
    # NYI: BUG: why is .type necessary here?
    interval interval.this through property.interval.this.type.one


  # an infinite integer Sequence starting from this up to the maximum value
  # interval.this.max
  #
  public postfix .. universe.interval property.interval.this =>
    # NYI: BUG: why is .type necessary here?
    interval interval.this nil property.interval.this.type.one


  # an infinite integer Sequence starting from this up to the maximum value
  # interval.this.max
  #
  # NYI: CLEANUP: Eventually remove `postfix ..` or `postfix ..?` in favor of the
  # other one, for now this is here to show that `?` is a legal symbol in an operator.
  #
  public postfix ..? universe.interval property.interval.this =>
    postfix ..

last changed: 2026-07-23