public void VisitFieldRef(FieldRef fieldRef)
 {
     var fd = fieldRef.FieldDesc;
     if (fd.IsStatic)
     {
         var cfd = fd as CILFieldDescriptor;
         if (cfd != null)
         {
             var pkg = _design.TypeLib.GetPackage(cfd.Field.DeclaringType);
             fd = pkg.Canonicalize(fd);
             CurComponent.AddDependency(pkg);
         }
     }
     else
     {
         fd = CurComponent.Canonicalize(fd);
     }
     _result = new FieldRef(fd);
 }
Esempio n. 2
0
 public Literal Lookup(Literal v)
 {
     Literal v_ = v;
     if (_rplMap.TryGetValue(v, out v_))
         return v_;
     else
         return v;
 }
Esempio n. 3
0
 /// <summary>
 /// Adds a replacement rule.
 /// </summary>
 /// <param name="v">literal to replace</param>
 /// <param name="v_">replacement</param>
 public void AddReplacement(Literal v, Literal v_)
 {
     _rplMap[v] = v_;
 }
 public void VisitArrayRef(ArrayRef arrayRef)
 {
     Resolve(arrayRef.ArrayExpr);
     foreach (var idx in arrayRef.Indices)
         Resolve(idx);
     _result = arrayRef;
 }
 public void VisitSignalRef(SignalRef signalRef)
 {
     _result = signalRef;
 }
 public void VisitThisRef(ThisRef thisRef)
 {
     _result = thisRef;
 }
 public void VisitVariable(Variable variable)
 {
     _result = variable;
 }
 public void VisitConstant(Constant constant)
 {
     _result = constant;
 }