// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. part of "dart:_internal"; /** * Implementation of [core.Symbol]. This class uses the same name as * a core class so a user can't tell the difference. * * The purpose of this class is to hide [_name] from user code, but * make it accessible to Dart platform code via the static method * [getName]. */ @pragma('vm:entry-point') class Symbol implements core.Symbol { @pragma('vm:entry-point') final String _name; external const Symbol(String name); /** * Platform-private method used by the mirror system to create * otherwise invalid names. */ const Symbol.unvalidated(this._name); bool operator ==(Object other) => other is Symbol && _name == other._name; external int get hashCode; external toString(); /// Platform-private accessor which cannot be called from user libraries. static String getName(Symbol symbol) => symbol._name; external static String computeUnmangledName(Symbol symbol); }