mirror of
https://github.com/dart-lang/sdk
synced 2024-09-20 02:39:27 +00:00
Fix ForwardingConstructorElementZ.computeEffectiveTargetType
BUG= R=sigmund@google.com Review URL: https://codereview.chromium.org/1981313002 .
This commit is contained in:
parent
0fce71d5e8
commit
bfb8a077e2
|
@ -1256,7 +1256,7 @@ class ForwardingConstructorElementZ extends ElementZ
|
|||
|
||||
@override
|
||||
InterfaceType computeEffectiveTargetType(InterfaceType newType) {
|
||||
return enclosingClass.thisType;
|
||||
return enclosingClass.thisType.substByContext(newType);
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -572,6 +572,11 @@ class ElementPropertyEquivalence extends BaseElementVisitor<dynamic, Element> {
|
|||
element1.computeEffectiveTargetType(element1.enclosingClass.thisType),
|
||||
element2.computeEffectiveTargetType(element2.enclosingClass.thisType),
|
||||
areTypesEquivalent);
|
||||
check(
|
||||
element1, element2, 'effectiveTargetType.raw',
|
||||
element1.computeEffectiveTargetType(element1.enclosingClass.rawType),
|
||||
element2.computeEffectiveTargetType(element2.enclosingClass.rawType),
|
||||
areTypesEquivalent);
|
||||
checkElementIdentities(element1, element2, 'immediateRedirectionTarget',
|
||||
element1.immediateRedirectionTarget,
|
||||
element2.immediateRedirectionTarget);
|
||||
|
|
|
@ -14,6 +14,8 @@ import 'package:compiler/src/compiler.dart';
|
|||
import '../memory_compiler.dart';
|
||||
import 'test_data.dart';
|
||||
|
||||
const String DEFAULT_DATA_FILE_NAME = 'out.data';
|
||||
|
||||
class Arguments {
|
||||
final String filename;
|
||||
final int start;
|
||||
|
@ -29,7 +31,7 @@ class Arguments {
|
|||
this.end,
|
||||
this.loadSerializedData: false,
|
||||
this.saveSerializedData: false,
|
||||
this.serializedDataFileName: 'out.data',
|
||||
this.serializedDataFileName: DEFAULT_DATA_FILE_NAME,
|
||||
this.verbose: false});
|
||||
|
||||
factory Arguments.from(List<String> arguments) {
|
||||
|
@ -38,7 +40,7 @@ class Arguments {
|
|||
int end;
|
||||
for (String arg in arguments) {
|
||||
if (!arg.startsWith('-')) {
|
||||
int index = int.parse(arg);
|
||||
int index = int.parse(arg, onError: (_) => null);
|
||||
if (index == null) {
|
||||
filename = arg;
|
||||
} else if (start == null) {
|
||||
|
@ -51,6 +53,14 @@ class Arguments {
|
|||
bool verbose = arguments.contains('-v');
|
||||
bool loadSerializedData = arguments.contains('-l');
|
||||
bool saveSerializedData = arguments.contains('-s');
|
||||
if (arguments.contains('--auto')) {
|
||||
File file = new File(DEFAULT_DATA_FILE_NAME);
|
||||
if (file.existsSync()) {
|
||||
loadSerializedData = true;
|
||||
} else {
|
||||
saveSerializedData = true;
|
||||
}
|
||||
}
|
||||
return new Arguments(
|
||||
filename: filename,
|
||||
start: start,
|
||||
|
|
Loading…
Reference in a new issue