1 Year Ago
Fixed ConditionalWeakTableUpgrader Handles the case where oldInstance == newInstance, or if the collection gets modified while being processed Simplify JsonSerializerOptionsUpgrader Directly process JsonConverters inside existing JsonSerializerOptions, without creating a new instance. Handles case where we can't create a new instance, and the options aren't mutable. Also make sure we process static fields in System.Text.Json assembly. Possible fix for #640 Add some more easy hotload skips to save a few milliseconds JsonSerializerOptionsUpgrader .NET 7 fixes Log path to instance when a hotload error occurs Some nicer paths for items in common collections Replace TypeDescription / MemberDescription instances during swap Tests for TypeDescription / MemberDescription replacing Make hotload tests more strict Warn when encountering delegates that can't be upgraded Even simpler way to clear System.Text.Json cache on hotload Readonly field hotload test Trace instance paths when doing hotload tests Stop watching System.Text.Json since we're clearing its cache now Ignore LiteDB types during hotload Merge remote-tracking branch 'origin/master' into hotload-fixes Get rid of soon-to-be-unused "context" arg in OnTryCreateNewInstance Some more permutations of lambda method types Big DelegateUpgrader rewrite * A lot more careful about matching generated methods that change name * Fixed case where swapping unchanged code would substitute in the wrong lambda method * Now replace lambdas we can't find a match for with one that throws a helpful error (before they would become null) Easy case for delegate methods from non-swapped assemblies Failing delegate swap involving same-named methods Strategies for fixing HotloadTests.Delegate11 Split DelegateUpgrader up, mocked up same-named scope method solution Refactor to assume we have Mono.Cecil, WIP method resolution Fixed HotloadTests.Delegate11 Hotload message type consistency Warning: non-fatal, but recommend reloading the game Error: something went wrong that we should fix Fixed resolving nested type definitions Merge remote-tracking branch 'origin/master' into hotload-fixes Failing test for lambdas with a generator context method Fixed upgrading lambdas with a generator context method Tests for finding definitions of methods involving generic parameters More generic type / method fixes in hotload Added failing test for handling removed lambda with a return type Test case for nested lambdas Fixed generating error delegate if original lambda had a return type Some more test cases for upgrading delegates Fixed resolving multi-dimensional array parameter methods ByRef and async method tests Fixed resolving method definitions with ByRef parameters Support for upgrading lambdas defined in async methods More array and ByRef fixes Type equivalence fixes Apparently MakeArrayType( 1 ) != MakeArrayType() We can skip cached lambda instances now They'll still get upgraded if they're referenced in a non-cache field somewhere Merge remote-tracking branch 'origin/master' into hotload-fixes Merge pull request #668 from Facepunch/hotload-fixes Hotload Maintenance