001 package org.jetbrains.jet.lang.resolve.calls;
002
003 import org.jetbrains.annotations.NotNull;
004 import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
005 import org.jetbrains.jet.lang.resolve.calls.context.BasicCallResolutionContext;
006 import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
007 import org.jetbrains.jet.lang.resolve.calls.results.OverloadResolutionResultsImpl;
008
009 import java.util.List;
010
011 public class CompositeExtension implements CallResolverExtension {
012
013 private final List<CallResolverExtension> extensions;
014
015 public CompositeExtension(@NotNull List<CallResolverExtension> extensions) {
016 this.extensions = extensions;
017 }
018
019 @Override
020 public <F extends CallableDescriptor> void run(
021 @NotNull ResolvedCall<F> resolvedCall,
022 @NotNull BasicCallResolutionContext context
023 ) {
024 for (CallResolverExtension resolverExtension : extensions) {
025 resolverExtension.run(resolvedCall, context);
026 }
027 }
028 }