| Index: runtime/vm/object.cc
|
| diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
|
| index 4c368652d67fc05819e965fa5207384ac041a89e..4afd9eb7ccd01ada539d107953e0b2b42f867140 100644
|
| --- a/runtime/vm/object.cc
|
| +++ b/runtime/vm/object.cc
|
| @@ -218,7 +218,7 @@ static const char* MergeSubStrings(Zone* zone,
|
| // _MyClass@6328321. -> _MyClass
|
| // _MyClass@6328321.named -> _MyClass.named
|
| //
|
| -RawString* String::IdentifierPrettyName(const String& name) {
|
| +RawString* String::ScrubName(const String& name) {
|
| Zone* zone = Thread::Current()->zone();
|
| if (name.Equals(Symbols::TopLevel())) {
|
| // Name of invisible top-level class.
|
| @@ -321,7 +321,7 @@ RawString* String::IdentifierPrettyName(const String& name) {
|
| }
|
|
|
|
|
| -RawString* String::IdentifierPrettyNameRetainPrivate(const String& name) {
|
| +RawString* String::ScrubNameRetainPrivate(const String& name) {
|
| intptr_t len = name.Length();
|
| intptr_t start = 0;
|
| intptr_t at_pos = -1; // Position of '@' in the name, if any.
|
| @@ -1919,14 +1919,14 @@ RawString* Class::Name() const {
|
| }
|
|
|
|
|
| -RawString* Class::PrettyName() const {
|
| - return GeneratePrettyName();
|
| +RawString* Class::ScrubbedName() const {
|
| + return String::ScrubName(String::Handle(Name()));
|
| }
|
|
|
|
|
| RawString* Class::UserVisibleName() const {
|
| #if defined(PRODUCT)
|
| - return raw_ptr()->name_;
|
| + return GenerateUserVisibleName();
|
| #else // defined(PRODUCT)
|
| ASSERT(raw_ptr()->user_name_ != String::null());
|
| return raw_ptr()->user_name_;
|
| @@ -3163,6 +3163,7 @@ RawClass* Class::NewExternalTypedDataClass(intptr_t class_id) {
|
|
|
|
|
| void Class::set_name(const String& value) const {
|
| + ASSERT(raw_ptr()->name_ == String::null());
|
| ASSERT(value.IsSymbol());
|
| StorePointer(&raw_ptr()->name_, value.raw());
|
| NOT_IN_PRODUCT(
|
| @@ -3184,12 +3185,6 @@ void Class::set_user_name(const String& value) const {
|
| )
|
|
|
|
|
| -RawString* Class::GeneratePrettyName() const {
|
| - const String& name = String::Handle(Name());
|
| - return String::IdentifierPrettyName(name);
|
| -}
|
| -
|
| -
|
| RawString* Class::GenerateUserVisibleName() const {
|
| if (FLAG_show_internal_names) {
|
| return Name();
|
| @@ -3327,7 +3322,7 @@ RawString* Class::GenerateUserVisibleName() const {
|
| return Symbols::Float64List().raw();
|
| default:
|
| const String& name = String::Handle(Name());
|
| - return String::IdentifierPrettyName(name);
|
| + return String::ScrubName(name);
|
| }
|
| UNREACHABLE();
|
| }
|
| @@ -6657,68 +6652,32 @@ bool Function::HasOptimizedCode() const {
|
| }
|
|
|
|
|
| -RawString* Function::PrettyName() const {
|
| - const String& str = String::Handle(name());
|
| - return String::IdentifierPrettyName(str);
|
| -}
|
| -
|
| -
|
| -const char* Function::QualifiedUserVisibleNameCString() const {
|
| - const String& str = String::Handle(QualifiedUserVisibleName());
|
| - return str.ToCString();
|
| -}
|
| -
|
| -
|
| RawString* Function::UserVisibleName() const {
|
| - return PrettyName();
|
| -}
|
| -
|
| -
|
| -RawString* Function::QualifiedPrettyName() const {
|
| - String& tmp = String::Handle();
|
| - const Class& cls = Class::Handle(Owner());
|
| -
|
| - if (IsClosureFunction()) {
|
| - if (IsLocalFunction() && !IsImplicitClosureFunction()) {
|
| - const Function& parent = Function::Handle(parent_function());
|
| - tmp = parent.QualifiedPrettyName();
|
| - } else {
|
| - return PrettyName();
|
| - }
|
| - } else {
|
| - if (cls.IsTopLevel()) {
|
| - return PrettyName();
|
| - } else {
|
| - tmp = cls.PrettyName();
|
| - }
|
| + if (FLAG_show_internal_names) {
|
| + return name();
|
| }
|
| - tmp = String::Concat(tmp, Symbols::Dot(), Heap::kOld);
|
| - const String& suffix = String::Handle(PrettyName());
|
| - return String::Concat(tmp, suffix, Heap::kOld);
|
| + return String::ScrubName(String::Handle(name()));
|
| }
|
|
|
|
|
| RawString* Function::QualifiedUserVisibleName() const {
|
| - String& tmp = String::Handle();
|
| - const Class& cls = Class::Handle(Owner());
|
| -
|
| + String& result = String::Handle(UserVisibleName());
|
| if (IsClosureFunction()) {
|
| - if (IsLocalFunction() && !IsImplicitClosureFunction()) {
|
| - const Function& parent = Function::Handle(parent_function());
|
| - tmp = parent.QualifiedUserVisibleName();
|
| - } else {
|
| - return UserVisibleName();
|
| - }
|
| - } else {
|
| - if (cls.IsTopLevel()) {
|
| - return UserVisibleName();
|
| - } else {
|
| - tmp = cls.UserVisibleName();
|
| + Function& fun = Function::Handle(raw());
|
| + while (fun.IsLocalFunction() && !fun.IsImplicitClosureFunction()) {
|
| + fun = fun.parent_function();
|
| + result = String::Concat(Symbols::Dot(), result, Heap::kOld);
|
| + result = String::Concat(
|
| + String::Handle(fun.UserVisibleName()), result, Heap::kOld);
|
| }
|
| }
|
| - tmp = String::Concat(tmp, Symbols::Dot());
|
| - const String& suffix = String::Handle(UserVisibleName());
|
| - return String::Concat(tmp, suffix);
|
| + const Class& cls = Class::Handle(Owner());
|
| + if (!cls.IsTopLevel()) {
|
| + result = String::Concat(Symbols::Dot(), result, Heap::kOld);
|
| + result = String::Concat(
|
| + String::Handle(cls.UserVisibleName()), result, Heap::kOld);
|
| + }
|
| + return result.raw();
|
| }
|
|
|
|
|
| @@ -7210,14 +7169,11 @@ RawField* Field::Clone(const Class& new_owner) const {
|
| }
|
|
|
|
|
| -RawString* Field::PrettyName() const {
|
| - const String& str = String::Handle(name());
|
| - return String::IdentifierPrettyName(str);
|
| -}
|
| -
|
| -
|
| RawString* Field::UserVisibleName() const {
|
| - return PrettyName();
|
| + if (FLAG_show_internal_names) {
|
| + return name();
|
| + }
|
| + return String::ScrubName(String::Handle(name()));
|
| }
|
|
|
|
|
| @@ -8974,7 +8930,7 @@ static RawString* MakeFunctionMetaName(const Function& func) {
|
| GrowableHandlePtrArray<const String> pieces(Thread::Current()->zone(), 3);
|
| pieces.Add(cname);
|
| pieces.Add(Symbols::At());
|
| - pieces.Add(String::Handle(func.QualifiedPrettyName()));
|
| + pieces.Add(String::Handle(func.QualifiedUserVisibleName()));
|
| return Symbols::FromConcatAll(pieces);
|
| }
|
|
|
| @@ -13057,24 +13013,13 @@ RawString* Code::Name() const {
|
| }
|
|
|
|
|
| -RawString* Code::PrettyName() const {
|
| +RawString* Code::UserVisibleName() const {
|
| const Object& obj = Object::Handle(owner());
|
| - if (obj.IsNull()) {
|
| - // Regular stub.
|
| - const char* name = StubCode::NameOfStub(EntryPoint());
|
| - ASSERT(name != NULL);
|
| - const String& stub_name = String::Handle(String::New(name));
|
| - return String::Concat(Symbols::StubPrefix(), stub_name);
|
| - } else if (obj.IsClass()) {
|
| - // Allocation stub.
|
| - const Class& cls = Class::Cast(obj);
|
| - String& cls_name = String::Handle(cls.Name());
|
| - ASSERT(!cls_name.IsNull());
|
| - return String::Concat(Symbols::AllocationStubFor(), cls_name);
|
| - } else {
|
| - ASSERT(obj.IsFunction());
|
| + if (obj.IsFunction()) {
|
| // Dart function.
|
| - return Function::Cast(obj).QualifiedPrettyName();
|
| + return Function::Cast(obj).QualifiedUserVisibleName();
|
| + } else {
|
| + return Name();
|
| }
|
| }
|
|
|
| @@ -14791,9 +14736,7 @@ RawString* AbstractType::BuildName(NameVisibility name_visibility) const {
|
| if (IsBoundedType()) {
|
| const AbstractType& type = AbstractType::Handle(
|
| BoundedType::Cast(*this).type());
|
| - if (name_visibility == kPrettyName) {
|
| - return type.BuildName(kPrettyName);
|
| - } else if (name_visibility == kUserVisibleName) {
|
| + if (name_visibility == kUserVisibleName) {
|
| return type.BuildName(kUserVisibleName);
|
| }
|
| GrowableHandlePtrArray<const String> pieces(zone, 5);
|
| @@ -14863,8 +14806,6 @@ RawString* AbstractType::BuildName(NameVisibility name_visibility) const {
|
| }
|
| if (name_visibility == kInternalName) {
|
| class_name = cls.Name();
|
| - } else if (name_visibility == kPrettyName) {
|
| - class_name = cls.PrettyName();
|
| } else {
|
| ASSERT(name_visibility == kUserVisibleName);
|
| // Map internal types to their corresponding public interfaces.
|
|
|