2005-04-12 Dick Porter <dick@ximian.com>
[mono.git] / mcs / ilasm / codegen / GenericMethodSig.cs
1 //
2 // Mono.ILASM.GenericMethodSig
3 //
4 // Author(s):
5 //  Jackson Harper (jackson@ximian.com)
6 //
7 // (C) 2003 Ximian, Inc (http://www.ximian.com)
8 //
9
10 using System;
11
12 namespace Mono.ILASM {
13
14         public class GenericMethodSig {
15
16                 private ITypeRef[] type_list;
17                 private bool is_resolved;
18                 private PEAPI.GenericMethodSig sig;
19
20                 public GenericMethodSig (ITypeRef[] type_list)
21                 {
22                         this.type_list = type_list;
23                         is_resolved = false;
24                 }
25
26                 public PEAPI.GenericMethodSig Sig {
27                         get { return sig; }
28                 }
29
30                 public PEAPI.GenericMethodSig Resolve (CodeGen code_gen)
31                 {
32                         if (is_resolved)
33                                 return sig;
34
35                         PEAPI.Type[] p_type_list = new PEAPI.Type[type_list.Length];
36                         for (int i=0; i<p_type_list.Length; i++) {
37                                 type_list[i].Resolve (code_gen);
38                                 p_type_list[i] = type_list[i].PeapiType;
39                         }
40
41                         sig = new PEAPI.GenericMethodSig (p_type_list);
42                         is_resolved = true;
43
44                         return sig;
45                 }
46
47         }
48
49 }
50
51