| 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 #include "vm/parser.h" | 5 #include "vm/parser.h" | 
| 6 #include "vm/flags.h" | 6 #include "vm/flags.h" | 
| 7 | 7 | 
| 8 #ifndef DART_PRECOMPILED_RUNTIME | 8 #ifndef DART_PRECOMPILED_RUNTIME | 
| 9 | 9 | 
| 10 #include "lib/invocation_mirror.h" | 10 #include "lib/invocation_mirror.h" | 
| (...skipping 12080 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 12091           } else if (current_function().is_static()) { | 12091           } else if (current_function().is_static()) { | 
| 12092             // The static call will be converted to throwing a NSM error. | 12092             // The static call will be converted to throwing a NSM error. | 
| 12093             selector = ParseStaticCall(current_class(), name, primary_pos); | 12093             selector = ParseStaticCall(current_class(), name, primary_pos); | 
| 12094           } else { | 12094           } else { | 
| 12095             // Treat as call to unresolved (instance) method. | 12095             // Treat as call to unresolved (instance) method. | 
| 12096             selector = | 12096             selector = | 
| 12097                 ParseInstanceCall(LoadReceiver(primary_pos), name, primary_pos, | 12097                 ParseInstanceCall(LoadReceiver(primary_pos), name, primary_pos, | 
| 12098                                   false /* is_conditional */); | 12098                                   false /* is_conditional */); | 
| 12099           } | 12099           } | 
| 12100         } else if (primary_node->primary().IsTypeParameter()) { | 12100         } else if (primary_node->primary().IsTypeParameter()) { | 
| 12101           TypeParameter& type_parameter = TypeParameter::ZoneHandle(Z); | 12101           selector = LoadTypeParameter(primary_node); | 
| 12102           type_parameter = TypeParameter::Cast(primary_node->primary()).raw(); |  | 
| 12103           const String& name = String::ZoneHandle(Z, type_parameter.name()); |  | 
| 12104           if (type_parameter.IsClassTypeParameter()) { |  | 
| 12105             if (ParsingStaticMember()) { |  | 
| 12106               // Treat as this.T(), because T is in scope. |  | 
| 12107               ReportError(primary_pos, |  | 
| 12108                           "cannot access type parameter '%s' " |  | 
| 12109                           "from static function", |  | 
| 12110                           name.ToCString()); |  | 
| 12111             } else { |  | 
| 12112               // Treat as call to unresolved (instance) method. |  | 
| 12113               selector = |  | 
| 12114                   ParseInstanceCall(LoadReceiver(primary_pos), name, |  | 
| 12115                                     primary_pos, false /* is_conditional */); |  | 
| 12116             } |  | 
| 12117           } else { |  | 
| 12118             ASSERT(type_parameter.IsFunctionTypeParameter()); |  | 
| 12119             // TODO(regis): Should we throw a type error instead? |  | 
| 12120             ReportError(primary_pos, |  | 
| 12121                         "illegal use of function type parameter '%s'", |  | 
| 12122                         name.ToCString()); |  | 
| 12123           } |  | 
| 12124         } else if (primary_node->primary().IsClass()) { | 12102         } else if (primary_node->primary().IsClass()) { | 
| 12125           const Class& type_class = Class::Cast(primary_node->primary()); | 12103           const Class& type_class = Class::Cast(primary_node->primary()); | 
| 12126           AbstractType& type = Type::ZoneHandle( | 12104           AbstractType& type = Type::ZoneHandle( | 
| 12127               Z, Type::New(type_class, TypeArguments::Handle(Z), primary_pos, | 12105               Z, Type::New(type_class, Object::null_type_arguments(), | 
| 12128                            Heap::kOld)); | 12106                            primary_pos, Heap::kOld)); | 
| 12129           type ^= CanonicalizeType(type); | 12107           type ^= CanonicalizeType(type); | 
| 12130           // Type may be malbounded, but not malformed. | 12108           // Type may be malbounded, but not malformed. | 
| 12131           ASSERT(!type.IsMalformed()); | 12109           ASSERT(!type.IsMalformed()); | 
| 12132           selector = new (Z) TypeNode(primary_pos, type, | 12110           selector = new (Z) TypeNode(primary_pos, type, | 
| 12133                                       primary_node->is_deferred_reference()); | 12111                                       primary_node->is_deferred_reference()); | 
| 12134         } else { | 12112         } else { | 
| 12135           UNREACHABLE();  // Internal parser error. | 12113           UNREACHABLE();  // Internal parser error. | 
| 12136         } | 12114         } | 
| 12137       } else { | 12115       } else { | 
| 12138         // Left is not a primary node; this must be a closure call. | 12116         // Left is not a primary node; this must be a closure call. | 
| (...skipping 3075 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 15214     const ArgumentListNode& function_args, | 15192     const ArgumentListNode& function_args, | 
| 15215     const LocalVariable* temp_for_last_arg, | 15193     const LocalVariable* temp_for_last_arg, | 
| 15216     bool is_super_invocation) { | 15194     bool is_super_invocation) { | 
| 15217   UNREACHABLE(); | 15195   UNREACHABLE(); | 
| 15218   return NULL; | 15196   return NULL; | 
| 15219 } | 15197 } | 
| 15220 | 15198 | 
| 15221 }  // namespace dart | 15199 }  // namespace dart | 
| 15222 | 15200 | 
| 15223 #endif  // DART_PRECOMPILED_RUNTIME | 15201 #endif  // DART_PRECOMPILED_RUNTIME | 
| OLD | NEW | 
|---|