dart - 格式错误的类型:…在这种情况下使用 'some-object'无效

标签 dart

我不确定是什么问题,还是运行时错误试图告诉我。我有一个试图在类的构造期间分配对象的类,但是,出现以下运行时错误:

malformed type: line 150 pos 26: using 'type_tree' in this context is invalid _output_type = new **type_tree.asUnknown();**



因此,我在构造期间无法分配的类思维上添加了一种测试方法:
class X {
  X() {
    type_tree doh = new type_tree.asUnknown();    <--- runtime error
  }
  void bogus() {
    type_tree output_type = new type_tree.asUnknown();
  }
}
...
X x = new X();
x.bogus();    <-- runtime error as well

但是我可以在类之外分配 type_tree 对象:
type_tree obj = new type_tree.asUnknown();    <-- works

我以前从未遇到过这种类型的运行时错误,也无法弄清楚问题出在哪里。关于寻找什么的任何想法?

下面是该代码的更详细的版本。

type_tree.dart
part of OpenCog.moses;
class type_tree extends NTree<type_node> {
  // Basic named constructors
  type_tree.asUnknown() {...}
  type_tree.asIllFormed() {...}

}

procedure_call_base.dart
part of OpenCog.moses;
class ProcedureCallBase extends operator_base {
  type_tree _output_type;
  factory ProcedureCallBase.from(...) {
     ProcedureCallBase(String name, int arity, combo_tree tr,
        [bool infer_type = false]) : super(name),
       _arity = arity,
       _body = tr {
       _output_type = new type_tree.asUnknown();  <-- runtime error
     }

    ...
    ProcedureCallBase v = new ProcedureCallBase(name, arity, tr, infer_type);
    return v;
  }
  // A test method called in unit test.
  void bogus() {
    type_tree output_type = new type_tree.asUnknown();  <-- also fails at runtime
  }

}

单元测试代码:
    test("Check valid definition", () {
      String proc = r"add(2) := +($1 $2)";

      ProcedureCallBase v = new ProcedureCallBase.from(proc); <-- fails in the constructor
      v.bogus();   <-- fails inside bogus method
    });

    test("Check type tree", () {
      type_tree doh = new type_tree.asUnknown();  <-- this works.
    });

基本上由于某种原因,在 ProcedureCallBase 的上下文中,我无法创建type_tree对象,我也不知道为什么。

Dart版本:1.21.0-dev.11.2

最佳答案

可能是名称冲突。我已经看到分析仪不能在所有情况下都捕获到这些。

关于dart - 格式错误的类型:…在这种情况下使用 'some-object'无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40936555/

相关文章:

flutter - 无法激活 Dart Devtools

android - 如何在 Flutter 中使用不同色调的色板?

flutter - 如何在 Dart 中将 double 转换为 int ?

firebase - 如何使查询仅在Flutter(Dart)数组内的Map中发现某些值?

ios - 如何使用flutter,wordpress在我的应用程序中添加拉动刷新?

flutter - Dart使用setter进行从概念上更改属性的操作

database - flutter 地传递数据

dart - 带有聚合物运行时错误的Dart2Js

flutter - 如何在 Flutter 的 BottomNavigationBarItem 中更改标签的颜色?

flutter - Flutter:textformfield问题