/// <summary> /// Adds the given function to the symbol table. /// </summary> public void Add(ICallable callable) { // match against the unique name var uniqueName = callable.UniqueName(); //### bob: if we want users to be able to override intrinsics, we may need to handle this differently if (mCallables.ContainsKey(uniqueName)) throw new CompileException("A function named " + uniqueName + " has already been declared."); mCallables.Add(uniqueName, callable); // if there is an inferrable name, also include the name without the type arguments if (callable.HasInferrableTypeArguments) { mCallables.Add(callable.UniqueInferredName(), callable); } }
/// <summary> /// Adds the given function to the symbol table. /// </summary> public void Add(ICallable callable) { // match against the unique name var uniqueName = callable.UniqueName(); //### bob: if we want users to be able to override intrinsics, we may need to handle this differently if (mCallables.ContainsKey(uniqueName)) { throw new CompileException("A function named " + uniqueName + " has already been declared."); } mCallables.Add(uniqueName, callable); // if there is an inferrable name, also include the name without the type arguments if (callable.HasInferrableTypeArguments) { mCallables.Add(callable.UniqueInferredName(), callable); } }