Dart库和零件不是双向解析的

时间:2012-11-04 21:48:04

标签: dart dart-editor

我有一个库'foo',它由一个部分'bar'组成,并导入dart:io库。库和部件在'foo.dart'中声明如下:

// in foo.dart

library foo;
import 'dart:io';
part "bar.dart"; // resolves

class Foo {
  Bar bar = new Bar(); // resolves
  HttpServer server = new HttpServer(); // resolves
}

'foo.dart'和'bar.dart'位于同一目录中。

'bar.dart'返回库foo,如下所示:

// in bar.dart

part of foo; // does not resolve

class Bar {
  Foo foo = new Foo(); // does not resolve
  HttpServer server = new HttpServer // does not resolve
}

但在Dart编辑器中,我在'bar.dart'中看到一个警告,说'无法解决foo'。因此,我在foo.dart中声明的任何导入(例如'dart:io')都不能用于bar.dart,也不是我的任何foo.dart定义,并且因为bar.dart是foo的一部分,所以不允许进口任何其他图书馆或宣布任何其他部分。

我想以这样的方式组织我的代码: *我带入foo.dart的任何导入都可用于bar.dart(和其他源代码部分) *在一个库源部件中创建的库定义可供其他库源部件使用。 *(很明显)bar.dart中的库定义可用于foo.dart(这已按预期工作)

有人可以帮我理解如何完成这些工作吗?

1 个答案:

答案 0 :(得分:4)

我认为这只是编辑中的一个错误。你试过运行你的程序吗?它应该工作。

编辑器有时会发出卡住的警告,并关闭文件或关闭编辑器以查找真正卡住的文件,通常会将其清除。我会看看我是否找到了错误报告,因此您可以将其加注,或者如果它一直发生在您身上,可能会添加一个日志文件。