问题标签 [dart-analyzer]

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

dart - 如何使用 Dart 的分析器 API 获取可选参数的默认值?

我正在使用Dart分析器API,它允许我内省 Dart 代码。

这是一些示例代码:

注意flag参数的默认值是true.

假设我有一个实例,如何获得默认值ParameterElement

0 投票
2 回答
234 浏览

dart - Symbol with private identifier argument

I want to create a symbol equal to that of a private MethodMirror's simplename. However, Symbol's documentation states the argument of new Symbol must be a valid public identifier. If I try and create a const Symbol('_privateIdentifier') dart editor informs me that evaluation of this constant expression will throw an exception - though the program runs fine, and I am able to use it without any issues.

It seems the mirror system uses symbols.

Is the documentation/error flagging in dart editor a legacy bug due to an outdated dart analyzer? Or are there plans to enforce this public requirement in future? Is there another way to create a unique identifying symbol that will be minified to the same symbol as the declaration's simple name

0 投票
1 回答
485 浏览

dart - dart:代理注解用法

注释文档@proxy说明:

如果一个类被注释了@proxy,或者它实现了任何被注释的类,那么这个类被认为实现了关于静态类型分析的任何接口和任何成员。因此,将对象分配给任何类型的变量都不是静态类型警告,访问对象的任何成员也不是静态类型警告。

但是,给定以下代码:

飞镖编辑器警告

代码在未检查模式下按预期执行,但警告很烦人,据我所知,抑制该警告是@proxy标签唯一应该做的事情。

我是否误解了@proxy标签的用法,或者这是飞镖编辑器/分析器的错误?

0 投票
2 回答
79 浏览

dart - dartanalyzer 不会对缺少接口的实现发出警告

目前我正在试验和学习 Dart 语言。

我正在使用两个名为IAnimal的抽象方法创建一个抽象类,如下所示:

接下来我创建一个应该实现这 2 个方法的Dog类。

但是飞镖分析器确实抱怨这两种缺失的方法,这是预期的行为还是不支持?

0 投票
1 回答
201 浏览

dart - Dart 分析器:获取字段初始值的类型

如何使用Dart分析器API 获取字段的初始值表达式的类型?

例如,如果初始值表达式是'text',我想得到String. 如果是函数调用,我想获取函数的返回类型。

0 投票
0 回答
215 浏览

unit-testing - 测试生成的 Dart 代码

序言

我使用source_gen生成Dart代码。我想测试我的生成器的输出(使用测试包)。我查看了source_gen的测试,并使用了json_serializable_test.dart作为模板。我可以调用generate我的生成器并将结果作为字符串获取。现在我想测试一下,类和方法是否按我的预期生成。可悲的是, json_serializable_test.dart中缺少这种测试:

我修改了助手(如_getCompilationUnitForString)以传递源(而不是总是使用_testSource)并获取其分析器元素。因此,我可以将生成器的输入和预期输出指定为文件或字符串,并获取输入、输出和预期输出的分析器元素。

方法

我想出了这种通过名称和字段声明匹配类的原始方法:

此解决方案可能容易出错,因为我通过字符串表示来比较字段。除此之外,失配描述非常差。如何改进我的匹配器?

Ps:有没有更好的方法来比较生成的代码和期望?

0 投票
1 回答
2403 浏览

dart - 禁止使用受保护成员的提示

meta包提供了一个注释(除其他之外),以获取有关在直接子类之外使用受保护成员的@protected分析器提示或警告。

信息:成员“selectedChildrenChanged”只能在“MenuItem”子类的实例成员中使用([bwu_ng_quick_nav] test/menu_item_test.dart:108)

我对单元测试中的这些提示不感兴趣。

我怎样才能抑制这样的提示?

0 投票
1 回答
960 浏览

dart - 如何在 Webstorm 中设置强模式 Dart Analyzer?

在我的 Dart yaml 文件中,我有

但它什么也没做。我还添加了分析器:

我错过了一些东西(我认为是大脑)。请问是什么?

谢谢

史蒂夫

0 投票
1 回答
423 浏览

dart - Dart 覆盖一元减号运算符

根据语言规范(10.1.1 运算符),我正在尝试覆盖一些运算符。

覆盖“减号”和“一元减号”运算符时出现分析器错误 - 我没有得到:

'运算符“-”未在类缩进上定义'

但在课堂上我已经定义了它:

我像使用它一样使用它myInstance--;,它确实有效,但分析器仍然抱怨,由于错误,我无法提交代码“干净”。

我查找了一个旧线程(Why does overriding negate cause static warning in Dart),但我认为这与这里无关。

欢迎任何建议。

0 投票
1 回答
514 浏览

dart - How to get subtypes using `DartType` class from the `analyzer`?

How can I get the subtypes of an element using the class DartType from the analyzer package?