Put parens around if and it should work. Otherwise the do/end block binds to the module attribute. I will make sure we have a good error message for it.
On Tue, Sep 13, 2022 at 22:31 Austin Ziegler <[email protected]> wrote: > I’d like to propose a refinement to the way that `@attr` values get set. > If I want an attribute to have different values at compile-time, I have > four options (these are *not* ideally formatted): > > ```elixir > @option1 if(Mix.env() == :test, do: "Option 1") > @option2 (if Mix.env() == :test do > "Option 2" > end) > > option3 = if Mix.env() == :test do > "Option 3" > end > @option3 option3 > > if Mix.env() == :test do > @option4 "Option 4" > else > @option4 nil > end > ``` > > These are all, in my opinion, obfuscated.g > > What I *want* to do is: > > ```elixir > @option5 if Mix.env() == :test do > "Option 5" > end > ``` > > But that doesn’t work because of the way that the `@` special form works > (`@/1`). > > Is it possible to either (a) modify the `@` form to accept an *expression* > instead of expecting a single value, or (b) come up with a different way of > expressing this? I’m not sure if it’s possible, but maybe `@attr = expr`? > > I’m not really sure where I’d start exploring it, but it could be > interesting to explore if this is something that would be considered. > > -a > -- > Austin Ziegler • [email protected] • [email protected] > http://www.halostatue.ca/ • http://twitter.com/halostatue > > -- > You received this message because you are subscribed to the Google Groups > "elixir-lang-core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elixir-lang-core/CAJ4ekQuhJP_vdUXy%3DJUxN5KZLrKYncC1XJPHJBYsopYRiXO%2BZg%40mail.gmail.com > <https://groups.google.com/d/msgid/elixir-lang-core/CAJ4ekQuhJP_vdUXy%3DJUxN5KZLrKYncC1XJPHJBYsopYRiXO%2BZg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4%2BYHOGKky-Tq_ZfdJVKPm1V%3DrXX8UzphKdoohWi4rNNOg%40mail.gmail.com.
