Nix 2.93.3
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
Loading...
Searching...
No Matches
nix::AttrsPattern Struct Reference

#include <nixexpr.hh>

Inheritance diagram for nix::AttrsPattern:
nix::Pattern

Classes

struct  Formal

Public Types

typedef std::vector< FormalFormals_

Public Member Functions

virtual std::shared_ptr< const StaticEnvbuildEnv (const StaticEnv *up) override
virtual void accept (ExprVisitor &ev) override
virtual Envmatch (ExprLambda &lambda, EvalState &state, Env &up, Value *arg, const PosIdx pos) override
virtual void addBindingsToJSON (JSON &out, const SymbolTable &symbols) const override
bool has (Symbol arg) const
std::vector< std::reference_wrapper< const Formal > > lexicographicOrder (const SymbolTable &symbols) const
Public Member Functions inherited from nix::Pattern
 Pattern (Symbol name)

Public Attributes

Formals_ formals
bool ellipsis
Public Attributes inherited from nix::Pattern
Symbol name

Detailed Description

Attribute set destructuring in arguments of a lambda, if present

Member Function Documentation

◆ accept()

void nix::AttrsPattern::accept ( ExprVisitor & ev)
overridevirtual

Implements nix::Pattern.

◆ addBindingsToJSON()

void nix::AttrsPattern::addBindingsToJSON ( JSON & out,
const SymbolTable & symbols ) const
overridevirtual

Implements nix::Pattern.

◆ buildEnv()

std::shared_ptr< const StaticEnv > nix::AttrsPattern::buildEnv ( const StaticEnv * up)
overridevirtual

Implements nix::Pattern.

◆ match()

Env & nix::AttrsPattern::match ( ExprLambda & lambda,
EvalState & state,
Env & up,
Value * arg,
const PosIdx pos )
overridevirtual
  • For each formal argument, get the actual argument. If

Implements nix::Pattern.


The documentation for this struct was generated from the following files:
  • lix/libexpr/nixexpr.hh
  • lix/libexpr/eval.cc
  • lix/libexpr/nixexpr.cc