问题标签 [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.
dart - 带有 html 和引导程序包的 DART pubspec.yml 错误
引导程序版本 3.3.7 出现错误。当我将引导程序更新到 4.0.0 时,错误消失了,但我不想更新,因为有很多重大更改。
解决依赖关系... 包 html 没有匹配 >=0.12.2+1 <0.13.0 的版本源自: - 分析器 0.29.11 取决于版本 >=0.12.0 <1.14.0 - 角度 4.0.0+2取决于版本 >=0.12.0 <0.14.0 - dart_to_js_script_rewriter 1.0.1 取决于版本 ^0.12.2+1
这是我的 pubspec.yml 环境:sdk: '>=1.24.0 <2.0.0'
依赖项: angular: ^4.0.0+2 angular_forms: ^1.0.0 angular_router: ^1.0.2 angular_components: ^0.6.0 json_object: 任意 http: 任意 html: 任意 angular_dart_ui_bootstrap: '>=0.0.1' ng_bootstrap: ^0.8 .5 引导程序:“^3.3.7” dartson:“^0.2.7” browser_detect:“^1.0.4” 存档:“^1.0.33” 构建:“^0.11.0” 国际:“^0.15.6”流变压器:“^0.3.0” rxdart:“^0.10.2”
dev_dependencies:浏览器:^0.10.0 dart_to_js_script_rewriter:^1.0.1 测试:^0.12.0 angular_test:^1.0.0
变形金刚:- dartson - 角度:entry_points:- web/main.dart - test/**_test.dart
test/pub_serve: $include: test/**_test.dart
dart_to_js_script_rewriter
dart - Dart Analyzer:查找类或其后代的实例
我正在使用该build
包获取.dart
文件并查找某个类或其子类的定义。也可以ClassElement
用于子类吗?
我只希望特定类的单个定义在项目的一个文件中,但没有理由客户不能子类化并疯狂。
dart - 分析器查找对潜在空值的未经检查的访问
我试图找出在 Dart 中通过编译器/分析器支持避免未经检查地访问 null 的状态是什么。
在完成了几年的 TypeScript 之后,他们严格的 default-non-null 是在使代码更安全方面向前迈出的一大步。比起 Scala 的 Option-semantics,我更喜欢它。
是否有一个分析器选项能够通过流量分析追踪(所有)潜在的空访问?
例如,以下代码应该会失败:
它应该报告如下:由于在第 6 行中传递了 null,因此第 2 行中未检查的 null 访问。
因此,作为开发人员,我可以决定修复第 1 行或第 2 行。
dart - 如何在 Dart Analyzer / source-gen 中从某个元素获取 AstNode?
我source_gen
用来通过 Dart 解析一些 Dart 文件analyzer
。
我正在扩展GeneratorForAnnotation<>
和覆盖方法
FutureOr<String> generateForAnnotatedElement(Element element, ConstantReader annotation, BuildStep buildStep)
。这个方法给了我一个基本元素,我导航它直到找到其他元素,比如 a MethodElement
。
一旦我掌握了这个MethodElement
,我想详细分析方法的块。我想要这样的东西:
更详细地说:
不幸的是,computeNode
已弃用。如果我尝试调用它,我会得到:
我的问题:我怎样才能得到AstNode
?
dart - 如何使用 dartanalyzer 忽略文件?
我想忽略 bin/lib/ 和 test/ 中所有以 .g.dart、.inject.dart、.inject.summary 结尾的文件
忽略文件的语法是什么dartanalyzer
?我尝试将此部分添加到我的 analysis_options.yaml 文件中:
到我的 analysis_options.yaml ,当我dartanalyzer
在我的项目上运行时,它没有考虑到这一点。我还尝试使用dartanalyzer --options analysis_options.yaml
以确保它会在没有运气的情况下使用这些选项。
我发现可以使用dartanalyzer
cli 工具的唯一语法是:
但 IntelliJ 说这是一个错误(Undefined alias
。)
如果我使用这种语法:
IntelliJ 中嵌入的分析器会正确过滤这些文件,但dartanalyzer
cli 工具不会。
有什么方法可以同时使用 IntelliJ 和dartanalyzer
CLI 工具?
笔记:
我在用着
dart - NNBD:String 和 Null 的最小上限
在为 Dart Analyzer 中的某些问题打补丁时,我需要了解 Null 本身是否被视为可空类型。
目前,Dart 的类型代数为 String 和 Null 计算的最小上界是 String。
但是,在我看来,String 和 Null 的类型联合是可以为空的 String。
有补丁的票:https ://github.com/dart-lang/sdk/issues/38585注意补丁还是有把T扩大到T的bug?如果闭包同时返回 T 和 null。
奖金问题(票https://github.com/dart-lang/sdk/issues/38623):Null 本身是可以为空的类型,应该以'?'为后缀吗?
我的观点是矛盾的证明(LUB 是最小上限函数):
- 假设 Null 不可为空。
- 这意味着 Null 和 Null?是不同的类型。
- LUB(T, Null) = T?,即结合 T 和 Null 将 T 扩大到 T?
- 因此,LUB(Null, Null) = Null?
- 这违反了 LUB 的自反性,这意味着 LUN(Null, Null) = Null
- 因此假设是错误的。
dart - 分析器在 Visual Studio Code 中不起作用……是吗?
在 Visual Studio Code 中,在调用 Dart 函数时省略 @required 参数似乎不会出现错误。我必须做些什么才能让分析仪工作吗?还是错误被标记而我只是没有看到它们?任何帮助,将不胜感激 ...
dart - 已启用的实验停止被分析器拾取
我正在运行 Dart 2.8.0-dev.18.0 并且我想使用不可为空的类型。这就是为什么我将以下内容添加到analysis_options.yaml
:
一切正常,直到我再次打开电脑时它神秘地停止工作。无论我现在做什么,我都会收到一条消息说This requires the 'non-nullable' experiment to be enabled.
这是一个纯 Dart 应用程序。
此外,当我打开分析服务器诊断时,我看到“上下文”选项卡中启用了“不可为空”功能。