| OLD | NEW | 
|    1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file |    1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 
|    2 // for details. All rights reserved. Use of this source code is governed by a |    2 // for details. All rights reserved. Use of this source code is governed by a | 
|    3 // BSD-style license that can be found in the LICENSE file. |    3 // BSD-style license that can be found in the LICENSE file. | 
|    4  |    4  | 
|    5 part of dart2js; |    5 part of dart2js; | 
|    6  |    6  | 
|    7 /** |    7 /** | 
|    8  * If true, print a warning for each method that was resolved, but not |    8  * If true, print a warning for each method that was resolved, but not | 
|    9  * compiled. |    9  * compiled. | 
|   10  */ |   10  */ | 
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  188   ParserTask parser; |  188   ParserTask parser; | 
|  189   PatchParserTask patchParser; |  189   PatchParserTask patchParser; | 
|  190   LibraryLoader libraryLoader; |  190   LibraryLoader libraryLoader; | 
|  191   TreeValidatorTask validator; |  191   TreeValidatorTask validator; | 
|  192   ResolverTask resolver; |  192   ResolverTask resolver; | 
|  193   closureMapping.ClosureTask closureToClassMapper; |  193   closureMapping.ClosureTask closureToClassMapper; | 
|  194   TypeCheckerTask checker; |  194   TypeCheckerTask checker; | 
|  195   ti.TypesTask typesTask; |  195   ti.TypesTask typesTask; | 
|  196   Backend backend; |  196   Backend backend; | 
|  197   ConstantHandler constantHandler; |  197   ConstantHandler constantHandler; | 
 |  198   ConstantHandler metadataHandler; | 
|  198   EnqueueTask enqueuer; |  199   EnqueueTask enqueuer; | 
|  199   CompilerTask fileReadingTask; |  200   CompilerTask fileReadingTask; | 
|  200  |  201  | 
|  201   static const SourceString MAIN = const SourceString('main'); |  202   static const SourceString MAIN = const SourceString('main'); | 
|  202   static const SourceString CALL_OPERATOR_NAME = const SourceString('call'); |  203   static const SourceString CALL_OPERATOR_NAME = const SourceString('call'); | 
|  203   static const SourceString NO_SUCH_METHOD = const SourceString('noSuchMethod'); |  204   static const SourceString NO_SUCH_METHOD = const SourceString('noSuchMethod'); | 
|  204   static const int NO_SUCH_METHOD_ARG_COUNT = 1; |  205   static const int NO_SUCH_METHOD_ARG_COUNT = 1; | 
|  205   static const SourceString INVOKE_ON = const SourceString('invokeOn'); |  206   static const SourceString INVOKE_ON = const SourceString('invokeOn'); | 
|  206   static const SourceString RUNTIME_TYPE = const SourceString('runtimeType'); |  207   static const SourceString RUNTIME_TYPE = const SourceString('runtimeType'); | 
|  207   static const SourceString START_ROOT_ISOLATE = |  208   static const SourceString START_ROOT_ISOLATE = | 
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  256       parser = new ParserTask(this), |  257       parser = new ParserTask(this), | 
|  257       patchParser = new PatchParserTask(this), |  258       patchParser = new PatchParserTask(this), | 
|  258       resolver = new ResolverTask(this), |  259       resolver = new ResolverTask(this), | 
|  259       closureToClassMapper = new closureMapping.ClosureTask(this), |  260       closureToClassMapper = new closureMapping.ClosureTask(this), | 
|  260       checker = new TypeCheckerTask(this), |  261       checker = new TypeCheckerTask(this), | 
|  261       typesTask = new ti.TypesTask(this, enableConcreteTypeInference), |  262       typesTask = new ti.TypesTask(this, enableConcreteTypeInference), | 
|  262       constantHandler = new ConstantHandler(this, backend.constantSystem), |  263       constantHandler = new ConstantHandler(this, backend.constantSystem), | 
|  263       enqueuer = new EnqueueTask(this)]; |  264       enqueuer = new EnqueueTask(this)]; | 
|  264  |  265  | 
|  265     tasks.addAll(backend.tasks); |  266     tasks.addAll(backend.tasks); | 
 |  267     metadataHandler = new ConstantHandler(this, backend.constantSystem); | 
|  266   } |  268   } | 
|  267  |  269  | 
|  268   Universe get resolverWorld => enqueuer.resolution.universe; |  270   Universe get resolverWorld => enqueuer.resolution.universe; | 
|  269   Universe get codegenWorld => enqueuer.codegen.universe; |  271   Universe get codegenWorld => enqueuer.codegen.universe; | 
|  270  |  272  | 
|  271   int getNextFreeClassId() => nextFreeClassId++; |  273   int getNextFreeClassId() => nextFreeClassId++; | 
|  272  |  274  | 
|  273   void ensure(bool condition) { |  275   void ensure(bool condition) { | 
|  274     if (!condition) cancel('failed assertion in leg'); |  276     if (!condition) cancel('failed assertion in leg'); | 
|  275   } |  277   } | 
| (...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  730     withCurrentElement(element, |  732     withCurrentElement(element, | 
|  731                        () => resolver.resolveTypedef(element)); |  733                        () => resolver.resolveTypedef(element)); | 
|  732   } |  734   } | 
|  733  |  735  | 
|  734   FunctionType computeFunctionType(Element element, |  736   FunctionType computeFunctionType(Element element, | 
|  735                                    FunctionSignature signature) { |  737                                    FunctionSignature signature) { | 
|  736     return withCurrentElement(element, |  738     return withCurrentElement(element, | 
|  737         () => resolver.computeFunctionType(element, signature)); |  739         () => resolver.computeFunctionType(element, signature)); | 
|  738   } |  740   } | 
|  739  |  741  | 
|  740   bool isLazilyInitialized(VariableElement element) { |  | 
|  741     Constant initialValue = compileVariable(element); |  | 
|  742     return initialValue == null; |  | 
|  743   } |  | 
|  744  |  | 
|  745   /** |  | 
|  746    * Compiles compile-time constants. Never returns [:null:]. |  | 
|  747    * If the initial value is not a compile-time constants reports an error. |  | 
|  748    */ |  | 
|  749   Constant compileConstant(VariableElement element) { |  | 
|  750     return withCurrentElement(element, () { |  | 
|  751       return constantHandler.compileConstant(element); |  | 
|  752     }); |  | 
|  753   } |  | 
|  754  |  | 
|  755   Constant compileVariable(VariableElement element) { |  | 
|  756     return withCurrentElement(element, () { |  | 
|  757       return constantHandler.compileVariable(element); |  | 
|  758     }); |  | 
|  759   } |  | 
|  760  |  | 
|  761   reportWarning(Node node, var message) { |  742   reportWarning(Node node, var message) { | 
|  762     if (message is TypeWarning) { |  743     if (message is TypeWarning) { | 
|  763       // TODO(ahe): Don't supress these warning when the type checker |  744       // TODO(ahe): Don't supress these warning when the type checker | 
|  764       // is more complete. |  745       // is more complete. | 
|  765       if (identical(message.message.kind, MessageKind.NOT_ASSIGNABLE)) return; |  746       if (identical(message.message.kind, MessageKind.NOT_ASSIGNABLE)) return; | 
|  766       if (identical(message.message.kind, MessageKind.MISSING_RETURN)) return; |  747       if (identical(message.message.kind, MessageKind.MISSING_RETURN)) return; | 
|  767       if (identical(message.message.kind, MessageKind.MAYBE_MISSING_RETURN)) ret
     urn; |  748       if (identical(message.message.kind, MessageKind.MAYBE_MISSING_RETURN)) ret
     urn; | 
|  768       if (identical(message.message.kind, MessageKind.ADDITIONAL_ARGUMENT)) retu
     rn; |  749       if (identical(message.message.kind, MessageKind.ADDITIONAL_ARGUMENT)) retu
     rn; | 
|  769       if (identical(message.message.kind, MessageKind.METHOD_NOT_FOUND)) return; |  750       if (identical(message.message.kind, MessageKind.METHOD_NOT_FOUND)) return; | 
|  770     } |  751     } | 
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  959   // TODO(johnniwinther): Use [spannable] and [message] to provide better |  940   // TODO(johnniwinther): Use [spannable] and [message] to provide better | 
|  960   // information on assertion errors. |  941   // information on assertion errors. | 
|  961   if (condition is Function){ |  942   if (condition is Function){ | 
|  962     condition = condition(); |  943     condition = condition(); | 
|  963   } |  944   } | 
|  964   if (spannable == null || !condition) { |  945   if (spannable == null || !condition) { | 
|  965     throw new SpannableAssertionFailure(spannable, message); |  946     throw new SpannableAssertionFailure(spannable, message); | 
|  966   } |  947   } | 
|  967   return true; |  948   return true; | 
|  968 } |  949 } | 
| OLD | NEW |