diff --git a/Assets/Tests/Editor/HotReload/UnityCLILoop.Tests.Editor.HotReload.asmdef b/Assets/Tests/Editor/HotReload/UnityCLILoop.Tests.Editor.HotReload.asmdef index 8d6e83246..8fc81a1e4 100644 --- a/Assets/Tests/Editor/HotReload/UnityCLILoop.Tests.Editor.HotReload.asmdef +++ b/Assets/Tests/Editor/HotReload/UnityCLILoop.Tests.Editor.HotReload.asmdef @@ -16,7 +16,8 @@ "GUID:384dc39e13234d8aae3b1b1c44c9507e", "GUID:1e3293e9639242278dcb27724b34beb4", "GUID:5390a0826a36841e7a977485f863d05f", - "GUID:24d448abf7c10486d9578018b3a3c54b" + "GUID:24d448abf7c10486d9578018b3a3c54b", + "GUID:b6ba53c1f946045358f72c7981f7b425" ], "includePlatforms": [ "Editor" diff --git a/Packages/src/Editor/FirstPartyTools/Common/ScriptPath/AssemblyInfo.cs b/Packages/src/Editor/FirstPartyTools/Common/ScriptPath/AssemblyInfo.cs index ee1a792cc..f43d5dc7b 100644 --- a/Packages/src/Editor/FirstPartyTools/Common/ScriptPath/AssemblyInfo.cs +++ b/Packages/src/Editor/FirstPartyTools/Common/ScriptPath/AssemblyInfo.cs @@ -1,6 +1,7 @@ using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("UnityCLILoop.FirstPartyTools.HotReload.Shared.Editor")] +[assembly: InternalsVisibleTo("UnityCLILoop.FirstPartyTools.HotReload.CompiledCallers.Editor")] [assembly: InternalsVisibleTo("UnityCLILoop.FirstPartyTools.HotReload.Editor")] [assembly: InternalsVisibleTo("UnityCLILoop.FirstPartyTools.HotReload.Patching.Editor")] [assembly: InternalsVisibleTo("UnityCLILoop.FirstPartyTools.PausePoint.Editor")] diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers.meta new file mode 100644 index 000000000..3d407b453 --- /dev/null +++ b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da68a32195687424d8a0795ef42575ca +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/AssemblyInfo.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/AssemblyInfo.cs new file mode 100644 index 000000000..c41f708fb --- /dev/null +++ b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/AssemblyInfo.cs @@ -0,0 +1,5 @@ +using System.Runtime.CompilerServices; + +// Only the tests see these internals: the hot-reload application assembly uses this module +// through its entry point alone, and the compiler keeps it away from the parts behind it. +[assembly: InternalsVisibleTo("UnityCLILoop.Tests.Editor.HotReload")] diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/AssemblyInfo.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/AssemblyInfo.cs.meta new file mode 100644 index 000000000..4e286f3dd --- /dev/null +++ b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/AssemblyInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 63cf750119fad4af2aac29cf7eacf8c5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteBackfill.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteBackfill.cs similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteBackfill.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteBackfill.cs diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteBackfill.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteBackfill.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteBackfill.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteBackfill.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteHit.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteHit.cs similarity index 70% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteHit.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteHit.cs index 0a0dce1d3..f961dceb0 100644 --- a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteHit.cs +++ b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteHit.cs @@ -3,15 +3,16 @@ namespace io.github.hatayama.UnityCliLoop.FirstPartyTools /// /// One compiled instruction that references a target method, reported under its logical owner. /// - internal sealed class HotReloadCallSiteHit + public sealed class HotReloadCallSiteHit { public string CallerAssemblyName; public HotReloadMetadataTypeName CallerTypeMetadataName; public string CallerMethodName; public string[] CallerParameterTypeFullNames; - public int CallerGenericArity; + // Hot-reload code outside the analysis does not read these two. + internal int CallerGenericArity; public string CallerMethodKey; public string TargetMethodKey; - public bool IsFunctionPointerLoad; + internal bool IsFunctionPointerLoad; } } diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteHit.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteHit.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteHit.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteHit.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteLoadBudget.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteLoadBudget.cs similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteLoadBudget.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteLoadBudget.cs diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteLoadBudget.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteLoadBudget.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteLoadBudget.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteLoadBudget.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteScanner.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteScanner.cs similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteScanner.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteScanner.cs diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteScanner.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteScanner.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteScanner.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCallSiteScanner.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallSiteCache.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallSiteCache.cs similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallSiteCache.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallSiteCache.cs diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallSiteCache.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallSiteCache.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallSiteCache.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallSiteCache.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallSiteIndex.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallSiteIndex.cs similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallSiteIndex.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallSiteIndex.cs diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallSiteIndex.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallSiteIndex.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallSiteIndex.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallSiteIndex.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallers.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallers.cs similarity index 95% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallers.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallers.cs index 05375c5bd..3649ac063 100644 --- a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallers.cs +++ b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallers.cs @@ -12,7 +12,7 @@ namespace io.github.hatayama.UnityCliLoop.FirstPartyTools /// assemblies it read cached between runs. What a run could not read is read in the background /// after it. Begin every run with . /// - internal sealed class HotReloadCompiledCallers + public sealed class HotReloadCompiledCallers { private readonly HotReloadCompiledCallSiteCache _cache; private readonly HotReloadCallSiteBackfill _backfill; @@ -43,7 +43,9 @@ public static HotReloadCompiledCallers CreateProduction() /// /// Finds the compiled call and ldftn sites that reference any of , - /// reading every compiled assembly it needs. + /// reading every compiled assembly it needs. Call it only while a run begun with + /// is open: outside one, a read on another thread may evict and + /// dispose a cached assembly this is still reading. /// public List FindCallSites(string projectRoot, HotReloadCompiledMethodIdentity[] targets) { diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallers.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallers.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallers.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallers.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallersRun.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallersRun.cs similarity index 98% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallersRun.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallersRun.cs index 0d2083720..3bee28e34 100644 --- a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallersRun.cs +++ b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallersRun.cs @@ -12,7 +12,7 @@ namespace io.github.hatayama.UnityCliLoop.FirstPartyTools /// One run of the compiled-caller analysis: the cached compiled assemblies stay cached until it /// ends. End it with once the run finished normally; dispose it on every exit. /// - internal sealed class HotReloadCompiledCallersRun : IDisposable + public sealed class HotReloadCompiledCallersRun : IDisposable { private readonly IDisposable _hold; private readonly HotReloadCallSiteBackfill _backfill; diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallersRun.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallersRun.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallersRun.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledCallersRun.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledMethodIdentity.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledMethodIdentity.cs similarity index 70% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledMethodIdentity.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledMethodIdentity.cs index 65876c820..068ae56f2 100644 --- a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledMethodIdentity.cs +++ b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledMethodIdentity.cs @@ -5,13 +5,15 @@ namespace io.github.hatayama.UnityCliLoop.FirstPartyTools /// /// Identity of a compiled method to search for (assembly + type + name + arity + parameter types). /// - internal readonly struct HotReloadCompiledMethodIdentity + public readonly struct HotReloadCompiledMethodIdentity { - public readonly string AssemblyName; - public readonly HotReloadMetadataTypeName TypeMetadataName; - public readonly string MethodName; - public readonly string[] ParameterTypeFullNames; - public readonly int GenericArity; + // Only the analysis behind the entry point reads these; hot-reload code outside it only + // builds this value and passes it in. + internal readonly string AssemblyName; + internal readonly HotReloadMetadataTypeName TypeMetadataName; + internal readonly string MethodName; + internal readonly string[] ParameterTypeFullNames; + internal readonly int GenericArity; public HotReloadCompiledMethodIdentity( string assemblyName, diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledMethodIdentity.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledMethodIdentity.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledMethodIdentity.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadCompiledMethodIdentity.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerClosure.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerClosure.cs similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerClosure.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerClosure.cs diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerClosure.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerClosure.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerClosure.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerClosure.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteBuilder.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteBuilder.cs similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteBuilder.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteBuilder.cs diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteBuilder.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteBuilder.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteBuilder.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteBuilder.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteEnricher.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteEnricher.cs similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteEnricher.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteEnricher.cs diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteEnricher.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteEnricher.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteEnricher.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteEnricher.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteRequest.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteRequest.cs similarity index 64% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteRequest.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteRequest.cs index b58b3316e..115d887ed 100644 --- a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteRequest.cs +++ b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteRequest.cs @@ -6,7 +6,7 @@ namespace io.github.hatayama.UnityCliLoop.FirstPartyTools /// One method a one-shot lifecycle note is asked for: the compiled identity its callers are /// searched by and the name the note shows. /// - internal sealed class HotReloadOneShotCallerNoteRequest + public sealed class HotReloadOneShotCallerNoteRequest { public HotReloadOneShotCallerNoteRequest(HotReloadCompiledMethodIdentity identity, string method) { @@ -16,8 +16,10 @@ public HotReloadOneShotCallerNoteRequest(HotReloadCompiledMethodIdentity identit Method = method; } - public HotReloadCompiledMethodIdentity Identity { get; } + // Only the analysis behind the entry point reads these; hot-reload code outside it only + // builds this value and passes it in. + internal HotReloadCompiledMethodIdentity Identity { get; } - public string Method { get; } + internal string Method { get; } } } diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteRequest.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteRequest.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOneShotCallerNoteRequest.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadOneShotCallerNoteRequest.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadReferencedMethodIndex.cs b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadReferencedMethodIndex.cs similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadReferencedMethodIndex.cs rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadReferencedMethodIndex.cs diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/HotReloadReferencedMethodIndex.cs.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadReferencedMethodIndex.cs.meta similarity index 100% rename from Packages/src/Editor/FirstPartyTools/HotReload/HotReloadReferencedMethodIndex.cs.meta rename to Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/HotReloadReferencedMethodIndex.cs.meta diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/UnityCLILoop.FirstPartyTools.HotReload.CompiledCallers.Editor.asmdef b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/UnityCLILoop.FirstPartyTools.HotReload.CompiledCallers.Editor.asmdef new file mode 100644 index 000000000..c8892dcb1 --- /dev/null +++ b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/UnityCLILoop.FirstPartyTools.HotReload.CompiledCallers.Editor.asmdef @@ -0,0 +1,22 @@ +{ + "name": "UnityCLILoop.FirstPartyTools.HotReload.CompiledCallers.Editor", + "rootNamespace": "io.github.hatayama.UnityCliLoop.FirstPartyTools", + "references": [ + "GUID:1e3293e9639242278dcb27724b34beb4", + "GUID:fc3fd32eddbee40e39c2d76dc184957b", + "GUID:24d448abf7c10486d9578018b3a3c54b" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": true, + "precompiledReferences": [ + "Mono.Cecil.dll" + ], + "autoReferenced": false, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/UnityCLILoop.FirstPartyTools.HotReload.CompiledCallers.Editor.asmdef.meta b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/UnityCLILoop.FirstPartyTools.HotReload.CompiledCallers.Editor.asmdef.meta new file mode 100644 index 000000000..8901d9e05 --- /dev/null +++ b/Packages/src/Editor/FirstPartyTools/HotReload/CompiledCallers/UnityCLILoop.FirstPartyTools.HotReload.CompiledCallers.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b6ba53c1f946045358f72c7981f7b425 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/Shared/AssemblyInfo.cs b/Packages/src/Editor/FirstPartyTools/HotReload/Shared/AssemblyInfo.cs index 1cadc4918..b56310d3a 100644 --- a/Packages/src/Editor/FirstPartyTools/HotReload/Shared/AssemblyInfo.cs +++ b/Packages/src/Editor/FirstPartyTools/HotReload/Shared/AssemblyInfo.cs @@ -6,6 +6,9 @@ // The introduced-type aggregate builds on this shared kernel. [assembly: InternalsVisibleTo("UnityCLILoop.FirstPartyTools.HotReload.IntroducedType.Editor")] +// The compiled-caller analysis builds on this shared kernel. +[assembly: InternalsVisibleTo("UnityCLILoop.FirstPartyTools.HotReload.CompiledCallers.Editor")] + // The application assembly composes this part; the split is internal to the hot-reload tool. [assembly: InternalsVisibleTo("UnityCLILoop.FirstPartyTools.HotReload.Editor")] diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadTypeNames.cs b/Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadTypeNames.cs index e5d0f5b46..59dc1ae29 100644 --- a/Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadTypeNames.cs +++ b/Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadTypeNames.cs @@ -12,8 +12,9 @@ namespace io.github.hatayama.UnityCliLoop.FirstPartyTools /// Why a type and not a string: metadata, reflection and display names differ only in the /// separator of a nested type, so a value that crosses from one world to the other silently /// stops matching. Holding the world in the type makes the crossing a call, not a habit. + /// Public because the compiled-caller analysis exposes it in the types of its entry point. /// - internal readonly struct HotReloadMetadataTypeName : IEquatable + public readonly struct HotReloadMetadataTypeName : IEquatable { public string Value { get; } @@ -87,8 +88,10 @@ public override string ToString() /// /// A type name in reflection form, the spelling Type.FullName produces, where a nested type /// reads Outer+Inner. + /// Public because HotReloadMetadataTypeName, which the compiled-caller analysis exposes, + /// returns it from ToReflectionName. /// - internal readonly struct HotReloadReflectionTypeName : IEquatable + public readonly struct HotReloadReflectionTypeName : IEquatable { public string Value { get; } diff --git a/Packages/src/Editor/FirstPartyTools/HotReload/UnityCLILoop.FirstPartyTools.HotReload.Editor.asmdef b/Packages/src/Editor/FirstPartyTools/HotReload/UnityCLILoop.FirstPartyTools.HotReload.Editor.asmdef index 641c99af2..370e79149 100644 --- a/Packages/src/Editor/FirstPartyTools/HotReload/UnityCLILoop.FirstPartyTools.HotReload.Editor.asmdef +++ b/Packages/src/Editor/FirstPartyTools/HotReload/UnityCLILoop.FirstPartyTools.HotReload.Editor.asmdef @@ -8,7 +8,8 @@ "GUID:0b83f8a313f54fdea6fcf945d7fd0615", "GUID:384dc39e13234d8aae3b1b1c44c9507e", "GUID:1e3293e9639242278dcb27724b34beb4", - "GUID:24d448abf7c10486d9578018b3a3c54b" + "GUID:24d448abf7c10486d9578018b3a3c54b", + "GUID:b6ba53c1f946045358f72c7981f7b425" ], "includePlatforms": [ "Editor"