public override Expression VisitIdentifier(Identifier id) { if (id is MemoryIdentifier memoryId) { return(VisitMemoryIdentifier(memoryId)); } var usedId = outer.FindUsedId(outer.call, id.Storage); if (usedId != null) { usedId.Accept(outer); } return(usedId ?? outer.InvalidArgument()); }
public override Expression VisitIdentifier(Identifier id) { if (id is MemoryIdentifier) { var sid = outer.ssa.Identifiers.Add( id, outer.stm, null, false); sid.DefStatement = null; sid.Uses.Add(outer.stm); return(sid.Identifier); } var usedId = outer.FindUsedId(outer.call, id.Storage); if (usedId != null) { usedId.Accept(outer); } return(usedId ?? outer.InvalidArgument()); }