28

When I compile scala in play console, I got this:

[warn] there were 1 feature warning(s); re-run with -feature for details
[warn] one warning found

I thought it means compile -feature, but I got this:

[error] Expected ID character
[error] Not a valid command: compile (similar: completions)
[error] Expected project ID
[error] Expected configuration
[error] Expected ':' (if selecting a configuration)
[error] Expected key
[error] Expected '::'
[error] Expected end of input.
[error] compile -feature
[error]     

Then I run play -feature, I got this:

[warn] The `-` command is deprecated in favor of `onFailure` and will be removed in 0.14.0

And play quit.

So how should I do this?

Yuval Itzchakov
  • 146,575
  • 32
  • 257
  • 321
Sato
  • 8,192
  • 17
  • 60
  • 115

4 Answers4

44

You have to add

scalacOptions += "-feature"

to your build.sbt and execute reload if your sbt console is running (or restart it).

Alternatively if you want to set it only for a single session, while in sbt console.

set scalacOptions += "-feature"

You can write, this setting is applied immediately, no need to reload or restart sbt console.

pjanssen
  • 1,065
  • 13
  • 35
lpiepiora
  • 13,659
  • 1
  • 35
  • 47
10

Just for completion if you're in the play/sbt repl you can modify the value of scalacOptions just for the session, like this:

enter image description here

Pablo Fernandez
  • 103,170
  • 56
  • 192
  • 232
  • 1
    I am getting the same warning and have changed the scala options as mentioned in the comments. However I am unable to get rid of the warning. What is the root cause of this error? – binshi May 29 '16 at 01:36
  • Same issue here :( – Jonathan Oct 14 '17 at 19:01
2

In my case, I found the source of my error to the file /usr/local/etc/sbtopts. It had the following line added at the end by some program I had installed.

-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled XX:MaxPermSize=256M

Whenever sbt launches the above line is passed as arguments which was causing the above error. As these are java options to solve it either we can add -J before the above line or delete the line completely. This gets rid of -feature.

binshi
  • 1,248
  • 2
  • 17
  • 33
  • For me this was in the IntelliJ compiler options, not even in the SBT config, but it amounts to the same thing. Thanks for the pointer! – Toby Eggitt Jan 03 '18 at 22:31
0

The flag needs to be added to Scala compiler options. You can do this by adding the following line to your build.sbt file:

scalacOptions ++= Seq("-feature")
Tommi
  • 8,550
  • 5
  • 32
  • 51