blob: 36035cfd19fac623062136adfc96e839d7eb52af [file] [log] [blame]
// Copyright (c) 2023, 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.
final x = 'scope-marker';
class Class {
var field;
Class.empty()
: field = /*
class=Class,
member=empty
*/
x {
/*
class=Class,
member=empty
*/
x;
}
Class.oneParameter(a)
: field = /*
class=Class,
member=oneParameter,
variables=[a]
*/
x {
/*
class=Class,
member=oneParameter,
variables=[a]
*/
x;
}
Class.twoParameters(a, b)
: field = /*
class=Class,
member=twoParameters,
variables=[
a,
b]
*/
x {
/*
class=Class,
member=twoParameters,
variables=[
a,
b]
*/
x;
}
Class.optionalParameter(a, [b])
: field = /*
class=Class,
member=optionalParameter,
variables=[
a,
b]
*/
x {
/*
class=Class,
member=optionalParameter,
variables=[
a,
b]
*/
x;
}
Class.namedParameter(a, {b})
: field = /*
class=Class,
member=namedParameter,
variables=[
a,
b]
*/
x {
/*
class=Class,
member=namedParameter,
variables=[
a,
b]
*/
x;
}
}
class Foo2<E extends num> {
var field;
factory Foo2.foo(E a) {
/*
class=Foo2,
member=foo,
static,
typeParameters=[
Foo2.E,
Foo2.foo.E],
variables=[a]
*/
x;
return new Foo2._();
}
Foo2._()
: field = /*
class=Foo2,
member=_,
typeParameters=[Foo2.E]
*/
x {
/*
class=Foo2,
member=_,
typeParameters=[Foo2.E]
*/
x;
}
static bar(dynamic a) {
// E not legal here --- it doesn't have E!
/*
class=Foo2,
member=bar,
static,
typeParameters=[Foo2.E],
variables=[a]
*/
x;
}
static baz<E extends String>(E a) {
// E legal here, but it's a new one --- this one doesn't extend num!
/*
class=Foo2,
member=baz,
static,
typeParameters=[
Foo2.E,
Foo2.baz.E],
variables=[a]
*/
x;
}
void foo2(E e) {
void bar2<E extends String>(E e) {
void baz2<E extends List>(E e) {
print(e.length);
/*
class=Foo2,
member=foo2,
typeParameters=[
Foo2.E,
Foo2.foo2.bar2.E,
Foo2.foo2.bar2.baz2.E],
variables=[
bar2,
baz2,
e]
*/
x;
}
print(e.runes);
/*
class=Foo2,
member=foo2,
typeParameters=[
Foo2.E,
Foo2.foo2.bar2.E],
variables=[
bar2,
baz2,
e]
*/
x;
}
print(e.abs());
/*
class=Foo2,
member=foo2,
typeParameters=[Foo2.E],
variables=[
bar2,
e]
*/
x;
}
}