From 1c419cbb9b8a4e16e5c66f1ed034c1384a2eddfd Mon Sep 17 00:00:00 2001 From: Mark Wilson <23439518+wlsnmrk@users.noreply.github.com> Date: Tue, 17 Feb 2026 14:30:34 -0500 Subject: [PATCH] fix: initialize dependent state if necessary Updated DependencyResolver to use IDependent's DependentState property instead of attempting to access the dependent-state data directly from the MixinState. The DependentState property initializes the blackboard value if it doesn't already exist, preventing exceptions when the dependent state hasn't yet been added to the blackboard before resolution (e.g., in tool-script scenarios). --- .../src/auto_inject/dependent/DependencyResolver.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Chickensoft.AutoInject.Tests/src/auto_inject/dependent/DependencyResolver.cs b/Chickensoft.AutoInject.Tests/src/auto_inject/dependent/DependencyResolver.cs index d333034..71ae8f3 100644 --- a/Chickensoft.AutoInject.Tests/src/auto_inject/dependent/DependencyResolver.cs +++ b/Chickensoft.AutoInject.Tests/src/auto_inject/dependent/DependencyResolver.cs @@ -95,10 +95,10 @@ public static void OnDependent( IEnumerable properties ) { - var state = dependent.MixinState.Get(); + var state = dependent.DependentState; if (what == Node.NotificationExitTree) { - dependent.MixinState.Get().ShouldResolveDependencies = true; + state.ShouldResolveDependencies = true; foreach (var pending in state.Pending.Values) { pending.Unsubscribe(); @@ -139,7 +139,7 @@ public static TValue DependOn( { // First, check dependency fakes. Using a faked value takes priority over // all the other dependency resolution methods. - var state = dependent.MixinState.Get(); + var state = dependent.DependentState; if (state.ProviderFakes.TryGetValue(typeof(TValue), out var fakeProvider) && fakeProvider is DefaultProvider faker) { @@ -192,7 +192,7 @@ private static void Resolve( IEnumerable properties ) { - var state = dependent.MixinState.Get(); + var state = dependent.DependentState; // Clear any previously resolved dependencies — if the ancestor tree hasn't // changed above us, we will just end up re-resolving them as they were. state.Dependencies.Clear();