protected override void DoEmitCode(CompilerTarget target, StackSemantics stackSemantics) { if (stackSemantics == StackSemantics.Effect) return; PFunction targetFunction; MetaEntry sharedNamesEntry; if (target.Loader.ParentApplication.TryGetFunction(_implementation.Id, _implementation.ModuleName, out targetFunction) && (!targetFunction.Meta.TryGetValue(PFunction.SharedNamesKey, out sharedNamesEntry) || !sharedNamesEntry.IsList || sharedNamesEntry.List.Length == 0)) target.Emit(Position,OpCode.ldr_func, _implementation.Id, target.ToInternalModule(_implementation.ModuleName)); else target.Emit(Position,OpCode.newclo, _implementation.Id, target.ToInternalModule(_implementation.ModuleName)); }