Term's attributes can't be used as variable values
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 https://github.com/projectfluent/fluent/issues/337. This prevents reusing the attribute of a term as the value of a variable.
cc @gonzalocordero
@stasm @eemeli
This seems to be a special case of the same change as proposed in #230, yes?