private static IBinding GetMemberBinding(SmalltalkRuntime runtime, string name, bool ignoreCase, out bool caseConflict) { if (ignoreCase) { IBinding result = null; caseConflict = true; foreach (IDiscreteGlobalBinding binding in runtime.Globals.Values) { if (binding.Name.Value.Equals(name, StringComparison.InvariantCultureIgnoreCase)) { if (result == null) { result = binding; } else { return(null); // caseConflict } } } caseConflict = false; return(result); } else { IDiscreteGlobalBinding binding; runtime.Globals.TryGetValue(name, out binding); caseConflict = false; return(binding); } }
public SmalltalkRuntimeDynamicMetaObject(Expression expression, BindingRestrictions restrictions, SmalltalkRuntime runtime) : base(expression, restrictions, runtime) { if (runtime == null) { throw new ArgumentNullException("runtime"); } this.Runtime = runtime; }