Skip to content

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

@caridy

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

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