示例#1
0
 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 override ICode VisitRuntimeHandle(ExprRuntimeHandle e) {
     this.code.AppendFormat("{0}<{1}>", e.Type.Name, e.Member.Name);
     return e;
 }
 protected override ICode VisitRuntimeHandle(ExprRuntimeHandle e) {
     if (e.Member is TypeReference) {
         this.types.Add((TypeReference)e.Member);
     }
     return base.VisitRuntimeHandle(e);
 }
 private Stmt LoadToken(MemberReference member) {
     var expr = new ExprRuntimeHandle(this.ctx, member);
     this.stack.Push(expr);
     return null;
 }