ce73305411
Labeling nodes as direct / indirect seems to have been unstable and unused, so this cl removes that logic. Also removed logic to process _RtiNode._literalState which ssems to have been unused as well. Change-Id: Ic463149ee353abcd55c22684f12ba11eb92cc91d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/235722 Reviewed-by: Mayank Patke <fishythefish@google.com> Commit-Queue: Joshua Litt <joshualitt@google.com>
38 lines
823 B
Dart
38 lines
823 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.
|
|
|
|
// @dart = 2.7
|
|
|
|
import 'package:compiler/src/util/testing.dart';
|
|
|
|
/*class: A:deps=[B],explicit=[A.T*],needsArgs,test*/
|
|
class A<T> {
|
|
@pragma('dart2js:noInline')
|
|
foo(x) {
|
|
return x is T;
|
|
}
|
|
}
|
|
|
|
/*class: BB:implicit=[BB]*/
|
|
class BB {}
|
|
|
|
/*class: B:deps=[method1],implicit=[B.T],needsArgs,test*/
|
|
class B<T> implements BB {
|
|
@pragma('dart2js:noInline')
|
|
foo() {
|
|
return new A<T>().foo(new B());
|
|
}
|
|
}
|
|
|
|
/*member: method1:implicit=[method1.T],needsArgs,test*/
|
|
@pragma('dart2js:noInline')
|
|
method1<T>() {
|
|
return new B<T>().foo();
|
|
}
|
|
|
|
main() {
|
|
makeLive(method1<BB>());
|
|
makeLive(method1<String>());
|
|
}
|