// 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(); }
public override void ResolveTypesAsCLR( ISemanticResolver s, ICLRtypeProvider provider ) { if (m_symbol.CLRType != null) return; m_symbol.SetCLRType(provider); // enum s.AddClrResolvedType(this.Symbol); }