Natsu

Results 7 issues of Natsu

Working for #26

feature
work-in-progress

目前的延迟分析是通过跳过各实体声明的类型及初始化器部分并缓存跳过的token,并在第2阶段进行解析实现的,此方式实现简单,且能够正确处理Compiler Action,但若要以同样的方式支持模板,此方式将因每次实例化都需全部重新解析一遍而带来性能问题,并且未实例化的模板将会无法进行解析而无法高亮和查找符号,考虑参考roslyn实现将其实现为2套ast,第1套ast不进行绑定,绑定完毕后替换为第2套ast

enhancement

如此将可以并行地对多段源代码进行分析

enhancement

Concept 用于表示一个概念以及与这个概念相关的一系列约束,Concept 可以有一系列特殊化 Concept,可以通过特定方法自动转型到特殊化 Concept。 表现形式设计中。 最终期望达成的效果: class NullType {} def const null : NullType; // 或类似的形式 $Template($TypeArg(T)) concept Nullable; // 待设计 class Foo { def Value : int }...

enhancement

计划将模板和声明模板作为 CompilerAction实现。 通过设计 CompilerAction 的语法使得声明模板的语法接近普通声明,计划为: compiler-action: '$' compiler-action-name ['(' compiler-action-argument-list ')'] [compiler-action-argument] ['{' compiler-action-argument-seq '}'] 这将同时使得 attribute 可以作为 CompilerAction 实现并可以应用于声明等地方。 通过设计别名,并使其可以用于表示 CompilerAction 可以不需要带上 $ 就可以使用模板。 通过计划名为 $Template() 的 CompilerAction,于 compiler-action-argument-list...

enhancement

Reproduce steps: Save the code as `test.dart`: ```dart import "dart:developer"; // Uncomment to get correct behavior // import "dart:math" as math; // @pragma("vm:entry-point") // final l = math.log; void main()...

area-vm
P3
type-bug
crash
triaged
triage-automation