internal IFunction FunctionFeature(CompoundView compoundView) { if(IsMetaFunction) return null; return new FunctionBodyType(compoundView, this); }
int CreateFunctionInstance(TypeBase args, FunctionSyntax syntax, CompoundView compoundView) { var index = _list.Count; var f = new FunctionType(index, syntax, compoundView, args); _list.Add(f); return index; }
internal AccessFeature(CompoundView compoundView, int position) : base(_nextObjectId++) { View = compoundView; Position = position; FunctionFeature = new ValueCache<IFunction>(ObtainFunctionFeature); StopByObjectIds(); }
internal IMeta MetaFunctionFeature(CompoundView compoundView) { if(!IsMetaFunction) return null; NotImplementedMethod(compoundView); return null; }
internal FunctionType (int index, FunctionSyntax body, CompoundView compoundView, TypeBase argsType) { Getter = new GetterFunction(this, index, body.Getter); Setter = body.Setter == null ? null : new SetterFunction(this, index, body.Setter); Index = index; Body = body; _compoundView = compoundView; ArgsType = argsType; StopByObjectIds(); }
internal IEnumerable<FunctionType> Find(FunctionSyntax syntax, CompoundView compoundView) => _dictionary[syntax][compoundView].Select(item => _list[item.Value]);
internal FunctionType Find (FunctionSyntax syntax, CompoundView compoundView, TypeBase argsType) { var index = _dictionary[syntax][compoundView][argsType]; return _list[index]; }
public RecursionWhileObtainingCompoundSizeException(CompoundView compoundView) { _compoundView = compoundView; }
internal FieldAccessType(CompoundView compoundView, int position) { View = compoundView; Position = position; }