问题标签 [scalac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
95 浏览

scala - Scala 编译器无法在 ScalaIDE 中编译

我正在尝试在 ScalaIDE 的帮助下开发 Scala 编译器项目。我按照本指南设置开发环境。当我现在尝试构建上述项目时,将无法构建反射项目。相反,我通过控制台输出收到以下错误:

通过控制台尝试了项目提供的 ANT 脚本后,一切似乎都运行良好。

有谁知道我是否缺少隐藏的编译器标志、依赖项或类似的东西?

谢谢!

0 投票
1 回答
159 浏览

scala - 如何生成自己的 ScalaSig?

我已经动态定义了一个 Scala 类,但是为了“正确”使用它,它需要有一个 ScalaSig。

那么,我如何在正常编译之外生成 ScalaSig 呢?也许来自一棵树?也许像:

但是pickler从哪里来?

感谢您的任何建议-朱利安

0 投票
1 回答
899 浏览

scala - scala 不会警告未使用的计算或值

我有这个小斯卡拉示例:

我觉得scala应该警告'z'和'x match ...'未被使用。我没有注意到任何编译器选项可以打开更多警告。我正在使用 scala 2.10.1。

想法?谢谢!

0 投票
2 回答
157 浏览

scala - 什么是在做 Scalac -Xprint:typer 时?

我写了一点 Scala

scalac像这样运行它:

我的问题是,输出中的<stable>和是什么<accessor>?他们叫什么(比如,他们有一个集体名词),他们做什么?

猜测一下,我会说这意味着它们是 vals 而不是 vars,并且意味着它是来自对象外部的可调用对象......

0 投票
0 回答
42 浏览

scala - 测试不可编译性 - scala

我在代码中添加了类型安全改进。

现在我想测试一下,有些代码不会编译。是否有可能在测试中运行 scala 编译器,为其提供一些代码并匹配不可编译性?

0 投票
2 回答
7369 浏览

scala - 如何找到 scala 编译器标志/选项的描述?

如何找到最新 scalac 版本的所有标志?谷歌搜索几个小时后,我发现只有过时的 文档。(例如,他们甚至没有提到“-feature”标志)。

有没有办法从 scalac 或其他任何东西中获取带有描述的编译器标志列表?

0 投票
2 回答
278 浏览

scala - 在Scala中按名称编译和运行函数?

跟随这篇硕士论文[1]学习 Scala 中的解析,但不知道如何让这个例子工作(见第 28-29 页):

[1] E. Labun,“Scala 中的组合器解析”,Technische Hochschule Mittelhessen,2012 年。

不幸的是,我无法让它在 Scala 2.9.3 或 Scala 2.11.0-M4 中运行:

然后尝试使用 2.11 scalac 和 scala:

0 投票
1 回答
124 浏览

scala - 为什么 scalac 不优化简单的“for”构造中的开销?

下面是一段代码示例,乍一看,它看起来像是scalac可以轻松优化掉的东西:

上面的代码打印出来76.30068413477652,随着迭代次数的增加,这个比率似乎变得更糟。

是否有特殊原因scalac选择优化为生成的for (i <- L to/until H)任何字节码形式?可能是因为 Scala 选择保持简单,并期望开发人员在需要原始循环速度时简单地求助于性能更高的形式,例如循环?如果是,考虑到如此简单的 for 循环的频率,为什么这么好?javacfor (int i = L; i < H; i += 1)while

0 投票
0 回答
431 浏览

scala - scalac 的依赖文件选项不起作用?

我正在阅读有关为 scalac 设置 ant 任务的先前堆栈溢出问题: FSC 每次都重新编译

奇怪的是,当我测试 -dependencyfile 选项时,我发现在任何地方都没有生成依赖文件。我正在使用 ubuntu 的 scalac 2.9.1 以及 ant 任务中的官方 2.10.2 jar 对此进行测试。不过,命令行实用程序和 ant 任务似乎都接受了我的输入而没有抱怨任何事情(它们在语法上是正确的吗?)。

我是否以错误的方式使用此功能?

例如从命令行:

来自蚂蚁任务

更新:

我在命令行中添加了 -make:transitive 选项,它确实为我生成了一个文件,但我第二次运行它,scalac 简单地崩溃了。$ scalac -make:transitive -dependencyfile scala_dependencies *.scala 重新编译 2 个文件警告:有 1 个弃用警告;使用 -deprecation 重新运行以获取详细信息错误:scala.tools.nsc.io.Path$.apply(Path.scala:73) 处的 java.lang.NullPointerException at scala.tools.nsc.dependencies.DependencyAnalysis$$anonfun$saveDependencyAnalysis $1.apply(DependencyAnalysis.scala:33) at scala.tools.nsc.dependencies.DependencyAnalysis$$anonfun$saveDependencyAnalysis$1.apply(DependencyAnalysis.scala:33) at scala.tools.nsc.dependencies.Files$FileDependencies$$anonfun $emit$1$2$$anonfun$apply$6.apply(Files.scala:96) 在 scala.tools.nsc.dependencies。

对于 2.10.2,编译器抱怨:警告:-make 已弃用:此选项未维护。使用 sbt 或 IDE 进行选择性重新编译。我仍然找不到生成文件

0 投票
2 回答
2060 浏览

scala - 当 anonfun$1 在 Scala 中变成 anonfun$m1$1 (反之亦然)?

谁能解释为什么 Scala 在以下情况下给出了两个不同的名称?为什么 Scala 不能在每种情况下都给出相同的名称?!有某种我还不知道的一致性吗?它必须与eta-expansion有关,对吧?

上面给出了List(anonfun$1)- 注意元素的名称 -anonfun$1而下面给出anonfun$m1$1。为什么?

我是否还可以要求一个更简单的案例来证明差异(也许不使用Seq)?