static SourcePtr evalToSource(Location const &location, ExprListPtr args, EnvPtr env) { llvm::SmallString<128> sourceTextBuf; llvm::raw_svector_ostream sourceTextOut(sourceTextBuf); MultiStaticPtr values = evaluateMultiStatic(args, env); for (size_t i = 0; i < values->size(); ++i) { printStaticName(sourceTextOut, values->values[i]); } llvm::SmallString<128> sourceNameBuf; llvm::raw_svector_ostream sourceNameOut(sourceNameBuf); sourceNameOut << "<eval "; printFileLineCol(sourceNameOut, location); sourceNameOut << ">"; sourceTextOut.flush(); return new Source(sourceNameOut.str(), llvm::MemoryBuffer::getMemBufferCopy(sourceTextBuf)); }
void ensureArity(MultiStaticPtr args, unsigned int size) { if (args->size() != size) arityError(size, args->size()); }