| Index: lib/compiler/implementation/compiler.dart
|
| diff --git a/lib/compiler/implementation/compiler.dart b/lib/compiler/implementation/compiler.dart
|
| index 0e68c7d10193a893b23b85f71cab83b2cfa2d320..ab339998db479527b8db047bf157f6b2e27f8758 100644
|
| --- a/lib/compiler/implementation/compiler.dart
|
| +++ b/lib/compiler/implementation/compiler.dart
|
| @@ -35,7 +35,7 @@ class Compiler implements DiagnosticListener {
|
| Universe universe;
|
| String assembledCode;
|
| Namer namer;
|
| - Types types;
|
| + final Types types;
|
|
|
| final Tracer tracer;
|
|
|
| @@ -222,7 +222,7 @@ class Compiler implements DiagnosticListener {
|
| functionClass = coreLibrary.find(const SourceString('Function'));
|
| listClass = coreLibrary.find(const SourceString('List'));
|
| closureClass = jsHelperLibrary.find(const SourceString('Closure'));
|
| - dynamicClass = jsHelperLibrary.find(const SourceString('Dynamic'));
|
| + dynamicClass = types.dynamicType.element;
|
| nullClass = jsHelperLibrary.find(const SourceString('Null'));
|
| }
|
|
|
| @@ -266,14 +266,15 @@ class Compiler implements DiagnosticListener {
|
| void runCompiler(Uri uri) {
|
| scanBuiltinLibraries();
|
| mainApp = scanner.loadLibrary(uri, null);
|
| - final Element mainMethod = mainApp.find(MAIN);
|
| - if (mainMethod === null) {
|
| + final Element mainElement = mainApp.find(MAIN);
|
| + if (mainElement === null) {
|
| withCurrentElement(mainApp, () => cancel('Could not find $MAIN'));
|
| } else {
|
| - withCurrentElement(mainMethod, () {
|
| - if (!mainMethod.isFunction()) {
|
| - cancel('main is not a function', element: mainMethod);
|
| + withCurrentElement(mainElement, () {
|
| + if (!mainElement.isFunction()) {
|
| + cancel('main is not a function', element: mainElement);
|
| }
|
| + FunctionElement mainMethod = mainElement;
|
| FunctionParameters parameters = mainMethod.computeParameters(this);
|
| if (parameters.parameterCount > 0) {
|
| cancel('main cannot have parameters', element: mainMethod);
|
| @@ -281,7 +282,7 @@ class Compiler implements DiagnosticListener {
|
| });
|
| }
|
| native.processNativeClasses(this, universe.libraries.getValues());
|
| - enqueue(new WorkItem.toCompile(mainMethod));
|
| + enqueue(new WorkItem.toCompile(mainElement));
|
| codegenProgress.reset();
|
| while (!worklist.isEmpty()) {
|
| WorkItem work = worklist.removeLast();
|
| @@ -406,10 +407,7 @@ class Compiler implements DiagnosticListener {
|
| }
|
|
|
| reportWarning(Node node, var message) {
|
| - if (message is ResolutionWarning) {
|
| - // TODO(ahe): Don't supress this warning when we support type variables.
|
| - if (message.message.kind === MessageKind.CANNOT_RESOLVE_TYPE) return;
|
| - } else if (message is TypeWarning) {
|
| + if (message is TypeWarning) {
|
| // TODO(ahe): Don't supress these warning when the type checker
|
| // is more complete.
|
| if (message.message.kind === MessageKind.NOT_ASSIGNABLE) return;
|
|
|