mirror of
https://github.com/dart-lang/sdk
synced 2024-10-01 22:26:52 +00:00
Make EqualsIgnoringPrivateKey work with mixin applications.
R=regis@google.com Review-Url: https://codereview.chromium.org/2842053003 .
This commit is contained in:
parent
27b4b36b86
commit
760db12d17
|
@ -21151,7 +21151,8 @@ static bool EqualsIgnoringPrivateKey(const String& str1, const String& str2) {
|
|||
|
||||
if (ch == Library::kPrivateKeySeparator) {
|
||||
// Consume a private key separator.
|
||||
while ((pos < len) && (T1::CharAt(str1, pos) != '.')) {
|
||||
while ((pos < len) && (T1::CharAt(str1, pos) != '.') &&
|
||||
(T1::CharAt(str1, pos) != '&')) {
|
||||
pos++;
|
||||
}
|
||||
// Resume matching characters.
|
||||
|
|
|
@ -3191,6 +3191,16 @@ ISOLATE_UNIT_TEST_CASE(EqualsIgnoringPrivate) {
|
|||
bare_name = OneByteString::New("food");
|
||||
EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name));
|
||||
|
||||
// Private mixin application match.
|
||||
mangled_name = OneByteString::New("_M1@12345&_M2@12345&_M3@12345");
|
||||
bare_name = OneByteString::New("_M1&_M2&_M3");
|
||||
EXPECT(String::EqualsIgnoringPrivateKey(mangled_name, bare_name));
|
||||
|
||||
// Private mixin application mismatch.
|
||||
mangled_name = OneByteString::New("_M1@12345&_M2@12345&_M3@12345");
|
||||
bare_name = OneByteString::New("_M1&_M2&_M4");
|
||||
EXPECT(!String::EqualsIgnoringPrivateKey(mangled_name, bare_name));
|
||||
|
||||
// Private constructor match.
|
||||
mangled_name = OneByteString::New("foo@12345.");
|
||||
bare_name = OneByteString::New("foo.");
|
||||
|
|
Loading…
Reference in a new issue