private static ClassType CreateClassType(TypeInfo typeInfo) { var parameterTypes = GetParameterTypes(typeInfo); var baseType = GetBaseType(typeInfo); var interfaceTypes = GetImplementedInterfaceTypes(typeInfo); var logicalType = new ClassType(typeInfo.GetNameWithoutArity(), parameterTypes, baseType, interfaceTypes); if (!_typeRepository.ContainsKey(typeInfo)) { _typeRepository.Add(typeInfo, logicalType); } foreach (var member in GetMembers(typeInfo)) { logicalType.Members.Add(member); } return logicalType; }
private static ParameterType CreateParameterType(TypeInfo typeInfo) { var logicalType = new ParameterType(typeInfo.GetNameWithoutArity()); if (!_typeRepository.ContainsKey(typeInfo)) { _typeRepository.Add(typeInfo, logicalType); } return logicalType; }
private static InterfaceType CreateInterfaceType(TypeInfo typeInfo) { var parameterTypes = GetParameterTypes(typeInfo); var interfaceTypes = GetImplementedInterfaceTypes(typeInfo); var logicalType = new InterfaceType(typeInfo.GetNameWithoutArity(), parameterTypes, interfaceTypes); if (!_typeRepository.ContainsKey(typeInfo)) { _typeRepository.Add(typeInfo, logicalType); } return logicalType; }
private static StructType CreateStructType(TypeInfo typeInfo) { var parameterTypes = GetParameterTypes(typeInfo); var logicalType = new StructType(typeInfo.GetNameWithoutArity(), parameterTypes); if (!_typeRepository.ContainsKey(typeInfo)) { _typeRepository.Add(typeInfo, logicalType); } return logicalType; }