Boo.Lang.Compiler.TypeSystem.GenericMapping.Map C# (CSharp) Method

Map() public method

Maps a type member involving generic arguments to its constructed counterpart, after substituting concrete types for generic arguments.
public Map ( IEntity source ) : IEntity
source IEntity
return IEntity
        public IEntity Map(IEntity source)
        {
            if (source == null)
                return null;

            // Map generic source to the constructed owner of this mapping
            if (source == _genericSource)
            {
                return _constructedOwner;
            }

            // Use cache if possible
            if (_cache.ContainsKey(source))
            {
                return _cache[source];
            }

            // Map entity based on its entity type
            IEntity mapped = null;
            switch (source.EntityType)
            {
                case EntityType.Ambiguous:
                    mapped = MapAmbiguousEntity((Ambiguous)source);
                    break;

                case EntityType.Method:
                    mapped = new GenericMappedMethod(_tss, ((IMethod)source), this);
                    break;

                case EntityType.Constructor:
                    mapped = new GenericMappedConstructor(_tss, ((IConstructor)source), this);
                    break;

                case EntityType.Field:
                    mapped = new GenericMappedField(_tss, ((IField)source), this);
                    break;

                case EntityType.Property:
                    mapped = new GenericMappedProperty(_tss, ((IProperty)source), this);
                    break;

                case EntityType.Event:
                    mapped = new GenericMappedEvent(_tss, ((IEvent)source), this);
                    break;

                case EntityType.Parameter:
                    mapped = new GenericMappedParameter((IParameter)source, this);
                    break;

                case EntityType.Array:
                case EntityType.Type:
                    mapped = MapType((IType)source);
                    break;

                default:
                    return source;
            }

            // Cache mapped result and return it
            _cache[source] = mapped;
            return mapped;
        }

Same methods

GenericMapping::Map ( IConstructor source ) : IConstructor
GenericMapping::Map ( IEvent source ) : IEvent
GenericMapping::Map ( IField source ) : IField
GenericMapping::Map ( IMethod source ) : IMethod
GenericMapping::Map ( IParameter source ) : IParameter
GenericMapping::Map ( IParameter sources ) : IParameter[]
GenericMapping::Map ( IProperty source ) : IProperty
GenericMapping::Map ( IType source ) : IType

Usage Example

Beispiel #1
0
        public CallableSignature GetSignature()
        {
            if (_signature == null)
            {
                CallableSignature definitionSignature = ((ICallableType)_definition).GetSignature();

                IParameter[] parameters = GenericMapping.Map(definitionSignature.Parameters);
                IType        returnType = GenericMapping.Map(definitionSignature.ReturnType);

                _signature = new CallableSignature(parameters, returnType);
            }

            return(_signature);
        }
All Usage Examples Of Boo.Lang.Compiler.TypeSystem.GenericMapping::Map