Commit Graph

974 Commits

Author SHA1 Message Date
pardeike-bot e791fa3e22 Update documentation [skip ci] 2020-08-09 19:59:21 +00:00
Andreas Pardeike a4f23c0989 Merge pull request #330 from abrenneke/docs-generics
Expand documentation for patching generics
2020-08-09 21:57:22 +02:00
Andy Brenneke 0345a01d8d Expand documentation for patching generics 2020-08-09 05:54:56 -07:00
pardeike-bot 8f0ee8a5fa Update documentation [skip ci] 2020-08-09 10:24:08 +00:00
Andreas Pardeike 16e98e618d bumb to 2.0.3 & cleanup stuff 2020-08-09 12:21:15 +02:00
pardeike-bot 5eeee2f92d Update documentation [skip ci] 2020-08-09 02:56:03 +00:00
lbmaian 33c9a2bd0f Merge pull request #327 from lbmaian/fieldref
AccessTools.*FieldRefAccess improvements, including struct support
2020-08-08 19:52:45 -07:00
lbmaian e31f387851 Add FieldRefAccess tests for field types being private class/struct and arrays/lists of such types 2020-08-08 19:24:08 -07:00
lbmaian 2dc33adf36 Address PR comments 2020-08-08 14:56:10 -07:00
lbmaian 9a3da4be4e AccessTools.*FieldRefAccess improvements, including struct support
Specifically, handle edge cases and have consistent error handling in AccessTools.*FieldRefAccess.
Add AccessTools.StructFieldRef/StructFieldRefAccess.
2020-07-27 03:18:14 -07:00
lbmaian 52481530fc Minor code consistency changes in AccessTools 2020-07-27 03:18:14 -07:00
lbmaian 684b9b782f Fix AccessTools.FindIncludingBaseTypes NRE on interface types, improve related docs
Also, the RECS0017 pragmas are unnecessary due to the generic class constraint, so they're removed.
2020-07-27 03:18:14 -07:00
pardeike-bot abb2d8df84 Update documentation [skip ci] v2.0.2.0 2020-07-27 10:14:16 +00:00
Andreas Pardeike cecf58637e Merge pull request #326 from lbmaian/typebyname
Fix AccessTools.TypeByName/GetTypesFromAssembly to not throw exception when there exist "invalid" assemblies
2020-07-27 12:11:35 +02:00
lbmaian 424c2cedf0 Fix AccessTools.TypeByName/GetTypesFromAssembly to not throw ReflectionTypeLoadException when there exist "invalid" assemblies
For such "invalid" assemblies that throw ReflectionTypeLoadException, the successfully loaded types are returned/searched.
Also always use Assembly.GetTypes() rather than Assembly.DefinedTypes.ToArray().
Also change Harmony.PatchAll to use AccessTools.GetTypesFromAssembly.
2020-07-27 03:11:06 -07:00
pardeike-bot d5806140ec Update documentation [skip ci] 2020-07-27 09:14:06 +00:00
lbmaian 110a68d8f2 Merge pull request #323 from lbmaian/typebynametest
Add AccessTools.TypeByName tests, add TestTools.RunInIsolationContext
2020-07-27 02:08:32 -07:00
lbmaian 4e3e8f3ef1 Fix .editorconfig to actually apply code style, add unused value discard style rules, fix code style in recently changed files 2020-07-27 01:51:52 -07:00
lbmaian 7a89607520 Replace HarmonyTestsDummyAssembly projects with dynamically generated assemblies (and revert related sln changes)
AppDomain/AssemblyLoadContext logic generalized and moved to TestTools.RunInIsolationContext.
Add dependency to Lokad.ILPack to workaround lack of AssemblyBuilder.Save support in .NET Core.
2020-07-27 01:25:51 -07:00
lbmaian 59830d19f9 Add AccessTools.TypeByName tests with new "DummyAssembly" projects to setup invalid assembly test
Also add solution folders in an attempt to avoid a cluttered solution project view
(and since solution folders always appear above root projects in VS, all root projects have been moved into solution folders so that test projects still appear below other projects).
2020-07-27 01:15:55 -07:00
pardeike-bot a274f8cb39 Update documentation [skip ci] 2020-07-27 07:59:35 +00:00
lbmaian 23e8226381 Merge pull request #321 from lbmaian/fieldreftest
Exhaustively document current AccessTools.*FieldRefAccess behavior in preparation for improvements
2020-07-27 00:54:38 -07:00
lbmaian 42ed533783 Address PR comments 2020-07-27 00:45:12 -07:00
pardeike-bot 551b96d5f1 Update documentation [skip ci] 2020-07-26 20:32:19 +00:00
Andreas Pardeike 19b3b52874 Merge pull request #324 from rube200/master
Fix exception on patchall when optional dependencies are missing
2020-07-26 22:29:15 +02:00
Rúben Garcia a0c3620a0d Fix exception on patchall when optional dependencies are missing 2020-07-23 02:39:39 +01:00
lbmaian 69598e17e4 Convert Azure Pipelines to use dotnet CLI tasks rather than nuget/vsbuild/vstest tasks 2020-07-19 22:48:32 -07:00
lbmaian dbbd6bfe60 Use verbose logging and upgrade dotnet version in Travis CI tests 2020-07-19 19:42:29 -07:00
lbmaian d52fe79cac Skip StaticFieldRefAccess FieldInfo tests for struct instance fields since they crash on Mono non-Windows runtime 2020-07-19 17:58:53 -07:00
lbmaian c4a7e24dfb TestFieldRefAccess: add final check that field.GetValue(instance) is FieldType (for StaticFieldRefAccess), improve TestTools.Log 2020-07-19 17:07:40 -07:00
lbmaian 63643e24df More AccessTools.Field/Method/Property tests, including tests showing NRE on interface types 2020-07-18 22:29:08 -07:00
lbmaian 92ee5c4419 TestFieldRefAccess improvements (including: subclass fields, interface T, incompat T, incompat instance type), add NUnit limitation workarounds to TestTools 2020-07-18 22:29:05 -07:00
lbmaian 9e6b1a0a64 Deprecate FastAccess getter/setter 2020-07-17 22:53:55 -07:00
lbmaian 0b37bceb59 Revert "FastAccess improvements: handle edge cases, add StructSetterHandler", remove recently added FastAccess unit tests, rename TestFastAccess to TestFieldRefAccess 2020-07-17 22:53:36 -07:00
lbmaian 129ad03667 FastAccess improvements: handle edge cases, add StructSetterHandler 2020-07-08 23:10:48 -07:00
lbmaian d9a7a49d46 Add FieldRef/FastAccess tests for different F type, simplify/update related test code 2020-07-05 23:41:42 -07:00
lbmaian 4f3e71d40d Add AccessTools.IsNetFrameworkRuntime/IsNetCoreRuntime, fix FastAccess struct instance property test on .NET Framework, add FastAccess indexer tests 2020-07-04 20:07:08 -07:00
lbmaian 74dfc06e18 Link mono bug issue, add AccessTools.IsStatic 2020-07-04 16:39:20 -07:00
lbmaian 26d4d2c2d8 Generalize FieldRefAccess tests to also test FastAccess, moved to TestFastAccess.cs, more FieldRefAccess tests, related testing improvements 2020-07-04 16:27:19 -07:00
lbmaian e3ae78f1a2 Expand unit tests to exhaustively document current AccessTools.FieldRef behavior 2020-06-30 11:53:09 -07:00
pardeike-bot bce6c22ae4 Update documentation [skip ci] 2020-06-16 06:35:23 +00:00
Andreas Pardeike ce21625cf2 Merge pull request #314 from lbmaian/delegate
More HarmonyDelegate tweaks
2020-06-16 08:31:31 +02:00
lbmaian a8dcb10e1c Flip MethodInfo.virtualDelegate to nonVirtualDelegate in case true/false default value matters 2020-06-15 23:02:00 -07:00
lbmaian d50aa537ce MethodBinding => MethodDispatchType, CallVirtually => VirtualCall, HarmonyMethod.virtualDelegate is non-nullable, related XML doc updates 2020-06-14 02:36:53 -07:00
pardeike-bot 24f943c646 Update documentation [skip ci] 2020-06-13 14:49:26 +00:00
Andreas Pardeike 70fb07e96c Merge pull request #311 from lbmaian/delegate
More AccessTools/injected delegate work
2020-06-13 16:47:35 +02:00
lbmaian b4448107f5 More AccessTools/injected delegate work
- Implement virtual delegate injection
- Default to virtual calling
- AccessTools.CreateDelegate => AccessTools.MethodDelegate, AccessTools.CreateHarmonyDelegate => AccessTools.HarmonyDelegate
- MethodInheritance.Virtual/None => MethodBinding.CallVirtually/Call
- Add optional instance param to AccessTools.HarmonyDelegate
- Improve some XML docs
2020-06-13 07:42:28 -07:00
lbmaian ce14993ce8 Split up AccessTools delegate tests
This is done partly for organizational reasons, and partly to demonstrate mutability of passed non-struct instances.
2020-06-13 06:35:57 -07:00
pardeike-bot 160fab886c Update documentation [skip ci] 2020-06-12 18:13:47 +00:00
Andreas Pardeike ccbcc3dbc7 Merge pull request #310 from lbmaian/delegate
More AccessTools delegate work
2020-06-12 20:11:55 +02:00