Beaver.MLIR.Location (beaver v0.4.8)

Copy Markdown

This module defines functions working with MLIR Location.

Summary

Functions

Get a location of file line. Column is zero by default because in Elixir it is usually omitted.

Create an MLIR location from Macro.Env

Types

env_like()

@type env_like() :: %{
  optional(:file) => String.t() | nil,
  optional(:line) => integer() | nil
}

env_opts()

@type env_opts() :: [column: integer() | nil, ctx: Beaver.Deferred.context_arg()]

file_opts()

@type file_opts() :: [
  name: String.t(),
  line: integer(),
  column: integer() | nil,
  ctx: Beaver.Deferred.context_arg()
]

t()

@type t() :: %Beaver.MLIR.Location{ref: term()}

Functions

file(opts)

@spec file(file_opts()) :: Beaver.Deferred.contextual(t())

Get a location of file line. Column is zero by default because in Elixir it is usually omitted.

Examples

iex> ctx = MLIR.Context.create()
iex> MLIR.Location.file(name: "filename", line: 1, column: 1, ctx: ctx) |> MLIR.to_string()
~s{filename:1:1}
iex> MLIR.Context.destroy(ctx)

from_env(env, opts \\ [])

@spec from_env(env_like(), env_opts()) :: Beaver.Deferred.contextual(t())

Create an MLIR location from Macro.Env

make(value)

unknown(opts \\ [])