/rocks/Mono.Cecil.Rocks/ModuleDefinitionRocks.cs
http://github.com/jbevain/cecil · C# · 32 lines · 17 code · 5 blank · 10 comment · 2 complexity · 8170caf31a0d575385b9a26630003ba7 MD5 · raw file
- //
- // Author:
- // Jb Evain (jbevain@gmail.com)
- //
- // Copyright (c) 2008 - 2015 Jb Evain
- // Copyright (c) 2008 - 2011 Novell, Inc.
- //
- // Licensed under the MIT/X11 license.
- //
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace Mono.Cecil.Rocks {
- #if INSIDE_ROCKS
- public
- #endif
- static class ModuleDefinitionRocks {
- public static IEnumerable<TypeDefinition> GetAllTypes (this ModuleDefinition self)
- {
- if (self == null)
- throw new ArgumentNullException ("self");
- // it was fun to write, but we need a somewhat less convoluted implementation
- return self.Types.SelectMany (
- Functional.Y<TypeDefinition, IEnumerable<TypeDefinition>> (f => type => type.NestedTypes.SelectMany (f).Prepend (type)));
- }
- }
- }