private void GenerateTypeDecls(DescriptorBase desc, IndentedTextWriter tw) { var types = desc.GetTypes().Where(t => (!t.IsConstrained || !t.IsComplete) && !t.CILType.IsPrimitive); var synthTypes = types.Where(t => !IsNotSynthesizable(t)); var nonSynthTypes = types.Where(t => IsNotSynthesizable(t)); foreach (var td in synthTypes) { tw.WriteLine("-- " + td.Name); GenerateTypeDecl(td, tw); } if (nonSynthTypes.Any()) { SwitchOffSynthesis(tw); foreach (var td in nonSynthTypes) { tw.WriteLine("-- " + td.Name); GenerateTypeDecl(td, tw); } SwitchOnSynthesis(tw); } }