class
OriginThe origin of a value.
Contents
Defaults to NoOrigin
.
Using BinaryOrigin
and UnaryOrigin
you can build a tree to track the changes made to a Value while running a lua program.
You can manually walk the tree using the variant returned by Origin::
.
Supports equality operators.
Constructors, destructors, conversion operators
- Origin()
- Creates an Origin using NoOrigin.
- Origin(Type) explicit
- Creates an Origin from the underlying variant type.
- Origin(NoOrigin)
- Creates an Origin from NoOrigin.
- Origin(ExternalOrigin)
- Creates an Origin from an ExternalOrigin.
- Origin(LiteralOrigin)
- Creates an Origin from a LiteralOrigin.
- Origin(BinaryOrigin)
- Creates an Origin from a BinaryOrigin.
- Origin(UnaryOrigin)
- Creates an Origin from an UnaryOrigin.
Public functions
- auto raw() const -> const Type & -> auto
- Returns the underlying variant type.
- auto raw() -> Type & -> auto
- Returns the underlying variant type.
- auto is_none() const -> bool -> auto
- Check if the origin is NoOrigin.
- auto is_external() const -> bool -> auto
- Check if the origin is an ExternalOrigin.
- auto is_literal() const -> bool -> auto
- Check if the origin is a LiteralOrigin.
- auto is_binary() const -> bool -> auto
- Check if the origin is a BinaryOrigin.
- auto is_unary() const -> bool -> auto
- Check if the origin is a UnaryOrigin.
- auto force(const Value&) const -> std::optional< SourceChangeTree > -> auto
- Uses the reverse function to try to force the result value to change.
- void set_file(std::optional<std::shared_ptr<std::string>> file)
- auto simplify() const -> Origin -> auto
- auto with_updated_ranges(const RangeMap&) const -> Origin -> auto
- Returns a new origin with updated ranges.
Function documentation
void minilua:: Origin:: set_file(std::optional<std::shared_ptr<std::string>> file)
Sets the file of the underlying origin type (if possible).
auto minilua:: Origin:: simplify() const -> Origin
Simplify the origin.
Removes unusable origins from the tree.
auto minilua:: Origin:: with_updated_ranges(const RangeMap&) const -> Origin
Returns a new origin with updated ranges.
This will replace the matching LiteralOrigin
ranges of the keys with those of the values. Other origin ranges will not be updated.
The file
s in the range map will be ignored for finding the correct range to replace. But the returned origin will always contain ranges with the same file as the original origin.