| Index: dart/lib/compiler/implementation/ssa/builder.dart
|
| diff --git a/dart/lib/compiler/implementation/ssa/builder.dart b/dart/lib/compiler/implementation/ssa/builder.dart
|
| index bfa4f7da9f40c82044fa81bcb8f073725b8d185b..f9941b951a3fbfa93e048bd4cd59c53fbc14b421 100644
|
| --- a/dart/lib/compiler/implementation/ssa/builder.dart
|
| +++ b/dart/lib/compiler/implementation/ssa/builder.dart
|
| @@ -219,18 +219,22 @@ class SsaBuilderTask extends CompilerTask {
|
| defaultValueTypes.update(index, parameter.name, type);
|
| index++;
|
| });
|
| + } else {
|
| + // TODO(ahe): I have disabled type optimizations for
|
| + // optional arguments as the types are stored in the wrong
|
| + // order.
|
| + HTypeList parameterTypes =
|
| + backend.optimisticParameterTypes(element.declaration,
|
| + defaultValueTypes);
|
| + if (!parameterTypes.allUnknown) {
|
| + int i = 0;
|
| + signature.forEachParameter((Element param) {
|
| + builder.parameters[param].guaranteedType = parameterTypes[i++];
|
| + });
|
| + }
|
| + backend.registerParameterTypesOptimization(
|
| + element.declaration, parameterTypes, defaultValueTypes);
|
| }
|
| - HTypeList parameterTypes =
|
| - backend.optimisticParameterTypes(element.declaration,
|
| - defaultValueTypes);
|
| - if (!parameterTypes.allUnknown) {
|
| - int i = 0;
|
| - signature.orderedForEachParameter((Element param) {
|
| - builder.parameters[param].guaranteedType = parameterTypes[i++];
|
| - });
|
| - }
|
| - backend.registerParameterTypesOptimization(
|
| - element.declaration, parameterTypes, defaultValueTypes);
|
| }
|
|
|
| if (compiler.tracer.enabled) {
|
|
|