Skip to main content
Log in

Mojo struct

IntLiteral

@register_passable(trivial) struct IntLiteral

This type represents a static integer literal value with infinite precision. They can't be materialized at runtime and must be lowered to other integer types (like Int), but allow for compile-time operations that would overflow on Int and other fixed precision integer types.

Fields

  • value (!kgen.int_literal): The underlying storage for the integer value.

Implemented traits

Absable, AnyType, Boolable, CeilDivable, Ceilable, CollectionElement, Comparable, Copyable, EqualityComparable, ExplicitlyCopyable, Floorable, GreaterThanComparable, GreaterThanOrEqualComparable, ImplicitlyBoolable, ImplicitlyIntable, Indexer, Intable, LessThanComparable, LessThanOrEqualComparable, Movable, Roundable, Stringable, Truncable, UnknownDestructibility

Methods

__init__

__init__() -> Self

Default constructor.

__bool__

__bool__(self) -> Bool

Convert this IntLiteral to Bool.

Returns:

False Bool value if the value is equal to 0 and True otherwise.

__neg__

__neg__(self) -> Self

Return -self.

Returns:

The -self value.

__pos__

__pos__(self) -> Self

Return +self.

Returns:

The +self value.

__invert__

__invert__(self) -> Self

Return ~self.

Returns:

The ~self value.

__lt__

__lt__(self, rhs: Self) -> Bool

Compare this IntLiteral to the RHS using LT comparison.

Args:

  • rhs (Self): The other IntLiteral to compare against.

Returns:

True if this IntLiteral is less-than the RHS IntLiteral and False otherwise.

__le__

__le__(self, rhs: Self) -> Bool

Compare this IntLiteral to the RHS using LE comparison.

Args:

  • rhs (Self): The other IntLiteral to compare against.

Returns:

True if this IntLiteral is less-or-equal than the RHS IntLiteral and False otherwise.

__eq__

__eq__(self, rhs: Self) -> Bool

Compare this IntLiteral to the RHS using EQ comparison.

Args:

  • rhs (Self): The other IntLiteral to compare against.

Returns:

True if this IntLiteral is equal to the RHS IntLiteral and False otherwise.

__ne__

__ne__(self, rhs: Self) -> Bool

Compare this IntLiteral to the RHS using NE comparison.

Args:

  • rhs (Self): The other IntLiteral to compare against.

Returns:

True if this IntLiteral is non-equal to the RHS IntLiteral and False otherwise.

__gt__

__gt__(self, rhs: Self) -> Bool

Compare this IntLiteral to the RHS using GT comparison.

Args:

  • rhs (Self): The other IntLiteral to compare against.

Returns:

True if this IntLiteral is greater-than the RHS IntLiteral and False otherwise.

__ge__

__ge__(self, rhs: Self) -> Bool

Compare this IntLiteral to the RHS using GE comparison.

Args:

  • rhs (Self): The other IntLiteral to compare against.

Returns:

True if this IntLiteral is greater-or-equal than the RHS IntLiteral and False otherwise.

__add__

__add__(self, rhs: Self) -> Self

Return self + rhs.

Args:

  • rhs (Self): The value to add.

Returns:

self + rhs value.

__sub__

__sub__(self, rhs: Self) -> Self

Return self - rhs.

Args:

  • rhs (Self): The value to subtract.

Returns:

self - rhs value.

__mul__

__mul__(self, rhs: Self) -> Self

Return self * rhs.

Args:

  • rhs (Self): The value to multiply with.

Returns:

self * rhs value.

__floordiv__

__floordiv__(self, rhs: Self) -> Self

Return self // rhs.

Args:

  • rhs (Self): The value to divide with.

Returns:

self // rhs value.

__mod__

__mod__(self, rhs: Self) -> Self

Return the remainder of self divided by rhs.

Args:

  • rhs (Self): The value to divide on.

Returns:

The remainder of dividing self by rhs.

__lshift__

__lshift__(self, rhs: Self) -> Self

Return self << rhs.

Args:

  • rhs (Self): The value to shift with.

Returns:

self << rhs.

__rshift__

__rshift__(self, rhs: Self) -> Self

Return self >> rhs.

Args:

  • rhs (Self): The value to shift with.

Returns:

self >> rhs.

__and__

__and__(self, rhs: Self) -> Self

Return self & rhs.

Args:

  • rhs (Self): The RHS value.

Returns:

self & rhs.

__or__

__or__(self, rhs: Self) -> Self

Return self | rhs.

Args:

  • rhs (Self): The RHS value.

Returns:

self | rhs.

__xor__

__xor__(self, rhs: Self) -> Self

Return self ^ rhs.

Args:

  • rhs (Self): The RHS value.

Returns:

self ^ rhs.

__radd__

__radd__(self, value: Self) -> Self

Return value + self.

Args:

  • value (Self): The other value.

Returns:

value + self.

__rsub__

__rsub__(self, value: Self) -> Self

Return value - self.

Args:

  • value (Self): The other value.

Returns:

value - self.

__rmul__

__rmul__(self, value: Self) -> Self

Return value * self.

Args:

  • value (Self): The other value.

Returns:

value * self.

__rfloordiv__

__rfloordiv__(self, value: Self) -> Self

Return value // self.

Args:

  • value (Self): The other value.

Returns:

value // self.

__rlshift__

__rlshift__(self, value: Self) -> Self

Return value << self.

Args:

  • value (Self): The other value.

Returns:

value << self.

__rrshift__

__rrshift__(self, value: Self) -> Self

Return value >> self.

Args:

  • value (Self): The other value.

Returns:

value >> self.

__rand__

__rand__(self, value: Self) -> Self

Return value & self.

Args:

  • value (Self): The other value.

Returns:

value & self.

__ror__

__ror__(self, value: Self) -> Self

Return value | self.

Args:

  • value (Self): The other value.

Returns:

value | self.

__rxor__

__rxor__(self, value: Self) -> Self

Return value ^ self.

Args:

  • value (Self): The other value.

Returns:

value ^ self.

__iadd__

__iadd__(mut self, rhs: Self)

Compute self + rhs and save the result in self.

Args:

  • rhs (Self): The RHS value.

__isub__

__isub__(mut self, rhs: Self)

Compute self - rhs and save the result in self.

Args:

  • rhs (Self): The RHS value.

__imul__

__imul__(mut self, rhs: Self)

Compute self*rhs and save the result in self.

Args:

  • rhs (Self): The RHS value.

__ifloordiv__

__ifloordiv__(mut self, rhs: Self)

Compute self//rhs and save the result in self.

Args:

  • rhs (Self): The RHS value.

__ilshift__

__ilshift__(mut self, rhs: Self)

Compute self << rhs and save the result in self.

Args:

  • rhs (Self): The RHS value.

__irshift__

__irshift__(mut self, rhs: Self)

Compute self >> rhs and save the result in self.

Args:

  • rhs (Self): The RHS value.

__iand__

__iand__(mut self, rhs: Self)

Compute self & rhs and save the result in self.

Args:

  • rhs (Self): The RHS value.

__ixor__

__ixor__(mut self, rhs: Self)

Compute self ^ rhs and save the result in self.

Args:

  • rhs (Self): The RHS value.

__ior__

__ior__(mut self, rhs: Self)

Compute self|rhs and save the result in self.

Args:

  • rhs (Self): The RHS value.

__divmod__

__divmod__(self, rhs: Self) -> Tuple[IntLiteral, IntLiteral]

Return the quotient and remainder of the division of self by rhs.

Args:

  • rhs (Self): The value to divide on.

Returns:

The quotient and remainder of the division.

__as_bool__

__as_bool__(self) -> Bool

Convert this IntLiteral to Bool.

Returns:

False Bool value if the value is equal to 0 and True otherwise.

__int__

__int__(self) -> Int

Convert from IntLiteral to Int.

Returns:

The value as an integer of platform-specific width.

__as_int__

__as_int__(self) -> Int

Implicitly convert to an Int.

Returns:

An integral value that represents this object.

__uint__

__uint__(self) -> UInt

Convert from IntLiteral to UInt.

Returns:

The value as an unsigned integer of platform-specific width.

__abs__

__abs__(self) -> Self

Return the absolute value of the IntLiteral value.

Returns:

The absolute value.

__ceil__

__ceil__(self) -> Self

Return the ceiling of the IntLiteral value, which is itself.

Returns:

The IntLiteral value itself.

__floor__

__floor__(self) -> Self

Return the floor of the IntLiteral value, which is itself.

Returns:

The IntLiteral value itself.

__round__

__round__(self) -> Self

Return the rounded value of the IntLiteral value, which is itself.

Returns:

The IntLiteral value itself.

__round__(self, ndigits: Int) -> Self

Return the rounded value of the IntLiteral value, which is itself.

Args:

  • ndigits (Int): The number of digits to round to.

Returns:

The IntLiteral value itself if ndigits >= 0 else the rounded value.

__trunc__

__trunc__(self) -> Self

Return the truncated of the IntLiteral value, which is itself.

Returns:

The IntLiteral value itself.

__str__

__str__(self) -> String

Convert from IntLiteral to String.

Returns:

The value as a string.

__ceildiv__

__ceildiv__(self, denominator: Self) -> Self

Return the rounded-up result of dividing self by denominator.

Args:

  • denominator (Self): The denominator.

Returns:

The ceiling of dividing numerator by denominator.

__index__

__index__(self) -> index

Convert from IntLiteral to index.

Returns:

The corresponding __mlir_type.index value.