private void EnsureVariableTypes(ILConversion conversion, MethodDefinition method, TypeReference genericArgumentSource) { if (method.Body.HasVariables) { foreach (var variable in method.Body.Variables) { var resolvedVariableTypeReference = Cecil.ResolveAnyTypeArguments(genericArgumentSource, variable.VariableType); Types.Scanning.EnsureType(conversion, resolvedVariableTypeReference); } } }
private void EnsureReturnType(ILConversion conversion, MethodDefinition method, TypeReference genericArgumentSource) { var returnType = method.ReturnType; // If generic, go ahead and skip. It will get resolved. if (returnType.IsGenericParameter) { return; } var resolvedReturnTypeReference = Cecil.ResolveAnyTypeArguments(genericArgumentSource, returnType); Types.Scanning.EnsureType(conversion, resolvedReturnTypeReference); }
private void EnsureTypes(ILConversion conversion, EventDefinition propertyDefinition, TypeReference genericArgumentSource) { var eventTypeReference = propertyDefinition.EventType; // If generic, go ahead and skip. It will get resolved. if (eventTypeReference.IsGenericParameter) { return; } var resolvedEventTypeReference = Cecil.ResolveAnyTypeArguments(genericArgumentSource, propertyDefinition.EventType); var eventTypeDefinition = Models.Types.ResolveToTypeDefinition(conversion.RuntimicSystem, resolvedEventTypeReference); Execution.Types.Ensuring.Ensure(conversion, eventTypeDefinition, null, null); }
private void EnsureGenericParameters(ILConversion conversion, MethodDefinition method, TypeReference genericArgumentSource) { var genericParameters = method.GenericParameters; for (int i = 0; i < genericParameters.Count; i++) { var genericParameter = genericParameters[i]; var genericParameterConstraints = genericParameter.Constraints; for (int j = 0; j < genericParameterConstraints.Count; j++) { var resolvedConstraintTypeReference = Cecil.ResolveAnyTypeArguments(genericArgumentSource, genericParameterConstraints[j]); Types.Scanning.EnsureType(conversion, resolvedConstraintTypeReference); } } }
private void EnsureTypes(ILConversion conversion, PropertyDefinition propertyDefinition, TypeReference genericArgumentSource) { var propertyTypeReference = propertyDefinition.PropertyType; // If generic, go ahead and skip. It will get resolved. if (propertyTypeReference.IsGenericParameter) { return; } var resolvedPropertyTypeReference = Cecil.ResolveAnyTypeArguments(genericArgumentSource, propertyTypeReference); var propertyTypeDefinition = Models.Types.ResolveToTypeDefinition(conversion.RuntimicSystem, resolvedPropertyTypeReference); //Execution.Types.Ensuring.Ensure(conversion.Model, propertyTypeDefinition, null, null); throw new System.Exception("Fix"); }
private void EnsureParameterTypes(ILConversion conversion, MethodDefinition method, TypeReference genericArgumentSource) { var parameters = method.Parameters; for (int i = 0; i < parameters.Count; i++) { var parameter = parameters[i]; var parameterType = parameter.ParameterType; if (parameterType.IsGenericParameter) { continue; } var resolvedParameterTypeReference = Cecil.ResolveAnyTypeArguments(genericArgumentSource, parameterType); Types.Scanning.EnsureType(conversion, resolvedParameterTypeReference); } }