dd6dc29c21
This change mechanically copies runtime/tests/vm/dart -> runtime/tests/vm/dart_2 in preparation for the migration of runtime/tests/vm/dart to NNBD. Corresponding statuses in vm.status are duplicated. Added vm_nnbd builder tag for NNBD bots. vm/dart/* tests are allowed to run only on vm_nnbd builders. vm/dart_2/* tests are allowed to run only on non-vm_nnbd builders. Issue: https://github.com/dart-lang/sdk/issues/41314 Change-Id: I079da92da17960605f37c1c0e28e48362b236739 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149485 Reviewed-by: Régis Crelier <regis@google.com> Reviewed-by: Ryan Macnak <rmacnak@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>
104 lines
2.1 KiB
Dart
104 lines
2.1 KiB
Dart
// Copyright (c) 2019, 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.
|
|
|
|
// Test that ensures stack traces have user friendly names from extension
|
|
// functions.
|
|
|
|
import 'dart:core';
|
|
import "package:expect/expect.dart";
|
|
|
|
class C<T> {
|
|
static int tracefunc() {
|
|
try {
|
|
throw "producing a stack trace";
|
|
} catch (e, s) {
|
|
Expect.isTrue(s.toString().contains('C.tracefunc'));
|
|
Expect.isTrue(s.toString().contains('ext.sfld'));
|
|
}
|
|
return 10;
|
|
}
|
|
|
|
static int ld = C.tracefunc();
|
|
}
|
|
|
|
extension ext<T> on C<T> {
|
|
func() {
|
|
try {
|
|
throw "producing a stack trace";
|
|
} catch (e, s) {
|
|
Expect.isTrue(s.toString().contains('ext.func'));
|
|
}
|
|
}
|
|
|
|
get prop {
|
|
try {
|
|
throw "producing a stack trace";
|
|
} catch (e, s) {
|
|
Expect.isTrue(s.toString().contains('ext.prop'));
|
|
}
|
|
}
|
|
|
|
set prop(value) {
|
|
try {
|
|
throw "producing a stack trace";
|
|
} catch (e, s) {
|
|
Expect.isTrue(s.toString().contains('ext.prop='));
|
|
}
|
|
}
|
|
|
|
operator +(val) {
|
|
try {
|
|
throw "producing a stack trace";
|
|
} catch (e, s) {
|
|
Expect.isTrue(s.toString().contains('ext.+'));
|
|
}
|
|
}
|
|
|
|
operator -(val) {
|
|
try {
|
|
throw "producing a stack trace";
|
|
} catch (e, s) {
|
|
Expect.isTrue(s.toString().contains('ext.-'));
|
|
}
|
|
}
|
|
|
|
static int sfld = C.tracefunc();
|
|
static sfunc() {
|
|
try {
|
|
throw "producing a stack trace";
|
|
} catch (e, s) {
|
|
Expect.isTrue(s.toString().contains('ext.sfunc'));
|
|
}
|
|
}
|
|
|
|
static get sprop {
|
|
try {
|
|
throw "producing a stack trace";
|
|
} catch (e, s) {
|
|
Expect.isTrue(s.toString().contains('ext.sprop'));
|
|
}
|
|
}
|
|
|
|
static set sprop(value) {
|
|
try {
|
|
throw "producing a stack trace";
|
|
} catch (e, s) {
|
|
Expect.isTrue(s.toString().contains('ext.sprop='));
|
|
}
|
|
}
|
|
}
|
|
|
|
main() {
|
|
C<int> c = new C<int>();
|
|
c.func();
|
|
c.prop;
|
|
c.prop = 10;
|
|
ext.sfunc();
|
|
ext.sprop;
|
|
ext.sprop = 10;
|
|
ext.sfld;
|
|
c + 1;
|
|
c - 1;
|
|
}
|