Lines Matching defs:Scalar

3079 struct Scalar : Poly {
3091 Scalar() : Poly(NK_Scalar), SKind(SK_Unknown) {}
3092 Scalar(double DoubleValue)
3094 Scalar(bool BoolValue)
3117 if (isa<Scalar>(*N))
3118 return NodeKind::Scalar;
3126 static Scalar &getAsScalar(std::unique_ptr<Poly> &N) {
3127 if (!N || !isa<Scalar>(*N))
3128 N = std::make_unique<Scalar>();
3129 return *cast<Scalar>(N.get());
3145 template <> struct TaggedScalarTraits<Scalar> {
3146 static void output(const Scalar &S, void *Ctxt, raw_ostream &ScalarOS,
3149 case Scalar::SK_Unknown:
3152 case Scalar::SK_Double:
3156 case Scalar::SK_Bool:
3164 Scalar &S) {
3165 S.SKind = StringSwitch<Scalar::ScalarKind>(Tag)
3166 .Case("!double", Scalar::SK_Double)
3167 .Case("!bool", Scalar::SK_Bool)
3168 .Default(Scalar::SK_Unknown);
3170 case Scalar::SK_Unknown:
3172 case Scalar::SK_Double:
3174 case Scalar::SK_Bool:
3180 static QuotingType mustQuote(const Scalar &S, StringRef Str) {
3182 case Scalar::SK_Unknown:
3184 case Scalar::SK_Double:
3186 case Scalar::SK_Bool:
3219 std::unique_ptr<Poly> node = std::make_unique<Scalar>(true);
3234 seq->push_back(std::make_unique<Scalar>(true));
3235 seq->push_back(std::make_unique<Scalar>(1.0));
3251 auto first = llvm::dyn_cast<Scalar>((*seq)[0].get());
3253 EXPECT_EQ(first->SKind, Scalar::SK_Bool);
3255 auto second = llvm::dyn_cast<Scalar>((*seq)[1].get());
3257 EXPECT_EQ(second->SKind, Scalar::SK_Double);
3266 (*map)["foo"] = std::make_unique<Scalar>(false);
3267 (*map)["bar"] = std::make_unique<Scalar>(2.0);
3282 auto foo = llvm::dyn_cast<Scalar>((*map)["foo"].get());
3284 EXPECT_EQ(foo->SKind, Scalar::SK_Bool);
3286 auto bar = llvm::dyn_cast<Scalar>((*map)["bar"].get());
3288 EXPECT_EQ(bar->SKind, Scalar::SK_Double);