Files
sdk/tests/language_2/vm/regress_34396_test.dart
T
Martin Kustermann 609d2770be Reland "[VM] Add new SymbolConstant to package:kernel/ast.dart"
The canonicalization of symbols needs to take library privacy into
account. Since the Symbol class itself only has a [_name] field but does
not reference in which library the symbol came from, the [_name] must be
mangled.

Mangling is done by backends and so we make a new [SymbolConstant] which
the backends can desugar by doing appropriate mangling and construction
of a [Symbol] instance.

Fixes https://github.com/dart-lang/sdk/issues/34396

Change-Id: I2e13288483c35f875d39eefdb73677b2cc03527a
Reviewed-on: https://dart-review.googlesource.com/74360
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2018-09-11 09:29:01 +00:00

18 lines
719 B
Dart

// Copyright (c) 2018, 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.
import 'package:expect/expect.dart';
import 'regress_34396_helper.dart' as helper;
main() {
Expect.isFalse(#_privateSymbol == helper.privateSymbol);
Expect.isFalse(#_privateSymbol == helper.privateSymbolSame);
Expect.isFalse(identical(#_privateSymbol, helper.privateSymbol));
Expect.isFalse(identical(#_privateSymbol, helper.privateSymbolSame));
Expect.isTrue(helper.privateSymbol == helper.privateSymbolSame);
Expect.isTrue(identical(helper.privateSymbol, helper.privateSymbolSame));
}