private Stmt LoadToken(MemberReference member) { var expr = new ExprRuntimeHandle(this.ctx, member); this.stack.Push(expr); return(null); }
protected override ICode VisitRuntimeHandle(ExprRuntimeHandle e) { if (e.Member is TypeReference) { this.types.Add((TypeReference)e.Member); } return(base.VisitRuntimeHandle(e)); }
protected override ICode VisitRuntimeHandle(ExprRuntimeHandle e) { var tokenType = e.Member.MetadataToken.TokenType; switch (tokenType) { case TokenType.TypeRef: case TokenType.TypeDef: case TokenType.TypeSpec: var type = (TypeReference)e.Member; var typeName = this.resolver.TypeNames[type]; this.js.Append(typeName); break; default: throw new NotImplementedException("Cannot handle runtime-handle type: " + tokenType); } return(e); }
protected virtual ICode VisitRuntimeHandle(ExprRuntimeHandle e) { this.ThrowOnNoOverride(); return(e); }
protected override ICode VisitRuntimeHandle(ExprRuntimeHandle e) { this.code.AppendFormat("{0}<{1}>", e.Type.Name, e.Member.Name); return(e); }