gpt4 book ai didi

f# - F# 如何同时报告语法和语义错误?

转载 作者:行者123 更新时间:2023-12-05 00:59:37 25 4
gpt4 key购买 nike

这是一个包含语法和语义错误的 F# 代码:

let a b = b b
let x = (if)

编辑:F# for Vim 报告无限类型错误和语法错误,但 fscfsi仅在 sytnax 错误处停止。

enter image description here

F# for Vim 如何同时报告语法和语义错误,而 F# 编译器只报告语法错误?

最佳答案

F# 编译器(由 Vim 插件在封面下使用)具有错误恢复机制 - 这意味着当它找到无法解析的表达式时,它会尝试用使其成为有效 F# 表达式的内容填充它。

当你写 let a = (if) ,我猜编​​译器在内部将其扩展为类似let a = (if _ then _ else _)在哪里 _是一个特殊的“无效表达式”占位符。

这使得对无效的 F# 代码进行类型检查成为可能,这在编写代码(通常是无效的)时在 IDE 中非常有用,因为类型信息用于自动完成等。

在直接运行编译器时报告自动“修复”代码中的类型检查错误是可能的,但可能不是那么有用 - 填充漏洞时,编译器可能并不总是按照您的预期做,所以这可能会产生奇怪的错误信息。

关于f# - F# 如何同时报告语法和语义错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30566630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com