)]}'
{
  "commit": "33a8cddb2d200850377f4156ccf4f3ab1753a7eb",
  "tree": "8cdaf6d73885d40c412f3cd1240b6553a6fb774f",
  "parents": [
    "13dbbc6797a300043474202834ac401388d13bb0"
  ],
  "author": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Wed Feb 24 13:31:22 2021 +0000"
  },
  "committer": {
    "name": "Commit Bot service account",
    "email": "commit-bot@chromium.org",
    "time": "Wed Feb 24 13:31:22 2021 +0000"
  },
  "message": "TypeDeterminer: Error if an IdentifierExpression to a callable is not called\n\nIdentifierExpressions that resolve to functions and intrinsics were not being assigned a semantic::Expression as there is no function / intrinsic type to give them. This lead to NPEs in the writers when these identifiers were reached and TypeOf() is called.\n\nAdding a new tint::type::Callable is an option, but until functions become a type in the language, this seems like a very large and debatable change.\n\nAttempting to detect IdentifierExpressions with no semantic node in the validator is another option, but this is clunky as it has to detect incomplete semantic info from the TD, and cannot identify whether this actually resolved to a function or an intrinsic.\n\nInstead we now error in the TD if encounter an IdentifierExpression that resolves to a function or intrinsic which is not called (ident is not followed with parenthesis).\n\nFixed: chromium:1180544\nFixed: chromium:1180814\nChange-Id: I121dd194356419f94b09c7ee1ed544a350a114b3\nReviewed-on: https://dawn-review.googlesource.com/c/tint/+/42220\nCommit-Queue: Ben Clayton \u003cbclayton@google.com\u003e\nReviewed-by: James Price \u003cjrprice@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b77fa022d0618b033cec34bc9f3cbef24e2bca5a",
      "old_mode": 33188,
      "old_path": "src/source.h",
      "new_id": "9b6e74ce16a7cae9d99cf7dd3717078deee56495",
      "new_mode": 33188,
      "new_path": "src/source.h"
    },
    {
      "type": "modify",
      "old_id": "5bce843bbbc14cc8893b24fd88d4f3ccba4fc7b0",
      "old_mode": 33188,
      "old_path": "src/type_determiner.cc",
      "new_id": "fd334c255ab3515cc9e10c4823d2b36be469520c",
      "new_mode": 33188,
      "new_path": "src/type_determiner.cc"
    },
    {
      "type": "modify",
      "old_id": "3fd39515c9363fb89e50af2fafb6403561f38156",
      "old_mode": 33188,
      "old_path": "src/type_determiner_test.cc",
      "new_id": "801260d4f9d73ec287cfac56f313e2b6d06142a7",
      "new_mode": 33188,
      "new_path": "src/type_determiner_test.cc"
    }
  ]
}
