blob: 6fbff8fc47c98fe5bf643729293f8eab6fe9d646 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
|
2009-01-28 Jb Evain <jbevain@novell.com>
* TypeRocks.cs: Resolve: remove. Implements: handle types
with a null BaseType.
* MethodRocks.cs: Resolve: remove. IsOverride: handle types
with a null BaseType.
* FieldRocks.cs: remove Resolve.
2008-12-30 Sebastien Pouliot <sebastien@ximian.com>
* MethodRocks.cs (IsProperty, IsVisible): Check that resolved method
is non null before continuing. Based on patch from Tamara Roberson.
[partial fix for #462925]
2008-12-01 Sebastien Pouliot <sebastien@ximian.com>
* CustomAttributeRocks.cs: Use HasCustomAttributes
* InstructionRocks.cs: Use HasParameters
* MethodRocks.cs: Use HasConstraints and HasParameters
* TypeRocks.cs: Use HasInterfaces, HasParameters, HasMethods and
HasConstructors.
2008-11-29 Sebastien Pouliot <sebastien@ximian.com>
* FieldRocks.cs: Use HasCustomAttributes in IsGeneratedCode. Handle
unresolvable fields in IsVisible.
* MethodRocks.cs: Use HasCustomAttributes in IsGeneratedCode. Use
HasParameters in IsEventCallback.
* TypeRocks.cs: Use HasCustomAttributes in IsGeneratedCode. Handle
unresolvable fields in IsFlag.
2008-11-19 Sebastien Pouliot <sebastien@ximian.com>
* TypeRocks.cs: Make GetMethod smarter and check only the methods
or the constructors when possible. Split Implements in two parts
to remove some checks when recursion is needed. Also avoid recursion
for checking the base types. Add IsPrimitive rock.
2008-11-11 Sebastien Pouliot <sebastien@ximian.com>
* ModuleRocks.cs: Change the catch-all for a catch(FormatException)
since Cecil has been fixed on HEAD.
2008-11-09 Sebastien Pouliot <sebastien@ximian.com>
* MethodRocks.cs: Make IsEventCallback safe if the method cannot be
resolved.
2008-11-08 Sebastien Pouliot <sebastien@ximian.com>
* MethodRocks.cs: Fix IsEventCallback to work with generic TEventArgs
2008-11-02 Jesse Jones <jesjones@mindspring.com>
* InstructionRocks.cs: Fixed TraceBack so that it only goes back
if the stack is non empty (the old code had problems with nullary
static methods for example).
2008-11-02 Sebastien Pouliot <sebastien@ximian.com>
* ModuleRocks.cs: Add a catch-all since we can't catch the
MonoSymbolFileException throw for earlier version of the MDB
debugging symbols.
2008-10-26 Sebastien Pouliot <sebastien@ximian.com>
* CommonRocks.cs: Add Version.IsEmpty() rock
2008-10-25 Cedric Vivier <cedricv@neonux.com>
* TypeRocks.cs: Make Implements() look at parent interfaces too.
This avoid false negatives on assemblies generated by compilers
which do not explicitely list interfaces implemented by inheritance
(such as booc).
2008-10-12 Sebastien Pouliot <sebastien@ximian.com>
* InstructionRocks.cs: Simplify GetField by using OperandType.
Simplify getting a FieldType in GetOperandType since there is no
need to resolve the field into a FieldDefinition.
2008-10-11 Sebastien Pouliot <sebastien@ximian.com>
* InstructionRocks.cs: Handle 'this' correctly in GetOperandType
rock. Add new rock to check for an operand loading the constant zero.
2008-10-11 Sebastien Pouliot <sebastien@ximian.com>
* InstructionRocks.cs: Add GetOperandType rock to be able, quickly,
to determine on which type an instruction works.
2008-10-05 Sebastien Pouliot <sebastien@ximian.com>
* MethodRocks.cs: Add IsOverride rock.
2008-08-28 Sebastien Pouliot <sebastien@ximian.com>
* InstructionRocks.cs: Simplify some rocks (Is*) by using the new
OpCodeBitmask helper class.
2008-08-27 Sebastien Pouliot <sebastien@ximian.com>
* AssemblyRocks.cs: Remove HasAttribute
* CustomAttributeRocks.cs: Add HasAttribute extension method on
ICustomAttributeProvider
* FieldRocks.cs: Remove HasAttribute
* MethodRocks.cs: Remove HasAttribute
* TypeRocks.cs: Remove HasAttribute
2008-08-26 Sebastien Pouliot <sebastien@ximian.com>
* TypeRocks.cs: Fix parameter type comparison wrt generics.
2008-08-03 Sebastien Pouliot <sebastien@ximian.com>
* InstructionRocks.cs: Add an overload to TraceBack that accept an
offset. This makes it easier to find all parameters to a method call.
2008-07-24 Sebastien Pouliot <sebastien@ximian.com>
* ModuleRocks.cs: Exit early from LoadDebuggingSymbols if the symbols
are already loaded (i.e. the reader was created). This avoid an
exception for the wizard since this is called each time a new analysis
is performed (without the need to reload the assemblies).
2008-07-15 Nestor Salceda <nestor.salceda@gmail.com>
* ModuleRocks.cs: Look up the Mono.Cecil.Mdb.dll in the GAC if can't be
found in the current folder.
2008-07-12 Sebastien Pouliot <sebastien@ximian.com>
* TypeRocks.cs: Added IsStatic for static types (2.0+). Fixed
IsVisible to work when resolving is required (or not possible).
2008-07-12 Sebastien Pouliot <sebastien@ximian.com>
* InstructionRocks.cs: Change GetOperand to case Ldc_I4_S to an
integer before returing it since it simplify the rules, e.g. when
the value is used in a collection.
2008-07-07 Sebastien Pouliot <sebastien@ximian.com>
* CommonRocks.cs: Change rocks from IList<T> to ICollection<T>
since they will be more useful this way.
* TypeRocks.cs: Avoid exceptions when a Resolve call fails.
IsDelegate fix by Cedric Vivier.
2008-07-05 Sebastien Pouliot <sebastien@ximian.com>
* InstructionRocks.cs: Add a special case for PopAll so we can
abort the track back (without an exception). Fix XML documentation
warning.
2008-07-05 Sebastien Pouliot <sebastien@ximian.com>
* InstructionRocks.cs: Add IsLoadElement, IsLoadIndirect and
TraceBack rocks.
2008-06-29 Sebastien Pouliot <sebastien@ximian.com>
* InstructionRocks.cs: Change GetOperand to return a
TypeReference when "this" (ldarg_0 in an instance method) is
found.
2008-06-23 Sebastien Pouliot <sebastien@ximian.com>
* InstructionRocks.cs: Add GetParameter, IsLoadArgument and
IsStoreArgument rocks. Move GetPopCount and GetPushCount from
StackEntryAnalysis.
2008-06-15 Sebastien Pouliot <sebastien@ximian.com>
* InstructionRocks.cs: Add GetOperand rock to simplify the analysis
of macro instructions.
2008-06-14 Sebastien Pouliot <sebastien@ximian.com>
* InstructionRocks.cs: New. Extension methods for Instruction.
2008-05-17 Sebastien Pouliot <sebastien@ximian.com>
* ModuleRocks.cs: New. Extension methods for ModuleDefinition.
2008-04-27 Jb Evain <jbevain@novell.com>
* MethodRocks.cs: Add a IsEventCallback method rock. Used
to detect methods whose signature are of the form:
void Method (object sender, EventArgs ea).
2008-03-30 Sebastien Pouliot <sebastien@ximian.com>
* TypeRocks.cs: Handle generic interfaces in Implements.
2008-03-30 Sebastien Pouliot <sebastien@ximian.com>
* TypeRocks.cs: Don't break but continue if parameters don't match.
There could be a matching overload just waiting to be found.
2008-03-16 Sebastien Pouliot <sebastien@ximian.com>
* TypeRocks.cs: Add null check in Resolve.
2008-03-04 Sebastien Pouliot <sebastien@ximian.com>
* TypeRocks.cs: Add Contains[Any]Type method extentions for
TypeReferenceCollection
2008-02-15 Sebastien Pouliot <sebastien@ximian.com>
* AssemblyRocks.cs: Add References rock.
* CommonRocks.cs: Add AddRangeIfNew<T> rock.
* TypeRocks.cs: re-enable Gendarme.Framework.Helpers
2008-02-14 Sebastien Pouliot <sebastien@ximian.com>
* FieldRocks.cs: Add Resolve (FieldReference to FieldDefinition) and
change other rocks to accept FieldReference (and Resolve themselves).
* MethodRocks.cs: Add Resolve (MethodReference to MethodDefinition)
and change other rocks to accept MethodReference (and Resolve
themselves).
* TypeRocks.cs: Add Resolve (TypeReference to TypeDefinition) and
change other rocks to accept TypeReference (and Resolve themselves).
2008-02-14 Sebastien Pouliot <sebastien@ximian.com>
* CecilRocks.cs: New. Shared rocks on other Cecil types
(IMetadataTokenProviderRock).
* CustomAttributeRocks.cs: Fix exception argument.
* TypeRocks.cs: Added AllMethods to return an IEnumerable with
all methods *and* constructors. Fixed GetMethod methods to use it.
Add IsDelegate.
2008-02-07 Sebastien Pouliot <sebastien@ximian.com>
* MethodRocks.cs: Remove IsGetter and IsSetter since they are now
properties in Cecil (SVH HEAD) and break the build.
* TypeRocks.cs: Remove obsoleted GetFinalizer since Nestor fixed all
their uses in the rules.
2008-02-06 Sebastien Pouliot <sebastien@ximian.com>
* TypeRocks.cs: IsAttribute now works on a TypeReference. Fix
IsVisible documentation (it needs a TypeDefinition). Rework
IsGeneratedCode to ensure it catch the <Module> type (which is not
marked with an attribute).
2008-01-30 Sebastien Pouliot <sebastien@ximian.com>
* CommonRocks.cs: New. Shared but not Gendarme/Cecil specific rocks.
ListRocks by Andreas Noever.
2008-01-21 Sebastien Pouliot <sebastien@ximian.com>
* FieldRocks.cs: Add IsVisible rock [Andreas Noever]
* MethodRocks.cs: Add IsVisible rock [Andreas Noever]
* TypeRocks.cs: Add IsVisible rock [Andreas Noever]
2008-01-19 Sebastien Pouliot <sebastien@ximian.com>
* TypeRocks.cs: Handle nested types in IsGeneratedCode for all
framework versions.
2008-01-18 Sebastien Pouliot <sebastien@ximian.com>
* TypeRocks.cs: Add [Get|Has]Method rocks from Andreas Noever. Mark
GetFinalizer as obsolete (will be removed soon).
2008-01-13 Sebastien Pouliot <sebastien@ximian.com>
* MethodRocks.cs: Add IsFinalizer [Daniel Abramov]
* TypeRocks.cs: Rework GetFinalizer to use MethodRocks.IsFinalizer
2008-01-13 Sebastien Pouliot <sebastien@ximian.com>
* TypeRocks.cs: Add IsNative [Andreas Noever]
2008-01-12 Sebastien Pouliot <sebastien@ximian.com>
* TypeRocks.cs: Add IsFloatingPoint rock and update IsGeneratedCode
to deal with code compiled before 2.0
2008-01-05 Sebastien Pouliot <sebastien@ximian.com>
* AssemblyRocks.cs: Rename calls to Contains[Any] -> Contains[Any]Type
* CustomAttributeRocks.cs: Rename Contains to ContainsType (and
ContainsAny to ContainsAnyType) to avoid an extension methods that
would also be an overload to a Cecil method (revert JB's confusion ;-)
* FieldRocks.cs: New. Extension methods for Cecil's FieldDefinition
class.
* MethodRocks.cs: Rename calls to Contains[Any] -> Contains[Any]Type
* TypeRocks.cs: Rename calls to Contains[Any] -> Contains[Any]Type
2008-01-04 Sebastien Pouliot <sebastien@ximian.com>
* AssemblyRocks.cs: New. Extension methods for Cecil's
AssemblyDefinition class.
* CustomAttributeRocks.cs: Add ContainsAny method that checks if
any of the specified attributes are present in the collection.
* MethodRocks.cs: Replace IsCompilerGenerated by the more general
IsGeneratedCode, which check for two similar attributes and also
checks if the type was generated.
* TypeRocks.cs: Add GetFinalizer to return the type finalizer (if
any). Add IsGeneratedCode (similar to MethodRocks). Change
HasAttribute to work on a TypeReference (instead of TypeDefinition)
2008-01-02 Sebastien Pouliot <sebastien@ximian.com>
* MethodRocks.cs: Added IsArray extension method (based on code
from Adrian Tsai).
* TypeRocks.cs: Added IsAttribute and Inherits extensions methods
(based on code from Daniel Abramov) and IsProperty (based on code
from Adrian Tsai).
2007-12-26 Sebastien Pouliot <sebastien@ximian.com>
* CustomAttributeRocks.cs: New. Extension methods for Cecil's
CustomAttribute[Collection] classes.
* MethodRocks.cs: New. Extension methods for Cecil's
Method[Reference|Definition][Collection] classes.
* TypeRocks.cs: New. Extension methods for Cecil's
Type[Reference|Definition][Collection] classes.
|