sem: Add constructor nullptr assertions

Catch the nullptrs early.

Change-Id: Ie8ee30355c79c6cbd589831f6587752b125d45c0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/49754
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/sem/call_target.cc b/src/sem/call_target.cc
index 0ce35e9..e3c87ff 100644
--- a/src/sem/call_target.cc
+++ b/src/sem/call_target.cc
@@ -22,7 +22,9 @@
 namespace sem {
 
 CallTarget::CallTarget(sem::Type* return_type, const ParameterList& parameters)
-    : return_type_(return_type), parameters_(parameters) {}
+    : return_type_(return_type), parameters_(parameters) {
+  TINT_ASSERT(return_type);
+}
 
 CallTarget::~CallTarget() = default;
 
diff --git a/src/sem/expression.cc b/src/sem/expression.cc
index 254c559..83d16d7 100644
--- a/src/sem/expression.cc
+++ b/src/sem/expression.cc
@@ -24,7 +24,9 @@
                        Statement* statement)
     : declaration_(declaration),
       type_(type->UnwrapIfNeeded()),
-      statement_(statement) {}
+      statement_(statement) {
+  TINT_ASSERT(type_);
+}
 
 }  // namespace sem
 }  // namespace tint