a551c507bd
Change-Id: Id64ae1aa0de89260b6bf2d6f40260a0dc9ef5c16 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121000 Reviewed-by: Ryan Macnak <rmacnak@google.com> Commit-Queue: Siva Annamalai <asiva@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;
|
|
}
|