blob: 7f944e819b155c79a6a6f0258efaeb342000f3e8 [file] [log] [blame]
// Copyright (c) 2012, 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.
package com.google.dart.compiler.type;
import com.google.dart.compiler.resolver.FunctionAliasElement;
import java.util.List;
class FunctionAliasTypeImplementation extends InterfaceTypeImplementation
implements FunctionAliasType {
FunctionAliasTypeImplementation(FunctionAliasElement element, List<Type> arguments) {
super(element, arguments);
}
@Override
public TypeKind getKind() {
return TypeKind.FUNCTION_ALIAS;
}
@Override
public FunctionAliasElement getElement() {
return (FunctionAliasElement) super.getElement();
}
@Override
public FunctionAliasType subst(List<Type> arguments, List<Type> parameters) {
if (arguments.isEmpty() && parameters.isEmpty()) {
return this;
}
List<Type> substitutedArguments = Types.subst(getArguments(), arguments, parameters);
return new FunctionAliasTypeImplementation(getElement(), substitutedArguments);
}
}