diff --git a/Upsilon/BoundTypes/UserDataBoundTypeDefinition.cs b/Upsilon/BoundTypes/UserDataBoundTypeDefinition.cs index b48a850..fcc4fd1 100644 --- a/Upsilon/BoundTypes/UserDataBoundTypeDefinition.cs +++ b/Upsilon/BoundTypes/UserDataBoundTypeDefinition.cs @@ -23,7 +23,7 @@ namespace Upsilon.BoundTypes } public UserDataBoundTypeDefinition(string name, Dictionary backingType) - : base(new TypeContainer(name), typeof(void)) + : base(new TypeContainer(name), new System.Type[0]) { Name = name; Properties = backingType; @@ -216,10 +216,17 @@ namespace Upsilon.BoundTypes { var parent = (UserDataBoundTypeDefinition) ((UserDataVariableSymbol) variable).BoundTypeDefinition; - if (functionParameter.ActualType != null && - !parent.ValidInternalTypes.Any(x => string.Equals(x.Name, functionParameter.ActualType))) + if (parent.ValidInternalTypes.Length != 0) { - return false; + if (functionParameter.ActualType != null && + !parent.ValidInternalTypes.Any(x => string.Equals(x.Name, functionParameter.ActualType))) + { + return false; + } + if (!string.Equals(parent.Name, functionParameter.ActualType, StringComparison.InvariantCultureIgnoreCase)) + { + return false; + } } } }