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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions