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

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

Issue 247683002: Reapply "Mark private functions in dart:* that are native or constructors as not visible (omitted f… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: regen snapshot test Created 6 years, 8 months 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
« no previous file with comments | « runtime/vm/parser.h ('k') | runtime/vm/raw_object.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "vm/parser.h" 5 #include "vm/parser.h"
6 6
7 #include "lib/invocation_mirror.h" 7 #include "lib/invocation_mirror.h"
8 #include "platform/utils.h" 8 #include "platform/utils.h"
9 #include "vm/bootstrap.h" 9 #include "vm/bootstrap.h"
10 #include "vm/class_finalizer.h" 10 #include "vm/class_finalizer.h"
(...skipping 3378 matching lines...) Expand 10 before | Expand all | Expand 10 after
3389 method->has_static, 3389 method->has_static,
3390 method->has_const, 3390 method->has_const,
3391 method->has_abstract, 3391 method->has_abstract,
3392 method->has_external, 3392 method->has_external,
3393 method->has_native, 3393 method->has_native,
3394 current_class(), 3394 current_class(),
3395 method->decl_begin_pos)); 3395 method->decl_begin_pos));
3396 func.set_result_type(*method->type); 3396 func.set_result_type(*method->type);
3397 func.set_end_token_pos(method_end_pos); 3397 func.set_end_token_pos(method_end_pos);
3398 func.set_is_redirecting(is_redirecting); 3398 func.set_is_redirecting(is_redirecting);
3399 if (method->has_native && library_.is_dart_scheme() &&
3400 library_.IsPrivate(*method->name)) {
3401 func.set_is_visible(false);
3402 }
3403 if (method->IsFactoryOrConstructor() && library_.is_dart_scheme() &&
3404 library_.IsPrivate(*method->name)) {
3405 func.set_is_visible(false);
3406 }
3399 if (method->metadata_pos > 0) { 3407 if (method->metadata_pos > 0) {
3400 library_.AddFunctionMetadata(func, method->metadata_pos); 3408 library_.AddFunctionMetadata(func, method->metadata_pos);
3401 } 3409 }
3402 3410
3403 // If this method is a redirecting factory, set the redirection information. 3411 // If this method is a redirecting factory, set the redirection information.
3404 if (!redirection_type.IsNull()) { 3412 if (!redirection_type.IsNull()) {
3405 ASSERT(func.IsFactory()); 3413 ASSERT(func.IsFactory());
3406 func.SetRedirectionType(redirection_type); 3414 func.SetRedirectionType(redirection_type);
3407 if (!redirection_identifier.IsNull()) { 3415 if (!redirection_identifier.IsNull()) {
3408 func.SetRedirectionIdentifier(redirection_identifier); 3416 func.SetRedirectionIdentifier(redirection_identifier);
(...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after
4074 Function::New(ctor_name, 4082 Function::New(ctor_name,
4075 RawFunction::kConstructor, 4083 RawFunction::kConstructor,
4076 /* is_static = */ false, 4084 /* is_static = */ false,
4077 /* is_const = */ false, 4085 /* is_const = */ false,
4078 /* is_abstract = */ false, 4086 /* is_abstract = */ false,
4079 /* is_external = */ false, 4087 /* is_external = */ false,
4080 /* is_native = */ false, 4088 /* is_native = */ false,
4081 cls, 4089 cls,
4082 cls.token_pos())); 4090 cls.token_pos()));
4083 ctor.set_end_token_pos(ctor.token_pos()); 4091 ctor.set_end_token_pos(ctor.token_pos());
4092 if (library_.is_dart_scheme() && library_.IsPrivate(ctor_name)) {
4093 ctor.set_is_visible(false);
4094 }
4084 4095
4085 ParamList params; 4096 ParamList params;
4086 // Add implicit 'this' parameter. 4097 // Add implicit 'this' parameter.
4087 const AbstractType* receiver_type = ReceiverType(cls); 4098 const AbstractType* receiver_type = ReceiverType(cls);
4088 params.AddReceiver(receiver_type, cls.token_pos()); 4099 params.AddReceiver(receiver_type, cls.token_pos());
4089 // Add implicit parameter for construction phase. 4100 // Add implicit parameter for construction phase.
4090 params.AddFinalParameter(cls.token_pos(), 4101 params.AddFinalParameter(cls.token_pos(),
4091 &Symbols::PhaseParameter(), 4102 &Symbols::PhaseParameter(),
4092 &Type::ZoneHandle(Type::SmiType())); 4103 &Type::ZoneHandle(Type::SmiType()));
4093 4104
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after
4750 RawFunction::kRegularFunction, 4761 RawFunction::kRegularFunction,
4751 is_static, 4762 is_static,
4752 /* is_const = */ false, 4763 /* is_const = */ false,
4753 /* is_abstract = */ false, 4764 /* is_abstract = */ false,
4754 is_external, 4765 is_external,
4755 is_native, 4766 is_native,
4756 current_class(), 4767 current_class(),
4757 decl_begin_pos)); 4768 decl_begin_pos));
4758 func.set_result_type(result_type); 4769 func.set_result_type(result_type);
4759 func.set_end_token_pos(function_end_pos); 4770 func.set_end_token_pos(function_end_pos);
4771 if (is_native && library_.is_dart_scheme() && library_.IsPrivate(func_name)) {
4772 func.set_is_visible(false);
4773 }
4760 AddFormalParamsToFunction(&params, func); 4774 AddFormalParamsToFunction(&params, func);
4761 top_level->functions.Add(func); 4775 top_level->functions.Add(func);
4762 if (!is_patch) { 4776 if (!is_patch) {
4763 library_.AddObject(func, func_name); 4777 library_.AddObject(func, func_name);
4764 } else { 4778 } else {
4765 library_.ReplaceObject(func, func_name); 4779 library_.ReplaceObject(func, func_name);
4766 } 4780 }
4767 if (metadata_pos >= 0) { 4781 if (metadata_pos >= 0) {
4768 library_.AddFunctionMetadata(func, metadata_pos); 4782 library_.AddFunctionMetadata(func, metadata_pos);
4769 } 4783 }
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
4884 RawFunction::kSetterFunction, 4898 RawFunction::kSetterFunction,
4885 is_static, 4899 is_static,
4886 /* is_const = */ false, 4900 /* is_const = */ false,
4887 /* is_abstract = */ false, 4901 /* is_abstract = */ false,
4888 is_external, 4902 is_external,
4889 is_native, 4903 is_native,
4890 current_class(), 4904 current_class(),
4891 decl_begin_pos)); 4905 decl_begin_pos));
4892 func.set_result_type(result_type); 4906 func.set_result_type(result_type);
4893 func.set_end_token_pos(accessor_end_pos); 4907 func.set_end_token_pos(accessor_end_pos);
4908 if (is_native && library_.is_dart_scheme() &&
4909 library_.IsPrivate(accessor_name)) {
4910 func.set_is_visible(false);
4911 }
4894 AddFormalParamsToFunction(&params, func); 4912 AddFormalParamsToFunction(&params, func);
4895 top_level->functions.Add(func); 4913 top_level->functions.Add(func);
4896 if (!is_patch) { 4914 if (!is_patch) {
4897 library_.AddObject(func, accessor_name); 4915 library_.AddObject(func, accessor_name);
4898 } else { 4916 } else {
4899 library_.ReplaceObject(func, accessor_name); 4917 library_.ReplaceObject(func, accessor_name);
4900 } 4918 }
4901 if (metadata_pos >= 0) { 4919 if (metadata_pos >= 0) {
4902 library_.AddFunctionMetadata(func, metadata_pos); 4920 library_.AddFunctionMetadata(func, metadata_pos);
4903 } 4921 }
(...skipping 6030 matching lines...) Expand 10 before | Expand all | Expand 10 after
10934 void Parser::SkipQualIdent() { 10952 void Parser::SkipQualIdent() {
10935 ASSERT(IsIdentifier()); 10953 ASSERT(IsIdentifier());
10936 ConsumeToken(); 10954 ConsumeToken();
10937 if (CurrentToken() == Token::kPERIOD) { 10955 if (CurrentToken() == Token::kPERIOD) {
10938 ConsumeToken(); // Consume the kPERIOD token. 10956 ConsumeToken(); // Consume the kPERIOD token.
10939 ExpectIdentifier("identifier expected after '.'"); 10957 ExpectIdentifier("identifier expected after '.'");
10940 } 10958 }
10941 } 10959 }
10942 10960
10943 } // namespace dart 10961 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/parser.h ('k') | runtime/vm/raw_object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698