问题标签 [dotty]

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 回答
117 浏览

scala - 柯里化类型“不带类型参数”

我想制作一种可以用来验证元组是否同质的类型。我写了这个,它应该确保所有元素T都等于XScastie):

无论出于何种原因,第三行都无法编译,并出现以下错误:

同质[X] 不带类型参数

但是,如果我Homogenous使用 2 个参数,它会编译,但我不能再使用上下文绑定(Scastie)。

我不明白为什么会这样。并不是说 lambda[T] =>>只是从匹配类型的特定情况下返回的,所以编译器应该意识到它Homogenous[X]总是需要一个参数。这是一个错误还是我做错了什么,是否有修复/解决方法?

0 投票
1 回答
383 浏览

scala - 如何让匹配类型在 Scala 3 中正常工作

我很好奇是否可以移植我的无类型项目以使用 Scala 3 进行类型化。这是我的开始:

它不编译,它抛出一个错误:

我认为这是因为它没有将模式匹配视为 s 的“类型过滤器”,因为它认为在这种情况下 s 具有 type "tag" | "attrs" | "children",而模式匹配情况应该将其减少为“标记” .

如何实现我请求的行为?

0 投票
1 回答
236 浏览

scala - Scala 3 / Dotty 中的依赖元组

我正在尝试使用依赖元组列表对依赖映射进行编码。这是我所拥有的不起作用的:

我得到的只是

我想不出一种模式匹配的好方法,d.second以便它的类型取决于 d.first。我可以添加.asInstanceOf[Array[String]].asInstanceOf[String]但这不是这里的目标,我正在尝试对代码进行类型检查。

0 投票
1 回答
53 浏览

scala - 使用依赖类型扩展

这是我的问题的最小再现:

如您所见,我正在尝试将 Key 的静态已知类型编码到类型参数中。这不像我可以将类型key作为 A 的类型参数,因为在我的真实示例中,它更像,class A(using g: blablah)(val key: g.Key) extends SuperClass[g.Mapping[key.type]]但这与上述问题无关。

只是我们不能在超类的参数中使用依赖类型吗?

更新

类型成员的编码产生相同的错误:

我仍然得到

0 投票
1 回答
125 浏览

scala - Scala 3 中枚举的不变默认类型

Scala 3 现在改进了定义 ADT 的方法。一种语法糖,可以消除以通常sealed trait方式进行操作的所有麻烦。

所以我会用一个例子来解释我的问题

在这种情况下Option1Option2是 type Adt[Nothing],因为类型参数A是协变的。

如果枚举是逆变的,它们将是 type Adt[Any]

但如果它是不变的呢?

0 投票
0 回答
266 浏览

scala - 隐式解析不再适用于 Scala 3 (Pure Config)

在我的 Scala 3 项目中,我想使用 Pure Config。但我得到以下异常:

我只是从文档中举了一个简单的例子:

我的build.sbt样子是这样的:

我错过了什么还是目前不可能?

0 投票
2 回答
153 浏览

scala - scala3 扩展方法类型参数

这是我的 scala2 代码到 scala3 的直接翻译

我需要在调用站点指定窄操作的类型,但是扩展方法不允许该语法。这个限制有什么最好的解决方法?

这样做的目的是能够缩小集合/尝试/任何东西中的类型。窄类型类将对内部的任何内容进行平面映射,比较运行时类型,如果它匹配将 B 包装在 F 中,或者返回一个空 F

0 投票
1 回答
376 浏览

scala - Scala 3(Dotty)模式将函数与宏引用匹配

我正在尝试通过 Scala 3.0.0-M2 中的宏获取函数名称我想出的解决方案使用TreeAccumulator

调用此代码时,会生成函数的名称:

我想知道这是否可以使用引号以更简单的方式完成。

0 投票
0 回答
85 浏览

scala - dotty / scala3 将映射的元组类型取消映射到其组成类型

我无法将映射的元组映射到其组成类型。如何以类型安全的方式实现read方法Impl[T]?目前我只是用Tuple.toArray/Tuple.fromArray

编辑(1):添加非类型安全代码

编辑 (2):当前不完整的尝试 - 包含 PolyFunction 错误

0 投票
1 回答
164 浏览

scala - Scala3 宏调用 TypeTree 的类型类实例(无类型 arg)

给这样Show的类型类,我想为案例类生成展示,比如

但是该showInstance部分不会编译,那么如何在Show[X]这里调用一个隐式?