Method | Description | |
---|---|---|
GetInferedType ( |
Provides generic type inference for a single parameter. For example: M{T}(T x) M{T}(IList{T} x) M{T}(ref T x) M{T}(T[] x) M{T}(ref Dictionary{T,T}[] x) |
Method | Description | |
---|---|---|
AddDependency ( Dictionary |
||
AddNestedDependencies ( Dictionary |
||
AddOneInput ( ArgumentInputs>.Dictionary |
Adds any additional ArgumentInputs entries for the given object and parameter type.
|
|
CollectGenericParameters ( |
Walks the nested generic hierarchy to construct all of the generic parameters referred to by this type. For example if getting the generic parameters for the x parameter on the method: void Foo{T0, T1}(Dictionary{T0, T1} x); We would add both typeof(T0) and typeof(T1) to the list of generic arguments.
|
|
ConstraintsViolated ( |
Checks if the constraints are violated by the given input for the specified generic method parameter. This method must be supplied with a mapping for any dependent generic method type parameters which this one can be constrained to. For example for the signature "void Foo{T0, T1}(T0 x, T1 y) where T0 : T1". we cannot know if the constraints are violated unless we know what we have calculated T1 to be.
|
|
CreateNewArgBuilders ( |
Creates a new set of arg builders for the given generic method definition which target the new parameters.
|
|
CreateNewWrappers ( |
Creates a new list of ParameterWrappers for the generic method replacing the old parameters with the new ones.
|
|
EnsureInputs ( ArgumentInputs>.Dictionary |
||
GetAllArguments ( Microsoft.Scripting.Actions.Calls.ApplicableCandidate candidate, Microsoft.Scripting.Actions.Calls.ActualArguments actualArgs ) : List |
||
GetArgumentToInputMapping ( |
Returns a mapping from generic type parameter to the input DMOs which map to it.
|
|
GetDependencyMapping ( |
Builds a mapping based upon generic parameter constraints between related generic parameters. This is then used to sort the generic parameters so that we can process the least dependent parameters first. For example given the method: void Foo{T0, T1}(T0 x, T1 y) where T0 : T1 We need to first infer the type information for T1 before we infer the type information for T0 so that we can ensure the constraints are correct.
|
|
GetGenericArgumentsForInferedMethod ( |
Gets the generic arguments for method based upon the constraints discovered during type inference. Returns null if not all generic arguments had their types inferred.
|
|
GetInferedType ( |
Provides generic type inference for a single parameter. For example: M{T}(T x) M{T}(IList{T} x) M{T}(ref T x) M{T}(T[] x) M{T}(ref Dictionary{T,T}[] x) |
|
GetInferedTypeForInterface ( |
||
GetSortedGenericArguments ( |
Gets the generic type arguments sorted so that the type arguments that are depended upon by other type arguments are sorted before their dependencies.
|
|
InferGenericMethod ( Microsoft.Scripting.Actions.Calls.ApplicableCandidate candidate, Microsoft.Scripting.Actions.Calls.ActualArguments actualArgs ) : |
||
IsDependentConstraint ( Dictionary |
Checks to see if the x type parameter is dependent upon the y type parameter.
|
|
MatchGenericParameter ( |
||
MatchGenericParameter ( |
Finds all occurences of
|
public static GetInferedType ( |
||
genericParameter | ||
parameterType | ||
inputType | ||
argType | ||
binding | Type>.Dictionary | |
return |