環境

  • 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 IDEAのエディタウィンドウでは、"Cannot resolve symbol `type"というエラーが表示されました。
    画像の説明をここに入力
  • ビルド&実行はできました。

質問

上記の現象は、何が起こっているのでしょうか?

  • IntelliJの構文チェックツールのバグでしょうか?
  • Scalaの構文ルールに違反しているのでしょうか?