Пример #1
0
        private Stmt LoadToken(MemberReference member)
        {
            var expr = new ExprRuntimeHandle(this.ctx, member);

            this.stack.Push(expr);
            return(null);
        }
Пример #2
0
 protected override ICode VisitRuntimeHandle(ExprRuntimeHandle e)
 {
     if (e.Member is TypeReference)
     {
         this.types.Add((TypeReference)e.Member);
     }
     return(base.VisitRuntimeHandle(e));
 }
Пример #3
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);
        }
Пример #4
0
 protected virtual ICode VisitRuntimeHandle(ExprRuntimeHandle e)
 {
     this.ThrowOnNoOverride();
     return(e);
 }
Пример #5
0
 protected override ICode VisitRuntimeHandle(ExprRuntimeHandle e)
 {
     this.code.AppendFormat("{0}<{1}>", e.Type.Name, e.Member.Name);
     return(e);
 }