Open peter-ahe-google opened 10 years ago
FWIW, dart2js/cfe now reports eight errors for this code:
class Logger {
static L1 root = L1();
}
class L1 {
int level;
}
Logger.root.level = 3;
error: The name 'Logger' is already defined. error: Functions must have an explicit list of parameters. error: A function body must be provided. error: Expected a method, getter, setter or operator declaration. error: Functions must have an explicit list of parameters. error: Expected a method, getter, setter or operator declaration. error: A function body must be provided. error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
See the discussion in https://groups.google.com/a/dartlang.org/d/msg/misc/gs6DzCA-mHk/-Gy3TCY5JNYJ.
The user is new to Dart and used to top-level expressions in JavaScript. Tried running this program:
library altapp;
import 'package:logging/logging.dart';
Logger.root.level = Level.ALL;
The problem was lack of main method. The error is:
js.dart:5:1: Error: Can't have modifier 'StringToken(Logger)' here. Try replacing modifier 'StringToken(Logger)' with 'var', 'final', or a type. Logger.root.level = Level.ALL; ^^^^^^ js.dart:5:12: Error: Can't have modifier 'SymbolToken(.)' here. Try replacing modifier 'SymbolToken(.)' with 'var', 'final', or a type. Logger.root.level = Level.ALL; ^ js.dart:1:1: Error: Could not find 'main'. library altapp;
Error: Compilation failed.
Perhaps dart2js can do better.