Skip to content

Term's attributes can't be used as variable values #338

Description

@caridy

I can think of two important use-cases for this, but I'm afraid I'm missing some important about the design principles behind fluent, but first, let's see the example from the documentation:

-brand-name = Aurora
    .gender = feminine

update-successful =
    { -brand-name.gender ->
        [masculine] { -brand-name} został zaktualizowany.
        [feminine] { -brand-name } została zaktualizowana.
       *[other] Program { -brand-name } został zaktualizowany.
    }

In this example, -brand-name.gender is used as a selector, and it works just fine. This feature allows developers to keep the information about the brand name in a single place, and reuse it the value in various places.

Lets now see another example:

-brand-name = Aurora
    .gender = feminine

-foo = { $gender -> 
    [feminine] some
    *[masculine] another
}

x = { -foo(gender: "feminine") }
y = { -foo(gender: -brand-name.gender) }

In this case, y message throws during parsing with E0014: Expected literal, which I suspect is related to #337. This prevents reusing the attribute of a term as the value of a variable.

cc @gonzalocordero

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions