diff --git a/runtime/src/main/java/dev/ionfusion/fusion/GlobalState.java b/runtime/src/main/java/dev/ionfusion/fusion/GlobalState.java index 846d64b0..0a058952 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/GlobalState.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/GlobalState.java @@ -10,6 +10,7 @@ import com.amazon.ion.IonStruct; import com.amazon.ion.IonSystem; import com.amazon.ion.system.IonReaderBuilder; +import dev.ionfusion.fusion.FusionSymbol.BaseSymbol; import dev.ionfusion.fusion.ModuleNamespace.ModuleDefinedBinding; import java.io.IOException; import java.io.InputStream; @@ -190,7 +191,8 @@ static GlobalState initialize(IonSystem system, */ private ModuleDefinedBinding kernelBinding(String name) { - ModuleDefinedBinding b = myKernelModule.resolveProvidedName(name).target(); + BaseSymbol sym = FusionSymbol.makeSymbol(null, name); + ModuleDefinedBinding b = myKernelModule.resolveProvidedName(sym).target(); assert b != null; return b; } diff --git a/runtime/src/main/java/dev/ionfusion/fusion/ModuleInstance.java b/runtime/src/main/java/dev/ionfusion/fusion/ModuleInstance.java index 54550c67..7da264df 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/ModuleInstance.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/ModuleInstance.java @@ -112,15 +112,6 @@ Set providedNames() return Collections.unmodifiableSet(myProvidedBindings.keySet()); } - - /** - * @return null if the name isn't provided by this module. - */ - ProvidedBinding resolveProvidedName(String name) - { - return resolveProvidedName(BaseSymbol.internSymbol(name)); - } - /** * @return null if the name isn't provided by this module. */ @@ -144,9 +135,7 @@ ModuleDocs getDocs() for (BaseSymbol name : names) { - String text = name.stringValue(); - BindingDoc doc = documentProvidedName(text); - bindings.put(text, doc); + bindings.put(name.stringValue(), documentProvidedName(name)); } return new ModuleDocs(myIdentity, myDocs, bindings); @@ -155,30 +144,17 @@ ModuleDocs getDocs() /** * @return may be null. */ - private BindingDoc documentProvidedName(String name) + private BindingDoc documentProvidedName(BaseSymbol name) { ModuleDefinedBinding binding = resolveProvidedName(name).target(); - - return documentProvidedName(binding); - } - - private BindingDoc documentProvidedName(ModuleDefinedBinding binding) - { - BindingDoc doc; - if (binding.myModuleId == myIdentity) { - doc = myStore.document(binding.myAddress); - } - else - { - ModuleInstance module = - myStore.getRegistry().lookup(binding.myModuleId); - assert module != null - : "Module not found: " + binding.myModuleId; - doc = module.myStore.document(binding.myAddress); + return myStore.document(binding.myAddress); } - return doc; + ModuleInstance module = myStore.getRegistry().lookup(binding.myModuleId); + assert module != null : "Module not found: " + binding.myModuleId; + + return module.myStore.document(binding.myAddress); } }