Commit Graph

165 Commits

Author SHA1 Message Date
Katy Coe
37f1c49828 Model: Ensure all TypeRefs are initialized with the model
Ensures that all types are output in the IDA Python script
Includes TypeRefs that aren't used in any type definition or member
2020-01-30 07:54:45 +01:00
Katy Coe
a1e332620c Move FileFormatReader.cs and Il2CppModel.cs 2020-01-30 06:44:03 +01:00
Katy Coe
9220799d56 Model: Fix ContainsGenericParameters behaviour for element types etc. 2020-01-30 06:32:31 +01:00
Katy Coe
a640d866ae Model: Types from TypeRefs should not have a definition or index 2020-01-29 10:20:36 +01:00
Katy Coe
a338196057 Model: Introduce TypeInfo.GetGenericArguments(), refactor handling 2020-01-29 10:14:41 +01:00
Katy Coe
871c368e49 Model: Implement GenericParameterPosition for TypeRefs 2020-01-29 08:46:46 +01:00
Katy Coe
a7027c886e Minor tidying up 2020-01-28 05:57:24 +01:00
Katy Coe
8a27b45775 IDA: Output string literals correctly 2020-01-27 06:41:18 +01:00
Katy Coe
7704c9f3d9 Model: Fix unscoped type names in files with no namespaces in scope 2020-01-19 02:57:24 +01:00
Katy Coe
adc52818fb Model: Detect and fix orphan property methods 2020-01-18 21:30:34 +01:00
Katy Coe
64b263bafb IL2CPP: Merge attribute and method pointers, improve attribute function end addresses 2020-01-18 20:28:53 +01:00
Katy Coe
140e31b206 Output: Fix crash outputting undefined enum value (use cast instead) (#11) 2020-01-06 11:06:14 +01:00
Katy Coe
2b32d2535e Remove debugging output from TypeInfo.getScopedFullName 2019-12-14 14:05:10 +01:00
Katy Coe
e3058597f3 Output: Fix regression in truncation of interface names for explicitly implemented properties 2019-12-14 14:00:10 +01:00
Katy Coe
8d272a25fc Make model access thread-safe 2019-12-14 12:00:47 +01:00
Katy Coe
98366a7b49 Output: Explicitly implemented generic properties could have mismatched chevrons 2019-12-12 11:14:14 +01:00
Katy Coe
001e60dbde Output: Fix \u-format string escaping 2019-12-12 10:33:33 +01:00
Katy Coe
1ce823833f Output: Extension method first parameter attributes must go before 'this' 2019-12-12 10:26:09 +01:00
Katy Coe
f60047a55a Output: Prepend fields, events, properties and parameter names using reserved C# keywords with @ 2019-12-12 10:18:55 +01:00
Katy Coe
88be17003e Output: Don't include nested generic type parameters in generic type usages (CS0305) 2019-12-11 12:34:36 +01:00
Katy Coe
ffb1ebced7 Output: Ignore static and non-public constructors when determining if an attribute should be commented out (CS7036) 2019-12-11 10:47:20 +01:00
Katy Coe
5a42afe7f2 Model and Output: Dramatically improve handling of byref types 2019-12-11 09:30:00 +01:00
Katy Coe
d8befc0a15 Output: Give non-auto-properties accessor bodies (CS8080) 2019-12-10 15:32:13 +01:00
Katy Coe
33de89bed7 Output: Add AttributeTargets.All to AttributeUsage instances when using --must-compile (CS0592) 2019-12-10 03:13:37 +01:00
Katy Coe
c24bb6a7bd Output: Use default instead of null for default struct and generic type parameter values (CS1750) 2019-12-10 02:57:57 +01:00
Katy Coe
12ecce4086 Output: Don't show default values for required parameters in method signatures (CS1737) 2019-12-10 01:34:50 +01:00
Katy Coe
a38b75c9c1 Output: struct/class must be the first generic type constraint (CS0449) 2019-11-30 07:21:09 +01:00
Katy Coe
da9252a68c Output: Show enum usages as their corresponding member names (CS0266, CS1750) 2019-11-29 08:37:46 +01:00
Katy Coe
b36ccda9b9 Model: Small naming corrections to improve reliability (re: CS0308) 2019-11-29 06:51:30 +01:00
Katy Coe
022d6db74a Model and Output: Calculate generic type parameter scopes in nested type usages (CS0308) 2019-11-29 04:56:39 +01:00
Katy Coe
6e304ab7da Model: Include type parameter constraints in generic class definition when finding referenced types (CS0246) 2019-11-29 02:46:42 +01:00
Katy Coe
0fe5fa53a6 Model: Include the global namespace when checking for ambiguous type references 2019-11-29 02:33:47 +01:00
Katy Coe
c113f3abe9 Model: Include generic type arguments in GetAllTypeReferences() (CS0246) 2019-11-28 18:36:35 +01:00
Katy Coe
e48c1813f3 Model and Output: Retrieve fully qualified assembly names 2019-11-28 04:44:27 +01:00
Katy Coe
946288a7b5 Model: Give names to unnamed parameters 2019-11-28 04:17:22 +01:00
Katy Coe
de846ea6db Clean up some compiler messages 2019-11-28 04:00:32 +01:00
Katy Coe
f77a9e5289 Model: TypeInfo.GetMethods() returned incorrect data 2019-11-28 03:49:09 +01:00
Katy Coe
e3cd4a06d2 Output: Dramatically improve scope resolution (CS0104, CS0234, CS0246, CS0718, CS0721, CS0722, CS0723) 2019-11-27 18:33:59 +01:00
Katy Coe
f41c6dc231 Output: Don't output base method generic constraints on overridden method (CS0460) 2019-11-18 07:27:58 +01:00
Katy Coe
36f7c19b8f Model: Improve signature matching for overridden/hidden methods (CS0108) 2019-11-18 07:24:47 +01:00
Katy Coe
8f7b461310 Output: Render finalizers as C# destructors (CS0249) 2019-11-18 06:24:18 +01:00
Katy Coe
b141e57598 Output: Annotate float values with 'f' suffix (CS0664) 2019-11-18 06:06:42 +01:00
Katy Coe
e1752febbb Model: Include ComVisible and Serializable in TypeInfo.GetAllTypeReferences() 2019-11-18 02:46:07 +01:00
Katy Coe
3849b38520 Output: Fix regressions in TypeInfo.CSharpTypeDeclarationName and TypeInfo.CSharpName 2019-11-18 02:19:25 +01:00
Katy Coe
4e3a8f25cc Output: Correctly handle slicing of explicit interface implementations with built-in types 2019-11-18 01:59:49 +01:00
Katy Coe
aa50791362 Output: Don't output inherited generic type parameters on nested class definitions 2019-11-18 01:58:53 +01:00
Katy Coe
7167f37d18 Output: Fix covariant/contravariant generic constraints and nested generic parameters in type definitions 2019-11-18 01:06:24 +01:00
Katy Coe
10dfc60344 Output: Don't emit unnecessary scope on explicit interface implementations of methods and properties 2019-11-18 00:43:42 +01:00
Katy Coe
22d85ce683 Output: Explicit interface implementations should not have access level modifiers 2019-11-17 23:20:23 +01:00
Katy Coe
32608874cc Output: Handle scoped type name resolution conflicts (CS0104) 2019-11-17 22:27:44 +01:00