Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: runtime/vm/parser.h

Issue 11232071: Ambiguous references do not necessarily cause compilation errors (issue 5736). (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #ifndef VM_PARSER_H_ 5 #ifndef VM_PARSER_H_
6 #define VM_PARSER_H_ 6 #define VM_PARSER_H_
7 7
8 #include "include/dart_api.h" 8 #include "include/dart_api.h"
9 9
10 #include "vm/ast.h" 10 #include "vm/ast.h"
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 const char* message_header, 128 const char* message_header,
129 const char* format, ...) PRINTF_ATTRIBUTE(4, 5); 129 const char* format, ...) PRINTF_ATTRIBUTE(4, 5);
130 130
131 // Build an error object containing a formatted error or warning message. 131 // Build an error object containing a formatted error or warning message.
132 // A null script means no source and a negative token_pos means no position. 132 // A null script means no source and a negative token_pos means no position.
133 static RawError* FormatError(const Script& script, 133 static RawError* FormatError(const Script& script,
134 intptr_t token_pos, 134 intptr_t token_pos,
135 const char* message_header, 135 const char* message_header,
136 const char* format, 136 const char* format,
137 va_list args); 137 va_list args);
138 static RawError* FormatErrorMsg(const Script& script,
139 intptr_t token_pos,
140 const char* message_header,
141 const char* format, ...)
142 PRINTF_ATTRIBUTE(4, 5);
138 143
139 // Same as FormatError, but appends the new error to the 'prev_error'. 144 // Same as FormatError, but appends the new error to the 'prev_error'.
140 static RawError* FormatErrorWithAppend(const Error& prev_error, 145 static RawError* FormatErrorWithAppend(const Error& prev_error,
141 const Script& script, 146 const Script& script,
142 intptr_t token_pos, 147 intptr_t token_pos,
143 const char* message_header, 148 const char* message_header,
144 const char* format, 149 const char* format,
145 va_list args); 150 va_list args);
146 151
147 private: 152 private:
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 void CheckInstanceFieldAccess(intptr_t field_pos, const String& field_name); 502 void CheckInstanceFieldAccess(intptr_t field_pos, const String& field_name);
498 bool ParsingStaticMember() const; 503 bool ParsingStaticMember() const;
499 const Type* ReceiverType(intptr_t type_pos) const; 504 const Type* ReceiverType(intptr_t type_pos) const;
500 bool IsInstantiatorRequired() const; 505 bool IsInstantiatorRequired() const;
501 bool ResolveIdentInLocalScope(intptr_t ident_pos, 506 bool ResolveIdentInLocalScope(intptr_t ident_pos,
502 const String &ident, 507 const String &ident,
503 AstNode** node); 508 AstNode** node);
504 static const bool kResolveLocally = true; 509 static const bool kResolveLocally = true;
505 static const bool kResolveIncludingImports = false; 510 static const bool kResolveIncludingImports = false;
506 511
507 // Resolve a primary identifier in the libary or prefix scope and 512 // Resolve a primary identifier in the library or prefix scope and
508 // generate the corresponding AstNode. 513 // generate the corresponding AstNode.
514 AstNode* ResolveIdentInCurrentLibraryScope(intptr_t ident_pos,
515 const String& ident);
509 AstNode* ResolveIdentInPrefixScope(intptr_t ident_pos, 516 AstNode* ResolveIdentInPrefixScope(intptr_t ident_pos,
510 const LibraryPrefix& prefix, 517 const LibraryPrefix& prefix,
511 const String& ident); 518 const String& ident);
512 AstNode* ResolveIdentInCurrentLibraryScope(intptr_t ident_pos,
513 const String& ident);
514 519
515 // Find class with the given name in the library or prefix scope. 520 // Find class with the given name in the library or prefix scope.
516 RawClass* ResolveClassInCurrentLibraryScope(intptr_t ident_pos, 521 RawClass* ResolveClassInCurrentLibraryScope(intptr_t ident_pos,
517 const String& name); 522 const String& name,
523 Error* error);
518 RawClass* ResolveClassInPrefixScope(intptr_t ident_pos, 524 RawClass* ResolveClassInPrefixScope(intptr_t ident_pos,
519 const LibraryPrefix& prefix, 525 const LibraryPrefix& prefix,
520 const String& name); 526 const String& name,
527 Error* error);
521 528
522 // Find name in the library or prefix scope and return the corresponding 529 // Find name in the library or prefix scope and return the corresponding
523 // object (field, class, function etc). 530 // object (field, class, function etc).
524 RawObject* ResolveNameInCurrentLibraryScope(intptr_t ident_pos, 531 RawObject* ResolveNameInCurrentLibraryScope(intptr_t ident_pos,
525 const String& ident); 532 const String& ident,
533 Error* error);
526 RawObject* ResolveNameInPrefixScope(intptr_t ident_pos, 534 RawObject* ResolveNameInPrefixScope(intptr_t ident_pos,
527 const LibraryPrefix& prefix, 535 const LibraryPrefix& prefix,
528 const String& name); 536 const String& name,
537 Error* error);
529 538
530 AstNode* ResolveIdent(intptr_t ident_pos, 539 AstNode* ResolveIdent(intptr_t ident_pos,
531 const String& ident, 540 const String& ident,
532 bool allow_closure_names); 541 bool allow_closure_names);
533 RawString* ResolveImportVar(intptr_t ident_pos, const String& ident); 542 RawString* ResolveImportVar(intptr_t ident_pos, const String& ident);
534 AstNode* OptimizeBinaryOpNode(intptr_t op_pos, 543 AstNode* OptimizeBinaryOpNode(intptr_t op_pos,
535 Token::Kind binary_op, 544 Token::Kind binary_op,
536 AstNode* lhs, 545 AstNode* lhs,
537 AstNode* rhs); 546 AstNode* rhs);
538 AstNode* ExpandAssignableOp(intptr_t op_pos, 547 AstNode* ExpandAssignableOp(intptr_t op_pos,
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 618
610 // Allocate temporary only once per function. 619 // Allocate temporary only once per function.
611 LocalVariable* expression_temp_; 620 LocalVariable* expression_temp_;
612 621
613 DISALLOW_COPY_AND_ASSIGN(Parser); 622 DISALLOW_COPY_AND_ASSIGN(Parser);
614 }; 623 };
615 624
616 } // namespace dart 625 } // namespace dart
617 626
618 #endif // VM_PARSER_H_ 627 #endif // VM_PARSER_H_
OLDNEW
« no previous file with comments | « runtime/vm/class_finalizer.cc ('k') | runtime/vm/parser.cc » ('j') | runtime/vm/parser.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698