示例#1
0
文件: AST.cs 项目: chenzuo/blue
    // Requires that all of our base types have been resolved.
    void CreateCLRType(
        ISemanticResolver s,
        ICLRtypeProvider provider)
    {
    // Should have already resolved as a blue type
        Debug.Assert(this.Symbol != null);

        BeginCheckCycle(s);

        // Now that all of our dependent classes have their clr type set,
        // we can go ahead and set ours.
        // Note that a derived class may have already set ours, so we have
        // to check
        if (Symbol.CLRType == null)
        {
            // Get the clr type and then update the symbol engine
            this.Symbol.SetCLRType(provider);
            s.AddClrResolvedType(this.Symbol);
        }
        Debug.Assert(this.Symbol.CLRType != null);

        // Nested classes
        foreach(TypeDeclBase t in this.m_alNestedTypes)
        {
            t.ResolveTypesAsCLR(s, provider);        
        }

        EndCheckCycle();
    }
示例#2
0
文件: AST.cs 项目: chenzuo/blue
 public override void ResolveTypesAsCLR(
     ISemanticResolver s,
     ICLRtypeProvider provider
     )
 {
     if (m_symbol.CLRType != null)
         return;
         
     m_symbol.SetCLRType(provider); // enum
             
     s.AddClrResolvedType(this.Symbol);
 }