Exemplo n.º 1
0
 public TentativeMethodNode(IMethodBodyNode methodNode)
 {
     _methodNode = methodNode;
 }
Exemplo n.º 2
0
        protected virtual void Graph_NewMarkedNode(DependencyNodeCore <NodeFactory> obj)
        {
            var eetypeNode = obj as EETypeNode;

            if (eetypeNode != null)
            {
                _typesWithEETypesGenerated.Add(eetypeNode.Type);

                if (eetypeNode is ConstructedEETypeNode || eetypeNode is CanonicalEETypeNode)
                {
                    _typesWithConstructedEETypesGenerated.Add(eetypeNode.Type);
                }

                return;
            }

            IMethodBodyNode methodBodyNode = obj as IMethodBodyNode;

            if (methodBodyNode != null)
            {
                _methodBodiesGenerated.Add(methodBodyNode);
            }

            IMethodNode methodNode = methodBodyNode;

            if (methodNode != null)
            {
                if (AllMethodsCanBeReflectable)
                {
                    _reflectableMethods.Add(methodNode.Method);
                }
            }

            if (methodNode == null)
            {
                methodNode = obj as ShadowConcreteMethodNode;
            }

            if (methodNode != null)
            {
                _methodsGenerated.Add(methodNode.Method);
                return;
            }

            var reflectableMethodNode = obj as ReflectableMethodNode;

            if (reflectableMethodNode != null)
            {
                _reflectableMethods.Add(reflectableMethodNode.Method);
            }

            var nonGcStaticSectionNode = obj as NonGCStaticsNode;

            if (nonGcStaticSectionNode != null && nonGcStaticSectionNode.HasCCtorContext)
            {
                _cctorContextsGenerated.Add(nonGcStaticSectionNode);
            }

            var gvmEntryNode = obj as TypeGVMEntriesNode;

            if (gvmEntryNode != null)
            {
                _typeGVMEntries.Add(gvmEntryNode);
            }

            var dictionaryNode = obj as GenericDictionaryNode;

            if (dictionaryNode != null)
            {
                _genericDictionariesGenerated.Add(dictionaryNode);

                if (dictionaryNode.OwningEntity is MethodDesc method && AllMethodsCanBeReflectable)
                {
                    _reflectableMethods.Add(method);
                }
            }

            if (obj is StructMarshallingDataNode structMarshallingDataNode)
            {
                _typesWithStructMarshalling.Add(structMarshallingDataNode.Type);
            }

            if (obj is DelegateMarshallingDataNode delegateMarshallingDataNode)
            {
                _typesWithDelegateMarshalling.Add(delegateMarshallingDataNode.Type);
            }

            if (obj is NativeLayoutTemplateMethodSignatureVertexNode templateMethodEntry)
            {
                _templateMethodEntries.Add(templateMethodEntry);
            }
        }