예제 #1
0
        public string[] GetNames(ILConversion conversion, ConvertedGenericParameterTypeDefinitionsMask_I definitions)
        {
            var all = definitions.All;

            string[] nameList = new string[all.Count];

            for (int i = 0; i < all.Count; i++)
            {
                var tp = (ConvertedGenericParameterTypeDefinition)all[i];

                nameList[i] = tp.Name;
            }

            return(nameList);
        }
예제 #2
0
        public void Add(ILConversion conversion, ConvertedGenericParameterTypeDefinitionsMask_I definitions, ConvertedGenericParameterTypeDefinition typeParameter)
        {
            if (typeParameter.TypeParameterKind == TypeParameterKind.Unknown)
            {
                throw new Exception("Type parameter kind is set to unknown");
            }

            if (typeParameter.Position < 0)
            {
                throw new Exception("Position cannot be a negative number.  Make sure it is set to value greater than or equal to zero when creating the parameter.");
            }

            definitions.ByName.Add(typeParameter.Name, typeParameter);

            definitions.ByPosition.Add(typeParameter.Position, typeParameter);

            definitions.All.Add(typeParameter);
        }
예제 #3
0
        public ConvertedGenericParameterTypeDefinition_I GetOrThrow(ILConversion conversion, ConvertedGenericParameterTypeDefinitionsMask_I definitions, string name)
        {
            var result = Get(conversion, definitions, name);

            if (result == null)
            {
                throw new Exception($"Could not find type parameter with name {name}");
            }

            return(result);
        }
예제 #4
0
        public ConvertedGenericParameterTypeDefinition_I Get(ILConversion conversion, ConvertedGenericParameterTypeDefinitionsMask_I definitions, int position)
        {
            if (definitions.ByPosition.TryGetValue(position, out SemanticGenericParameterTypeDefinitionMask_I typeParameter))
            {
                return((ConvertedGenericParameterTypeDefinition_I)typeParameter);
            }

            return(null);
        }
예제 #5
0
        public ConvertedGenericParameterTypeDefinition_I Get(ILConversion conversion, ConvertedGenericParameterTypeDefinitionsMask_I definitions, string name)
        {
            if (definitions.ByName.TryGetValue(name, out SemanticGenericParameterTypeDefinitionMask_I typeParameter))
            {
                return((ConvertedGenericParameterTypeDefinition_I)typeParameter);
            }

            return(null);
        }
예제 #6
0
        public ConvertedGenericParameterTypeDefinition_I GetOrThrow(ILConversion conversion, ConvertedGenericParameterTypeDefinitionsMask_I definitions, int position)
        {
            var result = Get(conversion, definitions, position);

            if (result == null)
            {
                throw new Exception($"Could not find type parameter with position {position}");
            }

            return(result);
        }