for式のジェネレータ部分にリテラル識別子を使うと、IntelliJの構文チェックツールではエラーだが、実行できる
環境
- Scala 2.12.5
- IntelliJ IDEA 2018.1 (Community Edition)
- JRE: 1.8.0_152-release-1136-b20 amd64
- JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
- Windows 10
起こったこと
for式のジェネレータ部分に、リテラル識別子を使いました。
def sampleOpt(i: Int): Option[Int] = Some(i)
val a = for (
`type` <- sampleOpt(10)
) yield `type` * 2
println("a=" + a) //⇒ a=Sample(20)
質問
上記の現象は、何が起こっているのでしょうか?
- IntelliJの構文チェックツールのバグでしょうか?
- Scalaの構文ルールに違反しているのでしょうか?