2014-12-02 46 views
3

這裏一個基本的代碼枚舉誤差修改:dartanalyser產生在我的枚舉

enum Lock {ON, OFF} 

void main(){ 
    var lock = Lock.ON; 
    print(lock); 

} 

我可以運行它,它打印:

Lock.ON 

但是,當我在我的代碼運行dartanalyser

$dartanalyzer enum_demo.dart 
Analyzing [enum_demo.dart]... 
[error] Expected a method, getter, setter or operator declaration (/Users/nicolasfrancois/Documents/dart/enum_demo.dart, line 1, col 1) 
[error] Unexpected token 'enum' (/Users/nicolasfrancois/Documents/dart/enum_demo.dart, line 1, col 1) 
[error] Expected a method, getter, setter or operator declaration (/Users/nicolasfrancois/Documents/dart/enum_demo.dart, line 1, col 11) 
[error] Unexpected token '{' (/Users/nicolasfrancois/Documents/dart/enum_demo.dart, line 1, col 11) 
[error] Variables must be declared using the keywords 'const', 'final', 'var' or a type name (/Users/nicolasfrancois/Documents/dart/enum_demo.dart, line 1, col 12) 
[error] Expected to find ';' (/Users/nicolasfrancois/Documents/dart/enum_demo.dart, line 1, col 16) 
[error] Unexpected token '}' (/Users/nicolasfrancois/Documents/dart/enum_demo.dart, line 1, col 19) 
[error] Expected a method, getter, setter or operator declaration (/Users/nicolasfrancois/Documents/dart/enum_demo.dart, line 1, col 19) 
[warning] Undefined class 'Lock' (/Users/nicolasfrancois/Documents/dart/enum_demo.dart, line 1, col 6) 
[warning] Undefined name 'Lock' (/Users/nicolasfrancois/Documents/dart/enum_demo.dart, line 5, col 13) 
8 errors and 2 warnings found. 

這是一個錯誤的代碼與我的枚舉的錯誤?

編輯: 我的鏢的版本是: Dart VM version: 1.8.0 (Thu Nov 27 01:01:55 2014) on "macos_x64"

+0

達特什麼版本您使用的? ('dart --version') – 2014-12-02 13:01:36

+0

我認爲這是最後一個: Dart VM版本:1.8.0(Thu Nov 27 01:01:55 2014)on「macos_x64」 – 2014-12-02 13:11:29

+0

Dart VM版本:1.9.0-edge。 42061(2014年12月2日星期二02:49:13)關於「linux_x64」。 DartEditor不會抱怨,但是從命令行運行'dartanalyzer'確實如此。我認爲你應該在http://dartbug.com/new – 2014-12-02 13:28:46

回答

6

你必須使用一個未公開的標誌:

dartanalyzer --enable-enum enum_demo.dart 
+0

好的!我認爲這是一個錯誤,因爲枚舉應該在Dart 1.8.0之前不支持標誌的情況下被支持。據我所知,只有'await' /'async'仍然是實驗性的。 – 2014-12-02 13:31:14

+0

由於您必須手動在編輯器中啓用enums_,因此使用標誌看起來很好。但是這個標誌應該用'dartanalyzer --help'顯示。 – 2014-12-02 13:35:04

+0

以下是相關問題http://dartbug.com/21415。我記得讀過這個評論https://code.google.com/p/dart/issues/detail?id=21416#c10,但它似乎只適用於虛擬機,而不適用於分析器。 – 2014-12-02 13:41:45