public object Lookup(SourceRange range, IResGenericParamDecl key) { if (key is IResTypeParamDecl) { return(Lookup((IResTypeParamDecl)key)); } else { return(Lookup(range, (IResVarDecl)key)); } }
public void Insert(IResGenericParamDecl key, object value) { if (key is IResTypeParamDecl) { Insert((IResTypeParamDecl)key, (MidType)value); } else { Insert((IResVarDecl)key, (SourceRange r) => (MidVal)value); } }
public void Insert(IResGenericParamDecl param, IResGenericArg arg) { if (param is IResTypeParamDecl) { Insert((IResTypeParamDecl)param, (r) => ((ResGenericTypeArg)arg).Type); } else if (param is IResValueParamDecl) { Insert((IResVarDecl)param, (r) => ((ResGenericValueArg)arg).Value); } }
public static IResGenericArg MakeGenericArg( this IResGenericParamDecl decl) { if (decl is IResTypeParamDecl) { return(MakeGenericArg(new ResTypeVarRef(decl.Range, (IResTypeParamDecl)decl))); } else { return(MakeGenericArg(new ResVarRef(decl.Range, (IResVarDecl)decl))); } }