给出以下代码(不是双关语):
trait Display[A]:
def display(value: A): String
object Display:
given stringDisplay: Display[String] with
def display(input: String) = input
IntelliJ 显示以下警告:
鉴于以 开头的成员定义
with
不再受支持;请改用{...}
或:
后跟换行符。
这很奇怪,因为官方文档仍然显示given...with
,并且我在网上找不到与此消息相对应的任何内容。
此外,我不知道如何应用该建议,因为以下内容均无法编译:
given stringDisplay: Display[String] {
def display(input: String) = input
}
given stringDisplay: Display[String]:
def display(input: String) = input
应用 IntelliJ 建议的正确语法是什么?使用 Scala 3.6.2。
在研究了 Scala 更改日志和提交之后,我发现提交 14acdc0支持SIP-64,它改变了上下文绑定和给定子句的语法。
新的语法是将 替换为
with
,:
正如消息所建议的那样。但是,IntelliJ CE 2024.3.1.1 无法识别此语法,scalameta 也无法识别。我为每个都开了票。斯卡拉梅塔: https: //github.com/scalameta/scalameta/issues/4090
IntelliJ:https ://youtrack.jetbrains.com/issue/SCL-23372/Fails-to-recognize-SIP-64-syntax