Lines Matching refs:Expression

73         bool visitExpression(const Expression& expr) override {
117 bool visitExpression(const Expression& expr) override {
160 std::unique_ptr<Expression> clone_with_ref_kind(const Expression& expr,
162 std::unique_ptr<Expression> clone = expr.clone();
173 bool visitExpression(const Expression& expr) override {
228 Expression* expr = iter->second.get();
300 std::unique_ptr<Expression> Inliner::inlineExpression(int line,
303 const Expression& expression) {
304 auto expr = [&](const std::unique_ptr<Expression>& e) -> std::unique_ptr<Expression> {
313 for (const std::unique_ptr<Expression>& arg : originalArgs) {
320 case Expression::Kind::kBinary: {
327 case Expression::Kind::kLiteral:
329 case Expression::Kind::kChildCall: {
337 case Expression::Kind::kConstructorArray: {
343 case Expression::Kind::kConstructorArrayCast: {
349 case Expression::Kind::kConstructorCompound: {
355 case Expression::Kind::kConstructorCompoundCast: {
361 case Expression::Kind::kConstructorDiagonalMatrix: {
367 case Expression::Kind::kConstructorMatrixResize: {
373 case Expression::Kind::kConstructorScalarCast: {
379 case Expression::Kind::kConstructorSplat: {
385 case Expression::Kind::kConstructorStruct: {
391 case Expression::Kind::kExternalFunctionCall: {
396 case Expression::Kind::kExternalFunctionReference:
398 case Expression::Kind::kFieldAccess: {
402 case Expression::Kind::kFunctionCall: {
410 case Expression::Kind::kFunctionReference:
412 case Expression::Kind::kIndex: {
416 case Expression::Kind::kMethodReference:
418 case Expression::Kind::kPrefix: {
422 case Expression::Kind::kPostfix: {
426 case Expression::Kind::kSetting:
428 case Expression::Kind::kSwizzle: {
432 case Expression::Kind::kTernary: {
437 case Expression::Kind::kTypeReference:
439 case Expression::Kind::kVariableReference: {
456 std::unique_ptr<Expression>* resultExpr,
475 auto expr = [&](const std::unique_ptr<Expression>& e) -> std::unique_ptr<Expression> {
577 std::unique_ptr<Expression> initialValue = expr(decl.value());
641 std::unique_ptr<Expression> resultExpr;
662 Expression* arg = arguments[i].get();
761 std::unique_ptr<Expression>* fCandidateExpr; // the candidate FunctionCall to be inlined
931 void visitExpression(std::unique_ptr<Expression>* expr) {
937 case Expression::Kind::kExternalFunctionReference:
938 case Expression::Kind::kFieldAccess:
939 case Expression::Kind::kFunctionReference:
940 case Expression::Kind::kLiteral:
941 case Expression::Kind::kMethodReference:
942 case Expression::Kind::kSetting:
943 case Expression::Kind::kTypeReference:
944 case Expression::Kind::kVariableReference:
948 case Expression::Kind::kBinary: {
968 case Expression::Kind::kChildCall: {
970 for (std::unique_ptr<Expression>& arg : childCallExpr.arguments()) {
975 case Expression::Kind::kConstructorArray:
976 case Expression::Kind::kConstructorArrayCast:
977 case Expression::Kind::kConstructorCompound:
978 case Expression::Kind::kConstructorCompoundCast:
979 case Expression::Kind::kConstructorDiagonalMatrix:
980 case Expression::Kind::kConstructorMatrixResize:
981 case Expression::Kind::kConstructorScalarCast:
982 case Expression::Kind::kConstructorSplat:
983 case Expression::Kind::kConstructorStruct: {
985 for (std::unique_ptr<Expression>& arg : constructorExpr.argumentSpan()) {
990 case Expression::Kind::kExternalFunctionCall: {
992 for (std::unique_ptr<Expression>& arg : funcCallExpr.arguments()) {
997 case Expression::Kind::kFunctionCall: {
999 for (std::unique_ptr<Expression>& arg : funcCallExpr.arguments()) {
1005 case Expression::Kind::kIndex: {
1011 case Expression::Kind::kPostfix: {
1016 case Expression::Kind::kPrefix: {
1021 case Expression::Kind::kSwizzle: {
1026 case Expression::Kind::kTernary: {
1039 void addInlineCandidate(std::unique_ptr<Expression>* candidate) {