diff --git a/base/graphql-pike/test/inputs/graphql/github2.graphql/default/TopLevel.pmod b/head/graphql-pike/test/inputs/graphql/github2.graphql/default/TopLevel.pmod
index 2a3114d..369aaad 100644
--- a/base/graphql-pike/test/inputs/graphql/github2.graphql/default/TopLevel.pmod
+++ b/head/graphql-pike/test/inputs/graphql/github2.graphql/default/TopLevel.pmod
@@ -96,6 +96,7 @@ class RepositoryConnection {
 RepositoryConnection RepositoryConnection_from_JSON(mixed json) {
     RepositoryConnection retval = RepositoryConnection();
 
+    if (!intp(json["totalCount"])) error("Expected integer");
     retval.total_count = json["totalCount"];
     if (!has_index(json, "nodes")) error("Missing required property");
     retval.nodes = json["nodes"];
diff --git a/base/graphql-pike/test/inputs/graphql/github7.graphql/default/TopLevel.pmod b/head/graphql-pike/test/inputs/graphql/github7.graphql/default/TopLevel.pmod
index ef8e0c3..071fd00 100644
--- a/base/graphql-pike/test/inputs/graphql/github7.graphql/default/TopLevel.pmod
+++ b/head/graphql-pike/test/inputs/graphql/github7.graphql/default/TopLevel.pmod
@@ -171,6 +171,7 @@ class Connection {
 Connection Connection_from_JSON(mixed json) {
     Connection retval = Connection();
 
+    if (!intp(json["totalCount"])) error("Expected integer");
     retval.total_count = json["totalCount"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/00c36.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/00c36.json/default/TopLevel.pmod
index 381befd..367ec93 100644
--- a/base/pike/test/inputs/json/misc/00c36.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/00c36.json/default/TopLevel.pmod
@@ -118,9 +118,12 @@ class FluffyTopLevel {
 FluffyTopLevel FluffyTopLevel_from_JSON(mixed json) {
     FluffyTopLevel retval = FluffyTopLevel();
 
+    if (!intp(json["page"])) error("Expected integer");
     retval.page = json["page"];
+    if (!intp(json["pages"])) error("Expected integer");
     retval.pages = json["pages"];
     retval.per_page = json["per_page"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/010b1.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/010b1.json/default/TopLevel.pmod
index d569a3e..02b5d80 100644
--- a/base/pike/test/inputs/json/misc/010b1.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/010b1.json/default/TopLevel.pmod
@@ -43,11 +43,16 @@ class TopLevelElement {
 TopLevelElement TopLevelElement_from_JSON(mixed json) {
     TopLevelElement retval = TopLevelElement();
 
+    if (!intp(json["age"])) error("Expected integer");
     retval.age = json["age"];
     retval.country = Country_from_JSON(json["country"]);
+    if (!intp(json["females"])) error("Expected integer");
     retval.females = json["females"];
+    if (!intp(json["males"])) error("Expected integer");
     retval.males = json["males"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
+    if (!intp(json["year"])) error("Expected integer");
     retval.year = json["year"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/016af.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/016af.json/default/TopLevel.pmod
index d396953..a2c3877 100644
--- a/base/pike/test/inputs/json/misc/016af.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/016af.json/default/TopLevel.pmod
@@ -50,6 +50,7 @@ TotalPopulation TotalPopulation_from_JSON(mixed json) {
     TotalPopulation retval = TotalPopulation();
 
     retval.date = json["date"];
+    if (!intp(json["population"])) error("Expected integer");
     retval.population = json["population"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/09f54.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/09f54.json/default/TopLevel.pmod
index 0e6bcb4..1de287a 100644
--- a/base/pike/test/inputs/json/misc/09f54.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/09f54.json/default/TopLevel.pmod
@@ -80,6 +80,7 @@ Description Description_from_JSON(mixed json) {
     Description retval = Description();
 
     retval.base_period = json["base_period"];
+    if (!intp(json["missing"])) error("Expected integer");
     retval.missing = json["missing"];
     retval.title = json["title"];
     retval.units = json["units"];
diff --git a/base/pike/test/inputs/json/misc/0a358.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/0a358.json/default/TopLevel.pmod
index a14460a..79f4dce 100644
--- a/base/pike/test/inputs/json/misc/0a358.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/0a358.json/default/TopLevel.pmod
@@ -39,10 +39,13 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.facets = Facets_from_JSON(json["facets"]);
+    if (!intp(json["limit"])) error("Expected integer");
     retval.limit = json["limit"];
     retval.next = json["next"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
     if (json["previous"] != Standards.JSON.true && json["previous"] != Standards.JSON.false) error("Expected bool");
     retval.previous = json["previous"];
@@ -94,6 +97,7 @@ Result Result_from_JSON(mixed json) {
 
     retval.code = json["code"];
     retval.created_at = json["created_at"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.name = json["name"];
     retval.updated_at = json["updated_at"];
diff --git a/base/pike/test/inputs/json/misc/0a91a.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/0a91a.json/default/TopLevel.pmod
index ceebc55..4eebc57 100644
--- a/base/pike/test/inputs/json/misc/0a91a.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/0a91a.json/default/TopLevel.pmod
@@ -88,6 +88,7 @@ Actor Actor_from_JSON(mixed json) {
     retval.avatar_url = json["avatar_url"];
     retval.display_login = json["display_login"];
     retval.gravatar_id = json["gravatar_id"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.login = json["login"];
     retval.url = json["url"];
@@ -305,22 +306,28 @@ class PullRequest {
 PullRequest PullRequest_from_JSON(mixed json) {
     PullRequest retval = PullRequest();
 
+    if (!intp(json["additions"])) error("Expected integer");
     retval.additions = json["additions"];
     retval.assignee = json["assignee"];
     retval.assignees = json["assignees"];
     retval.base = Base_from_JSON(json["base"]);
     retval.body = json["body"];
+    if (!intp(json["changed_files"])) error("Expected integer");
     retval.changed_files = json["changed_files"];
     retval.closed_at = json["closed_at"];
+    if (!intp(json["comments"])) error("Expected integer");
     retval.comments = json["comments"];
     retval.comments_url = json["comments_url"];
+    if (!intp(json["commits"])) error("Expected integer");
     retval.commits = json["commits"];
     retval.commits_url = json["commits_url"];
     retval.created_at = json["created_at"];
+    if (!intp(json["deletions"])) error("Expected integer");
     retval.deletions = json["deletions"];
     retval.diff_url = json["diff_url"];
     retval.head = Base_from_JSON(json["head"]);
     retval.html_url = json["html_url"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.issue_url = json["issue_url"];
     retval.links = Links_from_JSON(json["_links"]);
@@ -336,11 +343,13 @@ PullRequest PullRequest_from_JSON(mixed json) {
     retval.merged_at = json["merged_at"];
     retval.merged_by = MergedBy_from_JSON(json["merged_by"]);
     retval.milestone = json["milestone"];
+    if (!intp(json["number"])) error("Expected integer");
     retval.number = json["number"];
     retval.patch_url = json["patch_url"];
     retval.rebaseable = json["rebaseable"];
     retval.requested_reviewers = json["requested_reviewers"];
     retval.review_comment_url = json["review_comment_url"];
+    if (!intp(json["review_comments"])) error("Expected integer");
     retval.review_comments = json["review_comments"];
     retval.review_comments_url = json["review_comments_url"];
     retval.state = json["state"];
@@ -555,7 +564,9 @@ BaseRepo BaseRepo_from_JSON(mixed json) {
     retval.events_url = json["events_url"];
     if (json["fork"] != Standards.JSON.true && json["fork"] != Standards.JSON.false) error("Expected bool");
     retval.fork = json["fork"];
+    if (!intp(json["forks"])) error("Expected integer");
     retval.forks = json["forks"];
+    if (!intp(json["forks_count"])) error("Expected integer");
     retval.forks_count = json["forks_count"];
     retval.forks_url = json["forks_url"];
     retval.full_name = json["full_name"];
@@ -576,6 +587,7 @@ BaseRepo BaseRepo_from_JSON(mixed json) {
     retval.homepage = json["homepage"];
     retval.hooks_url = json["hooks_url"];
     retval.html_url = json["html_url"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.issue_comment_url = json["issue_comment_url"];
     retval.issue_events_url = json["issue_events_url"];
@@ -589,7 +601,9 @@ BaseRepo BaseRepo_from_JSON(mixed json) {
     retval.mirror_url = json["mirror_url"];
     retval.name = json["name"];
     retval.notifications_url = json["notifications_url"];
+    if (!intp(json["open_issues"])) error("Expected integer");
     retval.open_issues = json["open_issues"];
+    if (!intp(json["open_issues_count"])) error("Expected integer");
     retval.open_issues_count = json["open_issues_count"];
     retval.owner = MergedBy_from_JSON(json["owner"]);
     retval.pulls_url = json["pulls_url"];
@@ -597,8 +611,10 @@ BaseRepo BaseRepo_from_JSON(mixed json) {
     retval.releases_url = json["releases_url"];
     if (json["private"] != Standards.JSON.true && json["private"] != Standards.JSON.false) error("Expected bool");
     retval.repo_private = json["private"];
+    if (!intp(json["size"])) error("Expected integer");
     retval.size = json["size"];
     retval.ssh_url = json["ssh_url"];
+    if (!intp(json["stargazers_count"])) error("Expected integer");
     retval.stargazers_count = json["stargazers_count"];
     retval.stargazers_url = json["stargazers_url"];
     retval.statuses_url = json["statuses_url"];
@@ -610,7 +626,9 @@ BaseRepo BaseRepo_from_JSON(mixed json) {
     retval.trees_url = json["trees_url"];
     retval.updated_at = json["updated_at"];
     retval.url = json["url"];
+    if (!intp(json["watchers"])) error("Expected integer");
     retval.watchers = json["watchers"];
+    if (!intp(json["watchers_count"])) error("Expected integer");
     retval.watchers_count = json["watchers_count"];
 
     return retval;
@@ -670,6 +688,7 @@ MergedBy MergedBy_from_JSON(mixed json) {
     retval.gists_url = json["gists_url"];
     retval.gravatar_id = json["gravatar_id"];
     retval.html_url = json["html_url"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.login = json["login"];
     retval.organizations_url = json["organizations_url"];
@@ -765,6 +784,7 @@ class TopLevelRepo {
 TopLevelRepo TopLevelRepo_from_JSON(mixed json) {
     TopLevelRepo retval = TopLevelRepo();
 
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.name = json["name"];
     retval.url = json["url"];
diff --git a/base/pike/test/inputs/json/misc/0b91a.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/0b91a.json/default/TopLevel.pmod
index 50bb6af..7cfb8d2 100644
--- a/base/pike/test/inputs/json/misc/0b91a.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/0b91a.json/default/TopLevel.pmod
@@ -79,6 +79,7 @@ ResponseInfo ResponseInfo_from_JSON(mixed json) {
     ResponseInfo retval = ResponseInfo();
 
     retval.developer_message = json["developerMessage"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
 
     return retval;
@@ -103,8 +104,11 @@ class Resultset {
 Resultset Resultset_from_JSON(mixed json) {
     Resultset retval = Resultset();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["page"])) error("Expected integer");
     retval.page = json["page"];
+    if (!intp(json["pagesize"])) error("Expected integer");
     retval.pagesize = json["pagesize"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/0cffa.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/0cffa.json/default/TopLevel.pmod
index abc260e..587e8a2 100644
--- a/base/pike/test/inputs/json/misc/0cffa.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/0cffa.json/default/TopLevel.pmod
@@ -94,6 +94,7 @@ Datum Datum_from_JSON(mixed json) {
     retval.id = json["id"];
     retval.images = Images_from_JSON(json["images"]);
     retval.import_datetime = json["import_datetime"];
+    if (!intp(json["is_indexable"])) error("Expected integer");
     retval.is_indexable = json["is_indexable"];
     retval.rating = Rating_from_JSON(json["rating"]);
     retval.slug = json["slug"];
@@ -407,6 +408,7 @@ Meta Meta_from_JSON(mixed json) {
 
     retval.msg = json["msg"];
     retval.response_id = json["response_id"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
 
     return retval;
@@ -431,8 +433,11 @@ class Pagination {
 Pagination Pagination_from_JSON(mixed json) {
     Pagination retval = Pagination();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
+    if (!intp(json["total_count"])) error("Expected integer");
     retval.total_count = json["total_count"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/0e0c2.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/0e0c2.json/default/TopLevel.pmod
index d811dfd..8436e76 100644
--- a/base/pike/test/inputs/json/misc/0e0c2.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/0e0c2.json/default/TopLevel.pmod
@@ -33,6 +33,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.next = json["next"];
     retval.previous = json["previous"];
@@ -84,21 +85,26 @@ class Result {
 Result Result_from_JSON(mixed json) {
     Result retval = Result();
 
+    if (!intp(json["active_screens"])) error("Expected integer");
     retval.active_screens = json["active_screens"];
     retval.collections = json["collections"];
     retval.details = json["details"];
+    if (!intp(json["duration"])) error("Expected integer");
     retval.duration = json["duration"];
     retval.fav_movie = FavMovie_from_JSON(json["fav_movie"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.images = json["images"];
     retval.language = ResultLanguage_from_JSON(json["language"]);
     retval.release_date = json["release_date"];
+    if (!intp(json["stars"])) error("Expected integer");
     retval.stars = json["stars"];
     if (!has_index(json, "tags")) error("Missing required property");
     retval.tags = json["tags"];
     retval.title = json["title"];
     retval.videos = json["videos"];
     retval.vote_score = VoteScore_from_JSON(json["vote_score"]);
+    if (!intp(json["watches"])) error("Expected integer");
     retval.watches = json["watches"];
 
     return retval;
@@ -125,6 +131,7 @@ class Collection {
 Collection Collection_from_JSON(mixed json) {
     Collection retval = Collection();
 
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.movies = json["movies"];
     retval.name = json["name"];
@@ -162,6 +169,7 @@ Detail Detail_from_JSON(mixed json) {
 
     retval.cast = json["cast"];
     retval.director = json["director"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.language = DetailLanguage_from_JSON(json["language"]);
     retval.storyline = json["storyline"];
@@ -232,7 +240,9 @@ class Image {
 Image Image_from_JSON(mixed json) {
     Image retval = Image();
 
+    if (!intp(json["favs"])) error("Expected integer");
     retval.favs = json["favs"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.thumbnail = json["thumbnail"];
     retval.type = Type_from_JSON(json["type"]);
@@ -307,8 +317,11 @@ class VoteScore {
 VoteScore VoteScore_from_JSON(mixed json) {
     VoteScore retval = VoteScore();
 
+    if (!intp(json["avg"])) error("Expected integer");
     retval.avg = json["avg"];
+    if (!intp(json["score"])) error("Expected integer");
     retval.score = json["score"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/127a1.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/127a1.json/default/TopLevel.pmod
index 9d03b31..12a864b 100644
--- a/base/pike/test/inputs/json/misc/127a1.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/127a1.json/default/TopLevel.pmod
@@ -94,6 +94,7 @@ Datum Datum_from_JSON(mixed json) {
     retval.id = json["id"];
     retval.images = Images_from_JSON(json["images"]);
     retval.import_datetime = json["import_datetime"];
+    if (!intp(json["is_indexable"])) error("Expected integer");
     retval.is_indexable = json["is_indexable"];
     retval.rating = Rating_from_JSON(json["rating"]);
     retval.slug = json["slug"];
@@ -406,6 +407,7 @@ Meta Meta_from_JSON(mixed json) {
 
     retval.msg = json["msg"];
     retval.response_id = json["response_id"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
 
     return retval;
@@ -430,8 +432,11 @@ class Pagination {
 Pagination Pagination_from_JSON(mixed json) {
     Pagination retval = Pagination();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
+    if (!intp(json["total_count"])) error("Expected integer");
     retval.total_count = json["total_count"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/13d8d.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/13d8d.json/default/TopLevel.pmod
index a208986..cf0d176 100644
--- a/base/pike/test/inputs/json/misc/13d8d.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/13d8d.json/default/TopLevel.pmod
@@ -51,6 +51,7 @@ TopLevelElement TopLevelElement_from_JSON(mixed json) {
 
     retval.category = json["category"];
     retval.context = json["context"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.location = Location_from_JSON(json["location"]);
     retval.location_subtype = json["location_subtype"];
@@ -105,6 +106,7 @@ class Street {
 Street Street_from_JSON(mixed json) {
     Street retval = Street();
 
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.name = json["name"];
 
diff --git a/base/pike/test/inputs/json/misc/16bc5.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/16bc5.json/default/TopLevel.pmod
index 501fedd..7cdfc67 100644
--- a/base/pike/test/inputs/json/misc/16bc5.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/16bc5.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ class Query {
 Query Query_from_JSON(mixed json) {
     Query retval = Query();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.created = json["created"];
     retval.lang = json["lang"];
diff --git a/base/pike/test/inputs/json/misc/176f1.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/176f1.json/default/TopLevel.pmod
index a4ec609..ec0b904 100644
--- a/base/pike/test/inputs/json/misc/176f1.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/176f1.json/default/TopLevel.pmod
@@ -34,6 +34,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
     retval.message = json["message"];
+    if (!intp(json["responseTime"])) error("Expected integer");
     retval.response_time = json["responseTime"];
     retval.results = Results_from_JSON(json["Results"]);
     retval.status = json["status"];
diff --git a/base/pike/test/inputs/json/misc/1a7f5.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/1a7f5.json/default/TopLevel.pmod
index d569a3e..02b5d80 100644
--- a/base/pike/test/inputs/json/misc/1a7f5.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/1a7f5.json/default/TopLevel.pmod
@@ -43,11 +43,16 @@ class TopLevelElement {
 TopLevelElement TopLevelElement_from_JSON(mixed json) {
     TopLevelElement retval = TopLevelElement();
 
+    if (!intp(json["age"])) error("Expected integer");
     retval.age = json["age"];
     retval.country = Country_from_JSON(json["country"]);
+    if (!intp(json["females"])) error("Expected integer");
     retval.females = json["females"];
+    if (!intp(json["males"])) error("Expected integer");
     retval.males = json["males"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
+    if (!intp(json["year"])) error("Expected integer");
     retval.year = json["year"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/1b28c.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/1b28c.json/default/TopLevel.pmod
index d396953..a2c3877 100644
--- a/base/pike/test/inputs/json/misc/1b28c.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/1b28c.json/default/TopLevel.pmod
@@ -50,6 +50,7 @@ TotalPopulation TotalPopulation_from_JSON(mixed json) {
     TotalPopulation retval = TotalPopulation();
 
     retval.date = json["date"];
+    if (!intp(json["population"])) error("Expected integer");
     retval.population = json["population"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/1b409.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/1b409.json/default/TopLevel.pmod
index 3008032..b393782 100644
--- a/base/pike/test/inputs/json/misc/1b409.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/1b409.json/default/TopLevel.pmod
@@ -54,8 +54,11 @@ class Meta {
 Meta Meta_from_JSON(mixed json) {
     Meta retval = Meta();
 
+    if (!intp(json["limit"])) error("Expected integer");
     retval.limit = json["limit"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
+    if (!intp(json["total_count"])) error("Expected integer");
     retval.total_count = json["total_count"];
 
     return retval;
@@ -121,9 +124,11 @@ Object Object_from_JSON(mixed json) {
     if (json["current"] != Standards.JSON.true && json["current"] != Standards.JSON.false) error("Expected bool");
     retval.current = json["current"];
     retval.description = json["description"];
+    if (!intp(json["district"])) error("Expected integer");
     retval.district = json["district"];
     retval.enddate = json["enddate"];
     retval.extra = Extra_from_JSON(json["extra"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     if (!has_index(json, "leadership_title")) error("Missing required property");
     retval.leadership_title = json["leadership_title"];
@@ -235,10 +240,12 @@ Person Person_from_JSON(mixed json) {
 
     retval.bioguideid = json["bioguideid"];
     retval.birthday = json["birthday"];
+    if (!intp(json["cspanid"])) error("Expected integer");
     retval.cspanid = json["cspanid"];
     retval.firstname = json["firstname"];
     retval.gender = Gender_from_JSON(json["gender"]);
     retval.gender_label = GenderLabel_from_JSON(json["gender_label"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.lastname = json["lastname"];
     retval.link = json["link"];
diff --git a/base/pike/test/inputs/json/misc/262f0.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/262f0.json/default/TopLevel.pmod
index 02ed44d..4827951 100644
--- a/base/pike/test/inputs/json/misc/262f0.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/262f0.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ class Query {
 Query Query_from_JSON(mixed json) {
     Query retval = Query();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.created = json["created"];
     retval.lang = json["lang"];
diff --git a/base/pike/test/inputs/json/misc/26b49.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/26b49.json/default/TopLevel.pmod
index 519da66..61d1a13 100644
--- a/base/pike/test/inputs/json/misc/26b49.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/26b49.json/default/TopLevel.pmod
@@ -94,6 +94,7 @@ Datum Datum_from_JSON(mixed json) {
     retval.id = json["id"];
     retval.images = Images_from_JSON(json["images"]);
     retval.import_datetime = json["import_datetime"];
+    if (!intp(json["is_indexable"])) error("Expected integer");
     retval.is_indexable = json["is_indexable"];
     retval.rating = Rating_from_JSON(json["rating"]);
     retval.slug = json["slug"];
@@ -401,6 +402,7 @@ Meta Meta_from_JSON(mixed json) {
 
     retval.msg = json["msg"];
     retval.response_id = json["response_id"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
 
     return retval;
@@ -425,8 +427,11 @@ class Pagination {
 Pagination Pagination_from_JSON(mixed json) {
     Pagination retval = Pagination();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
+    if (!intp(json["total_count"])) error("Expected integer");
     retval.total_count = json["total_count"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/26c9c.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/26c9c.json/default/TopLevel.pmod
index 596a88a..ea4d617 100644
--- a/base/pike/test/inputs/json/misc/26c9c.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/26c9c.json/default/TopLevel.pmod
@@ -152,12 +152,15 @@ View View_from_JSON(mixed json) {
 
     retval.attribution = json["attribution"];
     retval.attribution_link = json["attributionLink"];
+    if (!intp(json["averageRating"])) error("Expected integer");
     retval.average_rating = json["averageRating"];
     retval.category = json["category"];
     retval.columns = json["columns"];
+    if (!intp(json["createdAt"])) error("Expected integer");
     retval.created_at = json["createdAt"];
     retval.description = json["description"];
     retval.display_type = json["displayType"];
+    if (!intp(json["downloadCount"])) error("Expected integer");
     retval.download_count = json["downloadCount"];
     retval.flags = json["flags"];
     retval.grants = json["grants"];
@@ -166,30 +169,40 @@ View View_from_JSON(mixed json) {
     if (json["hideFromDataJson"] != Standards.JSON.true && json["hideFromDataJson"] != Standards.JSON.false) error("Expected bool");
     retval.hide_from_data_json = json["hideFromDataJson"];
     retval.id = json["id"];
+    if (!intp(json["indexUpdatedAt"])) error("Expected integer");
     retval.index_updated_at = json["indexUpdatedAt"];
     retval.locale = json["locale"];
     retval.metadata = Metadata_from_JSON(json["metadata"]);
     retval.name = json["name"];
     if (json["newBackend"] != Standards.JSON.true && json["newBackend"] != Standards.JSON.false) error("Expected bool");
     retval.new_backend = json["newBackend"];
+    if (!intp(json["numberOfComments"])) error("Expected integer");
     retval.number_of_comments = json["numberOfComments"];
+    if (!intp(json["oid"])) error("Expected integer");
     retval.oid = json["oid"];
     retval.owner = Owner_from_JSON(json["owner"]);
     retval.provenance = json["provenance"];
     if (json["publicationAppendEnabled"] != Standards.JSON.true && json["publicationAppendEnabled"] != Standards.JSON.false) error("Expected bool");
     retval.publication_append_enabled = json["publicationAppendEnabled"];
+    if (!intp(json["publicationDate"])) error("Expected integer");
     retval.publication_date = json["publicationDate"];
+    if (!intp(json["publicationGroup"])) error("Expected integer");
     retval.publication_group = json["publicationGroup"];
     retval.publication_stage = json["publicationStage"];
     retval.query = Query_from_JSON(json["query"]);
     retval.rights = json["rights"];
+    if (!intp(json["rowsUpdatedAt"])) error("Expected integer");
     retval.rows_updated_at = json["rowsUpdatedAt"];
     retval.rows_updated_by = json["rowsUpdatedBy"];
     retval.table_author = Owner_from_JSON(json["tableAuthor"]);
+    if (!intp(json["tableId"])) error("Expected integer");
     retval.table_id = json["tableId"];
     retval.tags = json["tags"];
+    if (!intp(json["totalTimesRated"])) error("Expected integer");
     retval.total_times_rated = json["totalTimesRated"];
+    if (!intp(json["viewCount"])) error("Expected integer");
     retval.view_count = json["viewCount"];
+    if (!intp(json["viewLastModified"])) error("Expected integer");
     retval.view_last_modified = json["viewLastModified"];
     retval.view_type = json["viewType"];
 
@@ -236,8 +249,10 @@ Column Column_from_JSON(mixed json) {
     retval.field_name = json["fieldName"];
     retval.flags = json["flags"];
     retval.format = Format_from_JSON(json["format"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.name = json["name"];
+    if (!intp(json["position"])) error("Expected integer");
     retval.position = json["position"];
     retval.render_type_name = json["renderTypeName"];
     retval.table_column_id = json["tableColumnId"];
@@ -275,7 +290,9 @@ CachedContents CachedContents_from_JSON(mixed json) {
 
     retval.average = json["average"];
     retval.largest = json["largest"];
+    if (!intp(json["non_null"])) error("Expected integer");
     retval.non_null = json["non_null"];
+    if (!intp(json["null"])) error("Expected integer");
     retval.null = json["null"];
     retval.smallest = json["smallest"];
     retval.sum = json["sum"];
@@ -301,6 +318,7 @@ class Top {
 Top Top_from_JSON(mixed json) {
     Top retval = Top();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.item = json["item"];
 
@@ -779,6 +797,7 @@ class Expression {
 Expression Expression_from_JSON(mixed json) {
     Expression retval = Expression();
 
+    if (!intp(json["columnId"])) error("Expected integer");
     retval.column_id = json["columnId"];
     retval.type = json["type"];
 
diff --git a/base/pike/test/inputs/json/misc/27332.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/27332.json/default/TopLevel.pmod
index df96cde..88efef7 100644
--- a/base/pike/test/inputs/json/misc/27332.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/27332.json/default/TopLevel.pmod
@@ -254,9 +254,11 @@ ChildData ChildData_from_JSON(mixed json) {
     if (!has_index(json, "distinguished")) error("Missing required property");
     retval.distinguished = json["distinguished"];
     retval.domain = Domain_from_JSON(json["domain"]);
+    if (!intp(json["downs"])) error("Expected integer");
     retval.downs = json["downs"];
     if (json["edited"] != Standards.JSON.true && json["edited"] != Standards.JSON.false) error("Expected bool");
     retval.edited = json["edited"];
+    if (!intp(json["gilded"])) error("Expected integer");
     retval.gilded = json["gilded"];
     if (json["hidden"] != Standards.JSON.true && json["hidden"] != Standards.JSON.false) error("Expected bool");
     retval.hidden = json["hidden"];
@@ -279,6 +281,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.media_embed = MediaEmbed_from_JSON(json["media_embed"]);
     retval.mod_reports = json["mod_reports"];
     retval.name = json["name"];
+    if (!intp(json["num_comments"])) error("Expected integer");
     retval.num_comments = json["num_comments"];
     retval.num_reports = json["num_reports"];
     if (json["over_18"] != Standards.JSON.true && json["over_18"] != Standards.JSON.false) error("Expected bool");
@@ -292,6 +295,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.report_reasons = json["report_reasons"];
     if (json["saved"] != Standards.JSON.true && json["saved"] != Standards.JSON.false) error("Expected bool");
     retval.saved = json["saved"];
+    if (!intp(json["score"])) error("Expected integer");
     retval.score = json["score"];
     if (!has_index(json, "secure_media")) error("Missing required property");
     retval.secure_media = json["secure_media"] == Val.null ? Val.null : Media_from_JSON(json["secure_media"]);
@@ -309,11 +313,14 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.subreddit_type = SubredditType_from_JSON(json["subreddit_type"]);
     retval.suggested_sort = json["suggested_sort"];
     retval.thumbnail = json["thumbnail"];
+    if (!intp(json["thumbnail_height"])) error("Expected integer");
     if (!has_index(json, "thumbnail_height")) error("Missing required property");
     retval.thumbnail_height = json["thumbnail_height"];
+    if (!intp(json["thumbnail_width"])) error("Expected integer");
     if (!has_index(json, "thumbnail_width")) error("Missing required property");
     retval.thumbnail_width = json["thumbnail_width"];
     retval.title = json["title"];
+    if (!intp(json["ups"])) error("Expected integer");
     retval.ups = json["ups"];
     retval.url = json["url"];
     retval.user_reports = json["user_reports"];
@@ -396,16 +403,20 @@ Oembed Oembed_from_JSON(mixed json) {
     Oembed retval = Oembed();
 
     retval.description = json["description"];
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.html = json["html"];
     retval.provider_name = json["provider_name"];
     retval.provider_url = json["provider_url"];
+    if (!intp(json["thumbnail_height"])) error("Expected integer");
     retval.thumbnail_height = json["thumbnail_height"];
     retval.thumbnail_url = json["thumbnail_url"];
+    if (!intp(json["thumbnail_width"])) error("Expected integer");
     retval.thumbnail_width = json["thumbnail_width"];
     retval.title = json["title"];
     retval.type = json["type"];
     retval.version = json["version"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
@@ -521,8 +532,10 @@ class Source {
 Source Source_from_JSON(mixed json) {
     Source retval = Source();
 
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.url = json["url"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/29f47.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/29f47.json/default/TopLevel.pmod
index bfd64ca..83c31bf 100644
--- a/base/pike/test/inputs/json/misc/29f47.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/29f47.json/default/TopLevel.pmod
@@ -251,9 +251,11 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.created_utc = (float)json["created_utc"];
     retval.distinguished = Distinguished_from_JSON(json["distinguished"]);
     retval.domain = Domain_from_JSON(json["domain"]);
+    if (!intp(json["downs"])) error("Expected integer");
     retval.downs = json["downs"];
     if (arrayp(json["edited"])) error("Unexpected array");
     retval.edited = json["edited"];
+    if (!intp(json["gilded"])) error("Expected integer");
     retval.gilded = json["gilded"];
     if (json["hidden"] != Standards.JSON.true && json["hidden"] != Standards.JSON.false) error("Expected bool");
     retval.hidden = json["hidden"];
@@ -273,6 +275,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.media_embed = MediaEmbed_from_JSON(json["media_embed"]);
     retval.mod_reports = json["mod_reports"];
     retval.name = json["name"];
+    if (!intp(json["num_comments"])) error("Expected integer");
     retval.num_comments = json["num_comments"];
     retval.num_reports = json["num_reports"];
     if (json["over_18"] != Standards.JSON.true && json["over_18"] != Standards.JSON.false) error("Expected bool");
@@ -286,6 +289,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.report_reasons = json["report_reasons"];
     if (json["saved"] != Standards.JSON.true && json["saved"] != Standards.JSON.false) error("Expected bool");
     retval.saved = json["saved"];
+    if (!intp(json["score"])) error("Expected integer");
     retval.score = json["score"];
     retval.secure_media = json["secure_media"];
     retval.secure_media_embed = MediaEmbed_from_JSON(json["secure_media_embed"]);
@@ -303,11 +307,14 @@ ChildData ChildData_from_JSON(mixed json) {
     if (!has_index(json, "suggested_sort")) error("Missing required property");
     retval.suggested_sort = json["suggested_sort"];
     retval.thumbnail = json["thumbnail"];
+    if (!intp(json["thumbnail_height"])) error("Expected integer");
     if (!has_index(json, "thumbnail_height")) error("Missing required property");
     retval.thumbnail_height = json["thumbnail_height"];
+    if (!intp(json["thumbnail_width"])) error("Expected integer");
     if (!has_index(json, "thumbnail_width")) error("Missing required property");
     retval.thumbnail_width = json["thumbnail_width"];
     retval.title = json["title"];
+    if (!intp(json["ups"])) error("Expected integer");
     retval.ups = json["ups"];
     retval.url = json["url"];
     retval.user_reports = json["user_reports"];
@@ -438,8 +445,10 @@ class Source {
 Source Source_from_JSON(mixed json) {
     Source retval = Source();
 
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.url = json["url"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/2d4e2.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/2d4e2.json/default/TopLevel.pmod
index 7fdce8b..31b051b 100644
--- a/base/pike/test/inputs/json/misc/2d4e2.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/2d4e2.json/default/TopLevel.pmod
@@ -54,8 +54,11 @@ class Meta {
 Meta Meta_from_JSON(mixed json) {
     Meta retval = Meta();
 
+    if (!intp(json["limit"])) error("Expected integer");
     retval.limit = json["limit"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
+    if (!intp(json["total_count"])) error("Expected integer");
     retval.total_count = json["total_count"];
 
     return retval;
@@ -129,6 +132,7 @@ Object Object_from_JSON(mixed json) {
     retval.district = json["district"];
     retval.enddate = json["enddate"];
     retval.extra = Extra_from_JSON(json["extra"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     if (!has_index(json, "leadership_title")) error("Missing required property");
     retval.leadership_title = json["leadership_title"];
@@ -243,10 +247,12 @@ Person Person_from_JSON(mixed json) {
 
     retval.bioguideid = json["bioguideid"];
     retval.birthday = json["birthday"];
+    if (!intp(json["cspanid"])) error("Expected integer");
     retval.cspanid = json["cspanid"];
     retval.firstname = json["firstname"];
     retval.gender = Gender_from_JSON(json["gender"]);
     retval.gender_label = GenderLabel_from_JSON(json["gender_label"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.lastname = json["lastname"];
     retval.link = json["link"];
diff --git a/base/pike/test/inputs/json/misc/2df80.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/2df80.json/default/TopLevel.pmod
index 43e0949..c7b5aaa 100644
--- a/base/pike/test/inputs/json/misc/2df80.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/2df80.json/default/TopLevel.pmod
@@ -173,9 +173,12 @@ class FluffyTopLevel {
 FluffyTopLevel FluffyTopLevel_from_JSON(mixed json) {
     FluffyTopLevel retval = FluffyTopLevel();
 
+    if (!intp(json["page"])) error("Expected integer");
     retval.page = json["page"];
+    if (!intp(json["pages"])) error("Expected integer");
     retval.pages = json["pages"];
     retval.per_page = json["per_page"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/32431.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/32431.json/default/TopLevel.pmod
index 4c8f010..1214ae2 100644
--- a/base/pike/test/inputs/json/misc/32431.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/32431.json/default/TopLevel.pmod
@@ -173,6 +173,7 @@ Properties Properties_from_JSON(mixed json) {
     if (!has_index(json, "dmin")) error("Missing required property");
     retval.dmin = json["dmin"];
     retval.felt = json["felt"];
+    if (!intp(json["gap"])) error("Expected integer");
     if (!has_index(json, "gap")) error("Missing required property");
     retval.gap = json["gap"];
     retval.ids = json["ids"];
@@ -180,19 +181,25 @@ Properties Properties_from_JSON(mixed json) {
     retval.mag_type = MagType_from_JSON(json["magType"]);
     retval.mmi = json["mmi"];
     retval.net = json["net"];
+    if (!intp(json["nst"])) error("Expected integer");
     if (!has_index(json, "nst")) error("Missing required property");
     retval.nst = json["nst"];
     retval.place = json["place"];
     retval.rms = (float)json["rms"];
+    if (!intp(json["sig"])) error("Expected integer");
     retval.sig = json["sig"];
     retval.sources = json["sources"];
     retval.status = Status_from_JSON(json["status"]);
+    if (!intp(json["time"])) error("Expected integer");
     retval.time = json["time"];
     retval.title = json["title"];
+    if (!intp(json["tsunami"])) error("Expected integer");
     retval.tsunami = json["tsunami"];
     retval.type = PropertiesType_from_JSON(json["type"]);
     retval.types = json["types"];
+    if (!intp(json["tz"])) error("Expected integer");
     retval.tz = json["tz"];
+    if (!intp(json["updated"])) error("Expected integer");
     retval.updated = json["updated"];
     retval.url = json["url"];
 
@@ -260,8 +267,11 @@ Metadata Metadata_from_JSON(mixed json) {
     Metadata retval = Metadata();
 
     retval.api = json["api"];
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["generated"])) error("Expected integer");
     retval.generated = json["generated"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
     retval.title = json["title"];
     retval.url = json["url"];
diff --git a/base/pike/test/inputs/json/misc/32d5c.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/32d5c.json/default/TopLevel.pmod
index a03774c..f44b7c0 100644
--- a/base/pike/test/inputs/json/misc/32d5c.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/32d5c.json/default/TopLevel.pmod
@@ -51,9 +51,11 @@ TopLevelElement TopLevelElement_from_JSON(mixed json) {
     retval.birth_date = json["BirthDate"];
     if (json["BirthDateIsProtected"] != Standards.JSON.true && json["BirthDateIsProtected"] != Standards.JSON.false) error("Expected bool");
     retval.birth_date_is_protected = json["BirthDateIsProtected"];
+    if (!intp(json["GenderTypeID"])) error("Expected integer");
     retval.gender_type_id = json["GenderTypeID"];
     retval.notes = json["Notes"];
     retval.parliamentary_name = json["ParliamentaryName"];
+    if (!intp(json["PersonID"])) error("Expected integer");
     retval.person_id = json["PersonID"];
     retval.photo_url = json["PhotoURL"];
     retval.preferred_name = json["PreferredName"];
diff --git a/base/pike/test/inputs/json/misc/337ed.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/337ed.json/default/TopLevel.pmod
index 6b6acde..cedfca0 100644
--- a/base/pike/test/inputs/json/misc/337ed.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/337ed.json/default/TopLevel.pmod
@@ -39,10 +39,13 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.facets = Facets_from_JSON(json["facets"]);
+    if (!intp(json["limit"])) error("Expected integer");
     retval.limit = json["limit"];
     retval.next = json["next"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
     if (json["previous"] != Standards.JSON.true && json["previous"] != Standards.JSON.false) error("Expected bool");
     retval.previous = json["previous"];
@@ -144,10 +147,13 @@ class Result {
 Result Result_from_JSON(mixed json) {
     Result retval = Result();
 
+    if (!intp(json["cost_absolute"])) error("Expected integer");
     if (!has_index(json, "cost_absolute")) error("Missing required property");
     retval.cost_absolute = json["cost_absolute"];
+    if (!intp(json["cost_max"])) error("Expected integer");
     if (!has_index(json, "cost_max")) error("Missing required property");
     retval.cost_max = json["cost_max"];
+    if (!intp(json["cost_min"])) error("Expected integer");
     if (!has_index(json, "cost_min")) error("Missing required property");
     retval.cost_min = json["cost_min"];
     retval.created_at = json["created_at"];
@@ -155,9 +161,11 @@ Result Result_from_JSON(mixed json) {
     retval.direct_rep_costs_max = json["direct_rep_costs_max"];
     retval.direct_rep_costs_min = json["direct_rep_costs_min"];
     retval.end_date = json["end_date"];
+    if (!intp(json["eur_sources_grants"])) error("Expected integer");
     retval.eur_sources_grants = json["eur_sources_grants"];
     if (!has_index(json, "eur_sources_grants_src")) error("Missing required property");
     retval.eur_sources_grants_src = json["eur_sources_grants_src"];
+    if (!intp(json["eur_sources_procurement"])) error("Expected integer");
     retval.eur_sources_procurement = json["eur_sources_procurement"];
     if (!has_index(json, "eur_sources_procurement_src")) error("Missing required property");
     retval.eur_sources_procurement_src = json["eur_sources_procurement_src"];
@@ -167,27 +175,37 @@ Result Result_from_JSON(mixed json) {
     retval.no_clients = json["no_clients"];
     if (!has_index(json, "other_financial_information")) error("Missing required property");
     retval.other_financial_information = json["other_financial_information"];
+    if (!intp(json["other_sources_contributions"])) error("Expected integer");
     if (!has_index(json, "other_sources_contributions")) error("Missing required property");
     retval.other_sources_contributions = json["other_sources_contributions"];
+    if (!intp(json["other_sources_donation"])) error("Expected integer");
     if (!has_index(json, "other_sources_donation")) error("Missing required property");
     retval.other_sources_donation = json["other_sources_donation"];
+    if (!intp(json["other_sources_total"])) error("Expected integer");
     if (!has_index(json, "other_sources_total")) error("Missing required property");
     retval.other_sources_total = json["other_sources_total"];
+    if (!intp(json["public_financing_infranational"])) error("Expected integer");
     if (!has_index(json, "public_financing_infranational")) error("Missing required property");
     retval.public_financing_infranational = json["public_financing_infranational"];
+    if (!intp(json["public_financing_national"])) error("Expected integer");
     if (!has_index(json, "public_financing_national")) error("Missing required property");
     retval.public_financing_national = json["public_financing_national"];
+    if (!intp(json["public_financing_total"])) error("Expected integer");
     if (!has_index(json, "public_financing_total")) error("Missing required property");
     retval.public_financing_total = json["public_financing_total"];
     retval.representative = json["representative"];
     retval.start_date = json["start_date"];
     retval.status = Status_from_JSON(json["status"]);
+    if (!intp(json["total_budget"])) error("Expected integer");
     if (!has_index(json, "total_budget")) error("Missing required property");
     retval.total_budget = json["total_budget"];
+    if (!intp(json["turnover_absolute"])) error("Expected integer");
     if (!has_index(json, "turnover_absolute")) error("Missing required property");
     retval.turnover_absolute = json["turnover_absolute"];
+    if (!intp(json["turnover_max"])) error("Expected integer");
     if (!has_index(json, "turnover_max")) error("Missing required property");
     retval.turnover_max = json["turnover_max"];
+    if (!intp(json["turnover_min"])) error("Expected integer");
     if (!has_index(json, "turnover_min")) error("Missing required property");
     retval.turnover_min = json["turnover_min"];
     retval.type = ResultType_from_JSON(json["type"]);
@@ -226,6 +244,7 @@ class CustomIncome {
 CustomIncome CustomIncome_from_JSON(mixed json) {
     CustomIncome retval = CustomIncome();
 
+    if (!intp(json["amount"])) error("Expected integer");
     retval.amount = json["amount"];
     retval.created_at = json["created_at"];
     retval.id = json["id"];
diff --git a/base/pike/test/inputs/json/misc/34702.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/34702.json/default/TopLevel.pmod
index 0309b48..477cf55 100644
--- a/base/pike/test/inputs/json/misc/34702.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/34702.json/default/TopLevel.pmod
@@ -35,6 +35,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
 
     retval.crs = Crs_from_JSON(json["crs"]);
     retval.features = json["features"];
+    if (!intp(json["totalFeatures"])) error("Expected integer");
     retval.total_features = json["totalFeatures"];
     retval.type = json["type"];
 
@@ -208,6 +209,7 @@ FeatureProperties FeatureProperties_from_JSON(mixed json) {
     if (!has_index(json, "no")) error("Missing required property");
     retval.no = json["no"];
     retval.phone = (float)json["phone"];
+    if (!intp(json["postcode"])) error("Expected integer");
     retval.postcode = json["postcode"];
     retval.psa = json["psa"];
     retval.region = Region_from_JSON(json["region"]);
diff --git a/base/pike/test/inputs/json/misc/3659d.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/3659d.json/default/TopLevel.pmod
index d396953..a2c3877 100644
--- a/base/pike/test/inputs/json/misc/3659d.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/3659d.json/default/TopLevel.pmod
@@ -50,6 +50,7 @@ TotalPopulation TotalPopulation_from_JSON(mixed json) {
     TotalPopulation retval = TotalPopulation();
 
     retval.date = json["date"];
+    if (!intp(json["population"])) error("Expected integer");
     retval.population = json["population"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/3e9a3.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/3e9a3.json/default/TopLevel.pmod
index a4ec609..ec0b904 100644
--- a/base/pike/test/inputs/json/misc/3e9a3.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/3e9a3.json/default/TopLevel.pmod
@@ -34,6 +34,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
     retval.message = json["message"];
+    if (!intp(json["responseTime"])) error("Expected integer");
     retval.response_time = json["responseTime"];
     retval.results = Results_from_JSON(json["Results"]);
     retval.status = json["status"];
diff --git a/base/pike/test/inputs/json/misc/3f1ce.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/3f1ce.json/default/TopLevel.pmod
index d0d08bf..9a8e7aa 100644
--- a/base/pike/test/inputs/json/misc/3f1ce.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/3f1ce.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ class Query {
 Query Query_from_JSON(mixed json) {
     Query retval = Query();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.created = json["created"];
     retval.lang = json["lang"];
diff --git a/base/pike/test/inputs/json/misc/421d4.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/421d4.json/default/TopLevel.pmod
index 6586a68..51107d3 100644
--- a/base/pike/test/inputs/json/misc/421d4.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/421d4.json/default/TopLevel.pmod
@@ -155,12 +155,15 @@ View View_from_JSON(mixed json) {
     View retval = View();
 
     retval.attribution = json["attribution"];
+    if (!intp(json["averageRating"])) error("Expected integer");
     retval.average_rating = json["averageRating"];
     retval.category = json["category"];
     retval.columns = json["columns"];
+    if (!intp(json["createdAt"])) error("Expected integer");
     retval.created_at = json["createdAt"];
     retval.description = json["description"];
     retval.display_type = json["displayType"];
+    if (!intp(json["downloadCount"])) error("Expected integer");
     retval.download_count = json["downloadCount"];
     retval.flags = json["flags"];
     retval.grants = json["grants"];
@@ -169,6 +172,7 @@ View View_from_JSON(mixed json) {
     if (json["hideFromDataJson"] != Standards.JSON.true && json["hideFromDataJson"] != Standards.JSON.false) error("Expected bool");
     retval.hide_from_data_json = json["hideFromDataJson"];
     retval.id = json["id"];
+    if (!intp(json["indexUpdatedAt"])) error("Expected integer");
     retval.index_updated_at = json["indexUpdatedAt"];
     retval.license = License_from_JSON(json["license"]);
     retval.license_id = json["licenseId"];
@@ -177,25 +181,34 @@ View View_from_JSON(mixed json) {
     retval.name = json["name"];
     if (json["newBackend"] != Standards.JSON.true && json["newBackend"] != Standards.JSON.false) error("Expected bool");
     retval.new_backend = json["newBackend"];
+    if (!intp(json["numberOfComments"])) error("Expected integer");
     retval.number_of_comments = json["numberOfComments"];
+    if (!intp(json["oid"])) error("Expected integer");
     retval.oid = json["oid"];
     retval.owner = Owner_from_JSON(json["owner"]);
     retval.provenance = json["provenance"];
     if (json["publicationAppendEnabled"] != Standards.JSON.true && json["publicationAppendEnabled"] != Standards.JSON.false) error("Expected bool");
     retval.publication_append_enabled = json["publicationAppendEnabled"];
+    if (!intp(json["publicationDate"])) error("Expected integer");
     retval.publication_date = json["publicationDate"];
+    if (!intp(json["publicationGroup"])) error("Expected integer");
     retval.publication_group = json["publicationGroup"];
     retval.publication_stage = json["publicationStage"];
     retval.query = Query_from_JSON(json["query"]);
     retval.rights = json["rights"];
     retval.row_class = json["rowClass"];
+    if (!intp(json["rowsUpdatedAt"])) error("Expected integer");
     retval.rows_updated_at = json["rowsUpdatedAt"];
     retval.rows_updated_by = json["rowsUpdatedBy"];
     retval.table_author = Owner_from_JSON(json["tableAuthor"]);
+    if (!intp(json["tableId"])) error("Expected integer");
     retval.table_id = json["tableId"];
     retval.tags = json["tags"];
+    if (!intp(json["totalTimesRated"])) error("Expected integer");
     retval.total_times_rated = json["totalTimesRated"];
+    if (!intp(json["viewCount"])) error("Expected integer");
     retval.view_count = json["viewCount"];
+    if (!intp(json["viewLastModified"])) error("Expected integer");
     retval.view_last_modified = json["viewLastModified"];
     retval.view_type = json["viewType"];
 
@@ -242,8 +255,10 @@ Column Column_from_JSON(mixed json) {
     retval.field_name = json["fieldName"];
     retval.flags = json["flags"];
     retval.format = Query_from_JSON(json["format"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.name = json["name"];
+    if (!intp(json["position"])) error("Expected integer");
     retval.position = json["position"];
     retval.render_type_name = json["renderTypeName"];
     retval.table_column_id = json["tableColumnId"];
@@ -281,7 +296,9 @@ CachedContents CachedContents_from_JSON(mixed json) {
 
     retval.average = json["average"];
     retval.largest = json["largest"];
+    if (!intp(json["non_null"])) error("Expected integer");
     retval.non_null = json["non_null"];
+    if (!intp(json["null"])) error("Expected integer");
     retval.null = json["null"];
     retval.smallest = json["smallest"];
     retval.sum = json["sum"];
@@ -307,6 +324,7 @@ class Top {
 Top Top_from_JSON(mixed json) {
     Top retval = Top();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.item = json["item"];
 
diff --git a/base/pike/test/inputs/json/misc/437e7.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/437e7.json/default/TopLevel.pmod
index cb233d5..2ad57b6 100644
--- a/base/pike/test/inputs/json/misc/437e7.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/437e7.json/default/TopLevel.pmod
@@ -94,6 +94,7 @@ Datum Datum_from_JSON(mixed json) {
     retval.id = json["id"];
     retval.images = Images_from_JSON(json["images"]);
     retval.import_datetime = json["import_datetime"];
+    if (!intp(json["is_indexable"])) error("Expected integer");
     retval.is_indexable = json["is_indexable"];
     retval.rating = Rating_from_JSON(json["rating"]);
     retval.slug = json["slug"];
@@ -392,6 +393,7 @@ Meta Meta_from_JSON(mixed json) {
 
     retval.msg = json["msg"];
     retval.response_id = json["response_id"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
 
     return retval;
@@ -416,8 +418,11 @@ class Pagination {
 Pagination Pagination_from_JSON(mixed json) {
     Pagination retval = Pagination();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
+    if (!intp(json["total_count"])) error("Expected integer");
     retval.total_count = json["total_count"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/43970.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/43970.json/default/TopLevel.pmod
index 1ed55b4..05b18f2 100644
--- a/base/pike/test/inputs/json/misc/43970.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/43970.json/default/TopLevel.pmod
@@ -37,6 +37,7 @@ class TopLevelElement {
 TopLevelElement TopLevelElement_from_JSON(mixed json) {
     TopLevelElement retval = TopLevelElement();
 
+    if (!intp(json["ID"])) error("Expected integer");
     retval.id = json["ID"];
     retval.name = json["Name"];
     retval.notes = json["Notes"];
diff --git a/base/pike/test/inputs/json/misc/458db.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/458db.json/default/TopLevel.pmod
index c81f15c..538c0c9 100644
--- a/base/pike/test/inputs/json/misc/458db.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/458db.json/default/TopLevel.pmod
@@ -79,6 +79,7 @@ ResponseInfo ResponseInfo_from_JSON(mixed json) {
     ResponseInfo retval = ResponseInfo();
 
     retval.developer_message = json["developerMessage"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
 
     return retval;
@@ -103,8 +104,11 @@ class Resultset {
 Resultset Resultset_from_JSON(mixed json) {
     Resultset retval = Resultset();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["page"])) error("Expected integer");
     retval.page = json["page"];
+    if (!intp(json["pagesize"])) error("Expected integer");
     retval.pagesize = json["pagesize"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/4961a.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/4961a.json/default/TopLevel.pmod
index d396953..a2c3877 100644
--- a/base/pike/test/inputs/json/misc/4961a.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/4961a.json/default/TopLevel.pmod
@@ -50,6 +50,7 @@ TotalPopulation TotalPopulation_from_JSON(mixed json) {
     TotalPopulation retval = TotalPopulation();
 
     retval.date = json["date"];
+    if (!intp(json["population"])) error("Expected integer");
     retval.population = json["population"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/4a0d7.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/4a0d7.json/default/TopLevel.pmod
index d396953..a2c3877 100644
--- a/base/pike/test/inputs/json/misc/4a0d7.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/4a0d7.json/default/TopLevel.pmod
@@ -50,6 +50,7 @@ TotalPopulation TotalPopulation_from_JSON(mixed json) {
     TotalPopulation retval = TotalPopulation();
 
     retval.date = json["date"];
+    if (!intp(json["population"])) error("Expected integer");
     retval.population = json["population"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/4a455.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/4a455.json/default/TopLevel.pmod
index 49f0d12..417aa75 100644
--- a/base/pike/test/inputs/json/misc/4a455.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/4a455.json/default/TopLevel.pmod
@@ -35,6 +35,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
 
     retval.crs = Crs_from_JSON(json["crs"]);
     retval.features = json["features"];
+    if (!intp(json["totalFeatures"])) error("Expected integer");
     retval.total_features = json["totalFeatures"];
     retval.type = json["type"];
 
diff --git a/base/pike/test/inputs/json/misc/4c547.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/4c547.json/default/TopLevel.pmod
index 501fedd..7cdfc67 100644
--- a/base/pike/test/inputs/json/misc/4c547.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/4c547.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ class Query {
 Query Query_from_JSON(mixed json) {
     Query retval = Query();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.created = json["created"];
     retval.lang = json["lang"];
diff --git a/base/pike/test/inputs/json/misc/4d6fb.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/4d6fb.json/default/TopLevel.pmod
index 24862d3..117c00e 100644
--- a/base/pike/test/inputs/json/misc/4d6fb.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/4d6fb.json/default/TopLevel.pmod
@@ -251,9 +251,11 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.created_utc = (float)json["created_utc"];
     retval.distinguished = json["distinguished"];
     retval.domain = json["domain"];
+    if (!intp(json["downs"])) error("Expected integer");
     retval.downs = json["downs"];
     if (json["edited"] != Standards.JSON.true && json["edited"] != Standards.JSON.false) error("Expected bool");
     retval.edited = json["edited"];
+    if (!intp(json["gilded"])) error("Expected integer");
     retval.gilded = json["gilded"];
     if (json["hidden"] != Standards.JSON.true && json["hidden"] != Standards.JSON.false) error("Expected bool");
     retval.hidden = json["hidden"];
@@ -274,6 +276,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.media_embed = MediaEmbed_from_JSON(json["media_embed"]);
     retval.mod_reports = json["mod_reports"];
     retval.name = json["name"];
+    if (!intp(json["num_comments"])) error("Expected integer");
     retval.num_comments = json["num_comments"];
     retval.num_reports = json["num_reports"];
     if (json["over_18"] != Standards.JSON.true && json["over_18"] != Standards.JSON.false) error("Expected bool");
@@ -287,6 +290,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.report_reasons = json["report_reasons"];
     if (json["saved"] != Standards.JSON.true && json["saved"] != Standards.JSON.false) error("Expected bool");
     retval.saved = json["saved"];
+    if (!intp(json["score"])) error("Expected integer");
     retval.score = json["score"];
     if (!has_index(json, "secure_media")) error("Missing required property");
     retval.secure_media = json["secure_media"] == Val.null ? Val.null : Media_from_JSON(json["secure_media"]);
@@ -303,11 +307,14 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.subreddit_type = SubredditType_from_JSON(json["subreddit_type"]);
     retval.suggested_sort = json["suggested_sort"];
     retval.thumbnail = json["thumbnail"];
+    if (!intp(json["thumbnail_height"])) error("Expected integer");
     if (!has_index(json, "thumbnail_height")) error("Missing required property");
     retval.thumbnail_height = json["thumbnail_height"];
+    if (!intp(json["thumbnail_width"])) error("Expected integer");
     if (!has_index(json, "thumbnail_width")) error("Missing required property");
     retval.thumbnail_width = json["thumbnail_width"];
     retval.title = json["title"];
+    if (!intp(json["ups"])) error("Expected integer");
     retval.ups = json["ups"];
     retval.url = json["url"];
     retval.user_reports = json["user_reports"];
@@ -382,16 +389,20 @@ Oembed Oembed_from_JSON(mixed json) {
 
     retval.author_name = json["author_name"];
     retval.author_url = json["author_url"];
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.html = json["html"];
     retval.provider_name = json["provider_name"];
     retval.provider_url = json["provider_url"];
+    if (!intp(json["thumbnail_height"])) error("Expected integer");
     retval.thumbnail_height = json["thumbnail_height"];
     retval.thumbnail_url = json["thumbnail_url"];
+    if (!intp(json["thumbnail_width"])) error("Expected integer");
     retval.thumbnail_width = json["thumbnail_width"];
     retval.title = json["title"];
     retval.type = json["type"];
     retval.version = json["version"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
@@ -507,8 +518,10 @@ class Source {
 Source Source_from_JSON(mixed json) {
     Source retval = Source();
 
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.url = json["url"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/4e336.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/4e336.json/default/TopLevel.pmod
index d396953..a2c3877 100644
--- a/base/pike/test/inputs/json/misc/4e336.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/4e336.json/default/TopLevel.pmod
@@ -50,6 +50,7 @@ TotalPopulation TotalPopulation_from_JSON(mixed json) {
     TotalPopulation retval = TotalPopulation();
 
     retval.date = json["date"];
+    if (!intp(json["population"])) error("Expected integer");
     retval.population = json["population"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/54d32.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/54d32.json/default/TopLevel.pmod
index 7c20778..230851e 100644
--- a/base/pike/test/inputs/json/misc/54d32.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/54d32.json/default/TopLevel.pmod
@@ -39,10 +39,13 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.facets = Facets_from_JSON(json["facets"]);
+    if (!intp(json["limit"])) error("Expected integer");
     retval.limit = json["limit"];
     retval.next = json["next"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
     if (json["previous"] != Standards.JSON.true && json["previous"] != Standards.JSON.false) error("Expected bool");
     retval.previous = json["previous"];
diff --git a/base/pike/test/inputs/json/misc/5eae5.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/5eae5.json/default/TopLevel.pmod
index 187a58a..4c4fa99 100644
--- a/base/pike/test/inputs/json/misc/5eae5.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/5eae5.json/default/TopLevel.pmod
@@ -40,6 +40,7 @@ TopLevelElement TopLevelElement_from_JSON(mixed json) {
     TopLevelElement retval = TopLevelElement();
 
     retval.date = json["Date"];
+    if (!intp(json["ID"])) error("Expected integer");
     retval.id = json["ID"];
     retval.sponsor = json["Sponsor"];
     retval.title = json["Title"];
diff --git a/base/pike/test/inputs/json/misc/5f7fe.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/5f7fe.json/default/TopLevel.pmod
index e5caf8c..7fdbc3b 100644
--- a/base/pike/test/inputs/json/misc/5f7fe.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/5f7fe.json/default/TopLevel.pmod
@@ -152,12 +152,15 @@ View View_from_JSON(mixed json) {
 
     retval.attribution = json["attribution"];
     retval.attribution_link = json["attributionLink"];
+    if (!intp(json["averageRating"])) error("Expected integer");
     retval.average_rating = json["averageRating"];
     retval.category = json["category"];
     retval.columns = json["columns"];
+    if (!intp(json["createdAt"])) error("Expected integer");
     retval.created_at = json["createdAt"];
     retval.description = json["description"];
     retval.display_type = json["displayType"];
+    if (!intp(json["downloadCount"])) error("Expected integer");
     retval.download_count = json["downloadCount"];
     retval.flags = json["flags"];
     retval.grants = json["grants"];
@@ -166,30 +169,40 @@ View View_from_JSON(mixed json) {
     if (json["hideFromDataJson"] != Standards.JSON.true && json["hideFromDataJson"] != Standards.JSON.false) error("Expected bool");
     retval.hide_from_data_json = json["hideFromDataJson"];
     retval.id = json["id"];
+    if (!intp(json["indexUpdatedAt"])) error("Expected integer");
     retval.index_updated_at = json["indexUpdatedAt"];
     retval.locale = json["locale"];
     retval.metadata = Metadata_from_JSON(json["metadata"]);
     retval.name = json["name"];
     if (json["newBackend"] != Standards.JSON.true && json["newBackend"] != Standards.JSON.false) error("Expected bool");
     retval.new_backend = json["newBackend"];
+    if (!intp(json["numberOfComments"])) error("Expected integer");
     retval.number_of_comments = json["numberOfComments"];
+    if (!intp(json["oid"])) error("Expected integer");
     retval.oid = json["oid"];
     retval.owner = Owner_from_JSON(json["owner"]);
     retval.provenance = json["provenance"];
     if (json["publicationAppendEnabled"] != Standards.JSON.true && json["publicationAppendEnabled"] != Standards.JSON.false) error("Expected bool");
     retval.publication_append_enabled = json["publicationAppendEnabled"];
+    if (!intp(json["publicationDate"])) error("Expected integer");
     retval.publication_date = json["publicationDate"];
+    if (!intp(json["publicationGroup"])) error("Expected integer");
     retval.publication_group = json["publicationGroup"];
     retval.publication_stage = json["publicationStage"];
     retval.query = Query_from_JSON(json["query"]);
     retval.rights = json["rights"];
+    if (!intp(json["rowsUpdatedAt"])) error("Expected integer");
     retval.rows_updated_at = json["rowsUpdatedAt"];
     retval.rows_updated_by = json["rowsUpdatedBy"];
     retval.table_author = Owner_from_JSON(json["tableAuthor"]);
+    if (!intp(json["tableId"])) error("Expected integer");
     retval.table_id = json["tableId"];
     retval.tags = json["tags"];
+    if (!intp(json["totalTimesRated"])) error("Expected integer");
     retval.total_times_rated = json["totalTimesRated"];
+    if (!intp(json["viewCount"])) error("Expected integer");
     retval.view_count = json["viewCount"];
+    if (!intp(json["viewLastModified"])) error("Expected integer");
     retval.view_last_modified = json["viewLastModified"];
     retval.view_type = json["viewType"];
 
@@ -236,8 +249,10 @@ Column Column_from_JSON(mixed json) {
     retval.field_name = json["fieldName"];
     retval.flags = json["flags"];
     retval.format = Format_from_JSON(json["format"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.name = json["name"];
+    if (!intp(json["position"])) error("Expected integer");
     retval.position = json["position"];
     retval.render_type_name = TypeName_from_JSON(json["renderTypeName"]);
     retval.table_column_id = json["tableColumnId"];
@@ -270,7 +285,9 @@ CachedContents CachedContents_from_JSON(mixed json) {
     CachedContents retval = CachedContents();
 
     retval.largest = json["largest"];
+    if (!intp(json["non_null"])) error("Expected integer");
     retval.non_null = json["non_null"];
+    if (!intp(json["null"])) error("Expected integer");
     retval.null = json["null"];
     retval.smallest = json["smallest"];
     retval.top = json["top"];
@@ -295,6 +312,7 @@ class Top {
 Top Top_from_JSON(mixed json) {
     Top retval = Top();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.item = json["item"];
 
@@ -777,6 +795,7 @@ class Expression {
 Expression Expression_from_JSON(mixed json) {
     Expression retval = Expression();
 
+    if (!intp(json["columnId"])) error("Expected integer");
     retval.column_id = json["columnId"];
     retval.type = json["type"];
 
diff --git a/base/pike/test/inputs/json/misc/617e8.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/617e8.json/default/TopLevel.pmod
index a78ad41..c38e247 100644
--- a/base/pike/test/inputs/json/misc/617e8.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/617e8.json/default/TopLevel.pmod
@@ -152,12 +152,15 @@ View View_from_JSON(mixed json) {
 
     retval.attribution = json["attribution"];
     retval.attribution_link = json["attributionLink"];
+    if (!intp(json["averageRating"])) error("Expected integer");
     retval.average_rating = json["averageRating"];
     retval.category = json["category"];
     retval.columns = json["columns"];
+    if (!intp(json["createdAt"])) error("Expected integer");
     retval.created_at = json["createdAt"];
     retval.description = json["description"];
     retval.display_type = json["displayType"];
+    if (!intp(json["downloadCount"])) error("Expected integer");
     retval.download_count = json["downloadCount"];
     retval.flags = json["flags"];
     retval.grants = json["grants"];
@@ -166,30 +169,40 @@ View View_from_JSON(mixed json) {
     if (json["hideFromDataJson"] != Standards.JSON.true && json["hideFromDataJson"] != Standards.JSON.false) error("Expected bool");
     retval.hide_from_data_json = json["hideFromDataJson"];
     retval.id = json["id"];
+    if (!intp(json["indexUpdatedAt"])) error("Expected integer");
     retval.index_updated_at = json["indexUpdatedAt"];
     retval.locale = json["locale"];
     retval.metadata = Metadata_from_JSON(json["metadata"]);
     retval.name = json["name"];
     if (json["newBackend"] != Standards.JSON.true && json["newBackend"] != Standards.JSON.false) error("Expected bool");
     retval.new_backend = json["newBackend"];
+    if (!intp(json["numberOfComments"])) error("Expected integer");
     retval.number_of_comments = json["numberOfComments"];
+    if (!intp(json["oid"])) error("Expected integer");
     retval.oid = json["oid"];
     retval.owner = Owner_from_JSON(json["owner"]);
     retval.provenance = json["provenance"];
     if (json["publicationAppendEnabled"] != Standards.JSON.true && json["publicationAppendEnabled"] != Standards.JSON.false) error("Expected bool");
     retval.publication_append_enabled = json["publicationAppendEnabled"];
+    if (!intp(json["publicationDate"])) error("Expected integer");
     retval.publication_date = json["publicationDate"];
+    if (!intp(json["publicationGroup"])) error("Expected integer");
     retval.publication_group = json["publicationGroup"];
     retval.publication_stage = json["publicationStage"];
     retval.query = Query_from_JSON(json["query"]);
     retval.rights = json["rights"];
+    if (!intp(json["rowsUpdatedAt"])) error("Expected integer");
     retval.rows_updated_at = json["rowsUpdatedAt"];
     retval.rows_updated_by = json["rowsUpdatedBy"];
     retval.table_author = Owner_from_JSON(json["tableAuthor"]);
+    if (!intp(json["tableId"])) error("Expected integer");
     retval.table_id = json["tableId"];
     retval.tags = json["tags"];
+    if (!intp(json["totalTimesRated"])) error("Expected integer");
     retval.total_times_rated = json["totalTimesRated"];
+    if (!intp(json["viewCount"])) error("Expected integer");
     retval.view_count = json["viewCount"];
+    if (!intp(json["viewLastModified"])) error("Expected integer");
     retval.view_last_modified = json["viewLastModified"];
     retval.view_type = json["viewType"];
 
@@ -239,8 +252,10 @@ Column Column_from_JSON(mixed json) {
     retval.field_name = json["fieldName"];
     retval.flags = json["flags"];
     retval.format = Format_from_JSON(json["format"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.name = json["name"];
+    if (!intp(json["position"])) error("Expected integer");
     retval.position = json["position"];
     retval.render_type_name = TypeName_from_JSON(json["renderTypeName"]);
     retval.table_column_id = json["tableColumnId"];
@@ -273,7 +288,9 @@ CachedContents CachedContents_from_JSON(mixed json) {
     CachedContents retval = CachedContents();
 
     retval.largest = json["largest"];
+    if (!intp(json["non_null"])) error("Expected integer");
     retval.non_null = json["non_null"];
+    if (!intp(json["null"])) error("Expected integer");
     retval.null = json["null"];
     retval.smallest = json["smallest"];
     retval.top = json["top"];
@@ -298,6 +315,7 @@ class Top {
 Top Top_from_JSON(mixed json) {
     Top retval = Top();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.item = json["item"];
 
@@ -774,6 +792,7 @@ class Expression {
 Expression Expression_from_JSON(mixed json) {
     Expression retval = Expression();
 
+    if (!intp(json["columnId"])) error("Expected integer");
     retval.column_id = json["columnId"];
     retval.type = json["type"];
 
diff --git a/base/pike/test/inputs/json/misc/65dec.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/65dec.json/default/TopLevel.pmod
index 05a9bc8..14459c5 100644
--- a/base/pike/test/inputs/json/misc/65dec.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/65dec.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.code = json["code"];
     retval.gatherer_code = json["gathererCode"];
     retval.magic_cards_info_code = json["magicCardsInfoCode"];
+    if (!intp(json["mkm_id"])) error("Expected integer");
     retval.mkm_id = json["mkm_id"];
     retval.mkm_name = json["mkm_name"];
     retval.name = json["name"];
@@ -132,6 +133,7 @@ Card Card_from_JSON(mixed json) {
     Card retval = Card();
 
     retval.artist = json["artist"];
+    if (!intp(json["cmc"])) error("Expected integer");
     retval.cmc = json["cmc"];
     retval.color_identity = json["colorIdentity"];
     retval.colors = json["colors"];
@@ -142,6 +144,7 @@ Card Card_from_JSON(mixed json) {
     retval.legalities = json["legalities"];
     retval.mana_cost = json["manaCost"];
     retval.mci_number = json["mciNumber"];
+    if (!intp(json["multiverseid"])) error("Expected integer");
     retval.multiverseid = json["multiverseid"];
     retval.name = json["name"];
     retval.original_text = json["originalText"];
diff --git a/base/pike/test/inputs/json/misc/6617c.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/6617c.json/default/TopLevel.pmod
index e18d1dc..15b0503 100644
--- a/base/pike/test/inputs/json/misc/6617c.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/6617c.json/default/TopLevel.pmod
@@ -33,6 +33,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
 
     retval.iss_position = IssPosition_from_JSON(json["iss_position"]);
     retval.message = json["message"];
+    if (!intp(json["timestamp"])) error("Expected integer");
     retval.timestamp = json["timestamp"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/67c03.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/67c03.json/default/TopLevel.pmod
index de4357b..947734f 100644
--- a/base/pike/test/inputs/json/misc/67c03.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/67c03.json/default/TopLevel.pmod
@@ -32,6 +32,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
     retval.message = json["message"];
+    if (!intp(json["number"])) error("Expected integer");
     retval.number = json["number"];
     retval.people = json["people"];
 
diff --git a/base/pike/test/inputs/json/misc/68c30.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/68c30.json/default/TopLevel.pmod
index 1729829..dc9f7f0 100644
--- a/base/pike/test/inputs/json/misc/68c30.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/68c30.json/default/TopLevel.pmod
@@ -73,14 +73,21 @@ Tx Tx_from_JSON(mixed json) {
     retval.double_spend = json["double_spend"];
     retval.hash = json["hash"];
     retval.inputs = json["inputs"];
+    if (!intp(json["lock_time"])) error("Expected integer");
     retval.lock_time = json["lock_time"];
     retval.out = json["out"];
     retval.relayed_by = json["relayed_by"];
+    if (!intp(json["size"])) error("Expected integer");
     retval.size = json["size"];
+    if (!intp(json["time"])) error("Expected integer");
     retval.time = json["time"];
+    if (!intp(json["tx_index"])) error("Expected integer");
     retval.tx_index = json["tx_index"];
+    if (!intp(json["ver"])) error("Expected integer");
     retval.ver = json["ver"];
+    if (!intp(json["vin_sz"])) error("Expected integer");
     retval.vin_sz = json["vin_sz"];
+    if (!intp(json["vout_sz"])) error("Expected integer");
     retval.vout_sz = json["vout_sz"];
 
     return retval;
@@ -107,6 +114,7 @@ Input Input_from_JSON(mixed json) {
 
     retval.prev_out = Out_from_JSON(json["prev_out"]);
     retval.script = json["script"];
+    if (!intp(json["sequence"])) error("Expected integer");
     retval.sequence = json["sequence"];
 
     return retval;
@@ -140,12 +148,16 @@ Out Out_from_JSON(mixed json) {
     Out retval = Out();
 
     retval.addr = json["addr"];
+    if (!intp(json["n"])) error("Expected integer");
     retval.n = json["n"];
     retval.script = json["script"];
     if (json["spent"] != Standards.JSON.true && json["spent"] != Standards.JSON.false) error("Expected bool");
     retval.spent = json["spent"];
+    if (!intp(json["tx_index"])) error("Expected integer");
     retval.tx_index = json["tx_index"];
+    if (!intp(json["type"])) error("Expected integer");
     retval.type = json["type"];
+    if (!intp(json["value"])) error("Expected integer");
     retval.value = json["value"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/6c155.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/6c155.json/default/TopLevel.pmod
index cd7dc1b..a24f958 100644
--- a/base/pike/test/inputs/json/misc/6c155.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/6c155.json/default/TopLevel.pmod
@@ -79,6 +79,7 @@ ResponseInfo ResponseInfo_from_JSON(mixed json) {
     ResponseInfo retval = ResponseInfo();
 
     retval.developer_message = json["developerMessage"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
 
     return retval;
@@ -103,8 +104,11 @@ class Resultset {
 Resultset Resultset_from_JSON(mixed json) {
     Resultset retval = Resultset();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["page"])) error("Expected integer");
     retval.page = json["page"];
+    if (!intp(json["pagesize"])) error("Expected integer");
     retval.pagesize = json["pagesize"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/6de06.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/6de06.json/default/TopLevel.pmod
index a09ae1f..ef9b853 100644
--- a/base/pike/test/inputs/json/misc/6de06.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/6de06.json/default/TopLevel.pmod
@@ -253,9 +253,11 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.created_utc = (float)json["created_utc"];
     retval.distinguished = json["distinguished"];
     retval.domain = json["domain"];
+    if (!intp(json["downs"])) error("Expected integer");
     retval.downs = json["downs"];
     if (json["edited"] != Standards.JSON.true && json["edited"] != Standards.JSON.false) error("Expected bool");
     retval.edited = json["edited"];
+    if (!intp(json["gilded"])) error("Expected integer");
     retval.gilded = json["gilded"];
     if (json["hidden"] != Standards.JSON.true && json["hidden"] != Standards.JSON.false) error("Expected bool");
     retval.hidden = json["hidden"];
@@ -278,6 +280,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.media_embed = MediaEmbed_from_JSON(json["media_embed"]);
     retval.mod_reports = json["mod_reports"];
     retval.name = json["name"];
+    if (!intp(json["num_comments"])) error("Expected integer");
     retval.num_comments = json["num_comments"];
     retval.num_reports = json["num_reports"];
     if (json["over_18"] != Standards.JSON.true && json["over_18"] != Standards.JSON.false) error("Expected bool");
@@ -291,6 +294,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.report_reasons = json["report_reasons"];
     if (json["saved"] != Standards.JSON.true && json["saved"] != Standards.JSON.false) error("Expected bool");
     retval.saved = json["saved"];
+    if (!intp(json["score"])) error("Expected integer");
     retval.score = json["score"];
     if (!has_index(json, "secure_media")) error("Missing required property");
     retval.secure_media = json["secure_media"] == Val.null ? Val.null : Media_from_JSON(json["secure_media"]);
@@ -309,11 +313,14 @@ ChildData ChildData_from_JSON(mixed json) {
     if (!has_index(json, "suggested_sort")) error("Missing required property");
     retval.suggested_sort = json["suggested_sort"];
     retval.thumbnail = json["thumbnail"];
+    if (!intp(json["thumbnail_height"])) error("Expected integer");
     if (!has_index(json, "thumbnail_height")) error("Missing required property");
     retval.thumbnail_height = json["thumbnail_height"];
+    if (!intp(json["thumbnail_width"])) error("Expected integer");
     if (!has_index(json, "thumbnail_width")) error("Missing required property");
     retval.thumbnail_width = json["thumbnail_width"];
     retval.title = json["title"];
+    if (!intp(json["ups"])) error("Expected integer");
     retval.ups = json["ups"];
     retval.url = json["url"];
     retval.user_reports = json["user_reports"];
@@ -385,16 +392,20 @@ Oembed Oembed_from_JSON(mixed json) {
     Oembed retval = Oembed();
 
     retval.description = json["description"];
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.html = json["html"];
     retval.provider_name = json["provider_name"];
     retval.provider_url = json["provider_url"];
+    if (!intp(json["thumbnail_height"])) error("Expected integer");
     retval.thumbnail_height = json["thumbnail_height"];
     retval.thumbnail_url = json["thumbnail_url"];
+    if (!intp(json["thumbnail_width"])) error("Expected integer");
     retval.thumbnail_width = json["thumbnail_width"];
     retval.title = json["title"];
     retval.type = json["type"];
     retval.version = json["version"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
@@ -511,8 +522,10 @@ class Source {
 Source Source_from_JSON(mixed json) {
     Source retval = Source();
 
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.url = json["url"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/6dec6.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/6dec6.json/default/TopLevel.pmod
index 3f674d7..a8bcd2d 100644
--- a/base/pike/test/inputs/json/misc/6dec6.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/6dec6.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ class Query {
 Query Query_from_JSON(mixed json) {
     Query retval = Query();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.created = json["created"];
     retval.lang = json["lang"];
diff --git a/base/pike/test/inputs/json/misc/6eb00.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/6eb00.json/default/TopLevel.pmod
index 3158a43..c40fdda 100644
--- a/base/pike/test/inputs/json/misc/6eb00.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/6eb00.json/default/TopLevel.pmod
@@ -37,7 +37,9 @@ class TopLevelElement {
 TopLevelElement TopLevelElement_from_JSON(mixed json) {
     TopLevelElement retval = TopLevelElement();
 
+    if (!intp(json["DirectorateID"])) error("Expected integer");
     retval.directorate_id = json["DirectorateID"];
+    if (!intp(json["Id"])) error("Expected integer");
     retval.id = json["Id"];
     retval.name = json["Name"];
 
diff --git a/base/pike/test/inputs/json/misc/734ad.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/734ad.json/default/TopLevel.pmod
index 35aa4d3..f573648 100644
--- a/base/pike/test/inputs/json/misc/734ad.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/734ad.json/default/TopLevel.pmod
@@ -39,10 +39,13 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.facets = Facets_from_JSON(json["facets"]);
+    if (!intp(json["limit"])) error("Expected integer");
     retval.limit = json["limit"];
     retval.next = json["next"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
     if (json["previous"] != Standards.JSON.true && json["previous"] != Standards.JSON.false) error("Expected bool");
     retval.previous = json["previous"];
@@ -216,6 +219,7 @@ Result Result_from_JSON(mixed json) {
     retval.be_office_street = json["be_office_street"];
     retval.be_office_town = json["be_office_town"];
     retval.code_of_conduct = json["code_of_conduct"];
+    if (!intp(json["contact_country"])) error("Expected integer");
     retval.contact_country = json["contact_country"];
     retval.created_at = json["created_at"];
     retval.entity = json["entity"];
@@ -239,15 +243,21 @@ Result Result_from_JSON(mixed json) {
     retval.last_update_date = json["last_update_date"];
     retval.legal = json["legal"];
     retval.legal_status = json["legal_status"];
+    if (!intp(json["main_category"])) error("Expected integer");
     retval.main_category = json["main_category"];
     retval.main_category_title = json["main_category_title"];
+    if (!intp(json["members"])) error("Expected integer");
     retval.members = json["members"];
+    if (!intp(json["members_100"])) error("Expected integer");
     if (!has_index(json, "members_100")) error("Missing required property");
     retval.members_100 = json["members_100"];
+    if (!intp(json["members_25"])) error("Expected integer");
     if (!has_index(json, "members_25")) error("Missing required property");
     retval.members_25 = json["members_25"];
+    if (!intp(json["members_50"])) error("Expected integer");
     if (!has_index(json, "members_50")) error("Missing required property");
     retval.members_50 = json["members_50"];
+    if (!intp(json["members_75"])) error("Expected integer");
     if (!has_index(json, "members_75")) error("Missing required property");
     retval.members_75 = json["members_75"];
     retval.members_fte = (float)json["members_fte"];
@@ -255,6 +265,7 @@ Result Result_from_JSON(mixed json) {
     retval.native_name = json["native_name"];
     if (!has_index(json, "networking")) error("Missing required property");
     retval.networking = json["networking"];
+    if (!intp(json["number_of_natural_persons"])) error("Expected integer");
     if (!has_index(json, "number_of_natural_persons")) error("Missing required property");
     retval.number_of_natural_persons = json["number_of_natural_persons"];
     if (!has_index(json, "other_code_of_conduct")) error("Missing required property");
@@ -262,6 +273,7 @@ Result Result_from_JSON(mixed json) {
     retval.registration_date = json["registration_date"];
     retval.status = Status_from_JSON(json["status"]);
     retval.structure_members = json["structure_members"];
+    if (!intp(json["sub_category"])) error("Expected integer");
     retval.sub_category = json["sub_category"];
     retval.sub_category_title = json["sub_category_title"];
     retval.updated_at = json["updated_at"];
diff --git a/base/pike/test/inputs/json/misc/7681c.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/7681c.json/default/TopLevel.pmod
index fee0f25..e6ad06c 100644
--- a/base/pike/test/inputs/json/misc/7681c.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/7681c.json/default/TopLevel.pmod
@@ -94,6 +94,7 @@ Datum Datum_from_JSON(mixed json) {
     retval.id = json["id"];
     retval.images = Images_from_JSON(json["images"]);
     retval.import_datetime = json["import_datetime"];
+    if (!intp(json["is_indexable"])) error("Expected integer");
     retval.is_indexable = json["is_indexable"];
     retval.rating = Rating_from_JSON(json["rating"]);
     retval.slug = json["slug"];
@@ -408,6 +409,7 @@ Meta Meta_from_JSON(mixed json) {
 
     retval.msg = json["msg"];
     retval.response_id = json["response_id"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
 
     return retval;
@@ -432,8 +434,11 @@ class Pagination {
 Pagination Pagination_from_JSON(mixed json) {
     Pagination retval = Pagination();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
+    if (!intp(json["total_count"])) error("Expected integer");
     retval.total_count = json["total_count"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/7df41.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/7df41.json/default/TopLevel.pmod
index 469bf8f..acc4418 100644
--- a/base/pike/test/inputs/json/misc/7df41.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/7df41.json/default/TopLevel.pmod
@@ -63,8 +63,10 @@ class Pc {
 Pc Pc_from_JSON(mixed json) {
     Pc retval = Pc();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.label = json["label"];
+    if (!intp(json["peak24"])) error("Expected integer");
     retval.peak24 = json["peak24"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/7dfa6.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/7dfa6.json/default/TopLevel.pmod
index d396953..a2c3877 100644
--- a/base/pike/test/inputs/json/misc/7dfa6.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/7dfa6.json/default/TopLevel.pmod
@@ -50,6 +50,7 @@ TotalPopulation TotalPopulation_from_JSON(mixed json) {
     TotalPopulation retval = TotalPopulation();
 
     retval.date = json["date"];
+    if (!intp(json["population"])) error("Expected integer");
     retval.population = json["population"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/7eb30.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/7eb30.json/default/TopLevel.pmod
index b402100..5f5df51 100644
--- a/base/pike/test/inputs/json/misc/7eb30.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/7eb30.json/default/TopLevel.pmod
@@ -33,6 +33,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.next = json["next"];
     retval.previous = json["previous"];
@@ -88,12 +89,16 @@ Result Result_from_JSON(mixed json) {
     retval.fav = json["fav"];
     retval.group = Group_from_JSON(json["group"]);
     retval.location = Location_from_JSON(json["location"]);
+    if (!intp(json["min_screens"])) error("Expected integer");
     retval.min_screens = json["min_screens"];
+    if (!intp(json["num_views"])) error("Expected integer");
     retval.num_views = json["num_views"];
     retval.showtimes = json["showtimes"];
+    if (!intp(json["stars"])) error("Expected integer");
     retval.stars = json["stars"];
     retval.tel = Tel_from_JSON(json["tel"]);
     retval.thai = json["thai"];
+    if (!intp(json["today_screens"])) error("Expected integer");
     retval.today_screens = json["today_screens"];
     retval.url = json["url"];
     retval.website = json["website"];
diff --git a/base/pike/test/inputs/json/misc/7f568.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/7f568.json/default/TopLevel.pmod
index 97c733e..5d428d2 100644
--- a/base/pike/test/inputs/json/misc/7f568.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/7f568.json/default/TopLevel.pmod
@@ -63,6 +63,7 @@ class TopLevelElement {
 TopLevelElement TopLevelElement_from_JSON(mixed json) {
     TopLevelElement retval = TopLevelElement();
 
+    if (!intp(json["comments"])) error("Expected integer");
     retval.comments = json["comments"];
     retval.comments_url = json["comments_url"];
     retval.commits_url = json["commits_url"];
@@ -113,6 +114,7 @@ File File_from_JSON(mixed json) {
     if (!has_index(json, "language")) error("Missing required property");
     retval.language = Language_from_JSON(json["language"]);
     retval.raw_url = json["raw_url"];
+    if (!intp(json["size"])) error("Expected integer");
     retval.size = json["size"];
     retval.type = Type_from_JSON(json["type"]);
 
diff --git a/base/pike/test/inputs/json/misc/7fbfb.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/7fbfb.json/default/TopLevel.pmod
index 0c5343d..c6aaa6c 100644
--- a/base/pike/test/inputs/json/misc/7fbfb.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/7fbfb.json/default/TopLevel.pmod
@@ -118,9 +118,12 @@ class FluffyTopLevel {
 FluffyTopLevel FluffyTopLevel_from_JSON(mixed json) {
     FluffyTopLevel retval = FluffyTopLevel();
 
+    if (!intp(json["page"])) error("Expected integer");
     retval.page = json["page"];
+    if (!intp(json["pages"])) error("Expected integer");
     retval.pages = json["pages"];
     retval.per_page = json["per_page"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/80aff.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/80aff.json/default/TopLevel.pmod
index 0a7018a..8a4f394 100644
--- a/base/pike/test/inputs/json/misc/80aff.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/80aff.json/default/TopLevel.pmod
@@ -39,11 +39,14 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.facets = Facets_from_JSON(json["facets"]);
+    if (!intp(json["limit"])) error("Expected integer");
     retval.limit = json["limit"];
     if (json["next"] != Standards.JSON.true && json["next"] != Standards.JSON.false) error("Expected bool");
     retval.next = json["next"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
     if (json["previous"] != Standards.JSON.true && json["previous"] != Standards.JSON.false) error("Expected bool");
     retval.previous = json["previous"];
@@ -96,9 +99,12 @@ Result Result_from_JSON(mixed json) {
     Result retval = Result();
 
     retval.created_at = json["created_at"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["items"])) error("Expected integer");
     retval.items = json["items"];
     retval.name = json["name"];
+    if (!intp(json["parent"])) error("Expected integer");
     if (!has_index(json, "parent")) error("Missing required property");
     retval.parent = json["parent"];
     retval.updated_at = json["updated_at"];
diff --git a/base/pike/test/inputs/json/misc/8592b.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/8592b.json/default/TopLevel.pmod
index 40b0bfc..85e7feb 100644
--- a/base/pike/test/inputs/json/misc/8592b.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/8592b.json/default/TopLevel.pmod
@@ -253,9 +253,11 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.created_utc = (float)json["created_utc"];
     retval.distinguished = json["distinguished"];
     retval.domain = json["domain"];
+    if (!intp(json["downs"])) error("Expected integer");
     retval.downs = json["downs"];
     if (json["edited"] != Standards.JSON.true && json["edited"] != Standards.JSON.false) error("Expected bool");
     retval.edited = json["edited"];
+    if (!intp(json["gilded"])) error("Expected integer");
     retval.gilded = json["gilded"];
     if (json["hidden"] != Standards.JSON.true && json["hidden"] != Standards.JSON.false) error("Expected bool");
     retval.hidden = json["hidden"];
@@ -275,6 +277,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.media_embed = MediaEmbed_from_JSON(json["media_embed"]);
     retval.mod_reports = json["mod_reports"];
     retval.name = json["name"];
+    if (!intp(json["num_comments"])) error("Expected integer");
     retval.num_comments = json["num_comments"];
     retval.num_reports = json["num_reports"];
     if (json["over_18"] != Standards.JSON.true && json["over_18"] != Standards.JSON.false) error("Expected bool");
@@ -288,6 +291,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.report_reasons = json["report_reasons"];
     if (json["saved"] != Standards.JSON.true && json["saved"] != Standards.JSON.false) error("Expected bool");
     retval.saved = json["saved"];
+    if (!intp(json["score"])) error("Expected integer");
     retval.score = json["score"];
     retval.secure_media = json["secure_media"];
     retval.secure_media_embed = MediaEmbed_from_JSON(json["secure_media_embed"]);
@@ -304,11 +308,14 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.subreddit_type = SubredditType_from_JSON(json["subreddit_type"]);
     retval.suggested_sort = SuggestedSort_from_JSON(json["suggested_sort"]);
     retval.thumbnail = json["thumbnail"];
+    if (!intp(json["thumbnail_height"])) error("Expected integer");
     if (!has_index(json, "thumbnail_height")) error("Missing required property");
     retval.thumbnail_height = json["thumbnail_height"];
+    if (!intp(json["thumbnail_width"])) error("Expected integer");
     if (!has_index(json, "thumbnail_width")) error("Missing required property");
     retval.thumbnail_width = json["thumbnail_width"];
     retval.title = json["title"];
+    if (!intp(json["ups"])) error("Expected integer");
     retval.ups = json["ups"];
     retval.url = json["url"];
     retval.user_reports = json["user_reports"];
@@ -415,8 +422,10 @@ class Source {
 Source Source_from_JSON(mixed json) {
     Source retval = Source();
 
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.url = json["url"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/88130.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/88130.json/default/TopLevel.pmod
index 501fedd..7cdfc67 100644
--- a/base/pike/test/inputs/json/misc/88130.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/88130.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ class Query {
 Query Query_from_JSON(mixed json) {
     Query retval = Query();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.created = json["created"];
     retval.lang = json["lang"];
diff --git a/base/pike/test/inputs/json/misc/8a62c.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/8a62c.json/default/TopLevel.pmod
index d396953..a2c3877 100644
--- a/base/pike/test/inputs/json/misc/8a62c.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/8a62c.json/default/TopLevel.pmod
@@ -50,6 +50,7 @@ TotalPopulation TotalPopulation_from_JSON(mixed json) {
     TotalPopulation retval = TotalPopulation();
 
     retval.date = json["date"];
+    if (!intp(json["population"])) error("Expected integer");
     retval.population = json["population"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/9929c.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/9929c.json/default/TopLevel.pmod
index 501fedd..7cdfc67 100644
--- a/base/pike/test/inputs/json/misc/9929c.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/9929c.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ class Query {
 Query Query_from_JSON(mixed json) {
     Query retval = Query();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.created = json["created"];
     retval.lang = json["lang"];
diff --git a/base/pike/test/inputs/json/misc/9ac3b.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/9ac3b.json/default/TopLevel.pmod
index d65651a..fad533c 100644
--- a/base/pike/test/inputs/json/misc/9ac3b.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/9ac3b.json/default/TopLevel.pmod
@@ -39,10 +39,13 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.facets = Facets_from_JSON(json["facets"]);
+    if (!intp(json["limit"])) error("Expected integer");
     retval.limit = json["limit"];
     retval.next = json["next"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
     if (json["previous"] != Standards.JSON.true && json["previous"] != Standards.JSON.false) error("Expected bool");
     retval.previous = json["previous"];
diff --git a/base/pike/test/inputs/json/misc/a0496.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/a0496.json/default/TopLevel.pmod
index 041d617..476971b 100644
--- a/base/pike/test/inputs/json/misc/a0496.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/a0496.json/default/TopLevel.pmod
@@ -67,6 +67,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.errors = Errors_from_JSON(json["errors"]);
     retval.frequency = json["frequency"];
     retval.from_date = json["from_date"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.name = json["name"];
     if (json["premium"] != Standards.JSON.true && json["premium"] != Standards.JSON.false) error("Expected bool");
diff --git a/base/pike/test/inputs/json/misc/a1eca.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/a1eca.json/default/TopLevel.pmod
index 501fedd..7cdfc67 100644
--- a/base/pike/test/inputs/json/misc/a1eca.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/a1eca.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ class Query {
 Query Query_from_JSON(mixed json) {
     Query retval = Query();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.created = json["created"];
     retval.lang = json["lang"];
diff --git a/base/pike/test/inputs/json/misc/a3d8c.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/a3d8c.json/default/TopLevel.pmod
index 75fbbce..5b51913 100644
--- a/base/pike/test/inputs/json/misc/a3d8c.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/a3d8c.json/default/TopLevel.pmod
@@ -148,11 +148,14 @@ class View {
 View View_from_JSON(mixed json) {
     View retval = View();
 
+    if (!intp(json["averageRating"])) error("Expected integer");
     retval.average_rating = json["averageRating"];
     retval.category = json["category"];
     retval.columns = json["columns"];
+    if (!intp(json["createdAt"])) error("Expected integer");
     retval.created_at = json["createdAt"];
     retval.display_type = json["displayType"];
+    if (!intp(json["downloadCount"])) error("Expected integer");
     retval.download_count = json["downloadCount"];
     retval.flags = json["flags"];
     retval.grants = json["grants"];
@@ -161,6 +164,7 @@ View View_from_JSON(mixed json) {
     if (json["hideFromDataJson"] != Standards.JSON.true && json["hideFromDataJson"] != Standards.JSON.false) error("Expected bool");
     retval.hide_from_data_json = json["hideFromDataJson"];
     retval.id = json["id"];
+    if (!intp(json["indexUpdatedAt"])) error("Expected integer");
     retval.index_updated_at = json["indexUpdatedAt"];
     retval.license = License_from_JSON(json["license"]);
     retval.license_id = json["licenseId"];
@@ -169,24 +173,33 @@ View View_from_JSON(mixed json) {
     retval.name = json["name"];
     if (json["newBackend"] != Standards.JSON.true && json["newBackend"] != Standards.JSON.false) error("Expected bool");
     retval.new_backend = json["newBackend"];
+    if (!intp(json["numberOfComments"])) error("Expected integer");
     retval.number_of_comments = json["numberOfComments"];
+    if (!intp(json["oid"])) error("Expected integer");
     retval.oid = json["oid"];
     retval.owner = Owner_from_JSON(json["owner"]);
     retval.provenance = json["provenance"];
     if (json["publicationAppendEnabled"] != Standards.JSON.true && json["publicationAppendEnabled"] != Standards.JSON.false) error("Expected bool");
     retval.publication_append_enabled = json["publicationAppendEnabled"];
+    if (!intp(json["publicationDate"])) error("Expected integer");
     retval.publication_date = json["publicationDate"];
+    if (!intp(json["publicationGroup"])) error("Expected integer");
     retval.publication_group = json["publicationGroup"];
     retval.publication_stage = json["publicationStage"];
     retval.query = Query_from_JSON(json["query"]);
     retval.rights = json["rights"];
     retval.row_class = json["rowClass"];
+    if (!intp(json["rowsUpdatedAt"])) error("Expected integer");
     retval.rows_updated_at = json["rowsUpdatedAt"];
     retval.rows_updated_by = json["rowsUpdatedBy"];
     retval.table_author = Owner_from_JSON(json["tableAuthor"]);
+    if (!intp(json["tableId"])) error("Expected integer");
     retval.table_id = json["tableId"];
+    if (!intp(json["totalTimesRated"])) error("Expected integer");
     retval.total_times_rated = json["totalTimesRated"];
+    if (!intp(json["viewCount"])) error("Expected integer");
     retval.view_count = json["viewCount"];
+    if (!intp(json["viewLastModified"])) error("Expected integer");
     retval.view_last_modified = json["viewLastModified"];
     retval.view_type = json["viewType"];
 
@@ -233,8 +246,10 @@ Column Column_from_JSON(mixed json) {
     retval.field_name = json["fieldName"];
     retval.flags = json["flags"];
     retval.format = Query_from_JSON(json["format"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.name = json["name"];
+    if (!intp(json["position"])) error("Expected integer");
     retval.position = json["position"];
     retval.render_type_name = TypeName_from_JSON(json["renderTypeName"]);
     retval.table_column_id = json["tableColumnId"];
@@ -272,7 +287,9 @@ CachedContents CachedContents_from_JSON(mixed json) {
 
     retval.average = json["average"];
     retval.largest = json["largest"];
+    if (!intp(json["non_null"])) error("Expected integer");
     retval.non_null = json["non_null"];
+    if (!intp(json["null"])) error("Expected integer");
     retval.null = json["null"];
     retval.smallest = json["smallest"];
     retval.sum = json["sum"];
@@ -298,6 +315,7 @@ class Top {
 Top Top_from_JSON(mixed json) {
     Top retval = Top();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.item = json["item"];
 
diff --git a/base/pike/test/inputs/json/misc/a45b0.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/a45b0.json/default/TopLevel.pmod
index d569a3e..02b5d80 100644
--- a/base/pike/test/inputs/json/misc/a45b0.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/a45b0.json/default/TopLevel.pmod
@@ -43,11 +43,16 @@ class TopLevelElement {
 TopLevelElement TopLevelElement_from_JSON(mixed json) {
     TopLevelElement retval = TopLevelElement();
 
+    if (!intp(json["age"])) error("Expected integer");
     retval.age = json["age"];
     retval.country = Country_from_JSON(json["country"]);
+    if (!intp(json["females"])) error("Expected integer");
     retval.females = json["females"];
+    if (!intp(json["males"])) error("Expected integer");
     retval.males = json["males"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
+    if (!intp(json["year"])) error("Expected integer");
     retval.year = json["year"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/ab0d1.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/ab0d1.json/default/TopLevel.pmod
index d569a3e..02b5d80 100644
--- a/base/pike/test/inputs/json/misc/ab0d1.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/ab0d1.json/default/TopLevel.pmod
@@ -43,11 +43,16 @@ class TopLevelElement {
 TopLevelElement TopLevelElement_from_JSON(mixed json) {
     TopLevelElement retval = TopLevelElement();
 
+    if (!intp(json["age"])) error("Expected integer");
     retval.age = json["age"];
     retval.country = Country_from_JSON(json["country"]);
+    if (!intp(json["females"])) error("Expected integer");
     retval.females = json["females"];
+    if (!intp(json["males"])) error("Expected integer");
     retval.males = json["males"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
+    if (!intp(json["year"])) error("Expected integer");
     retval.year = json["year"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/abb4b.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/abb4b.json/default/TopLevel.pmod
index d396953..a2c3877 100644
--- a/base/pike/test/inputs/json/misc/abb4b.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/abb4b.json/default/TopLevel.pmod
@@ -50,6 +50,7 @@ TotalPopulation TotalPopulation_from_JSON(mixed json) {
     TotalPopulation retval = TotalPopulation();
 
     retval.date = json["date"];
+    if (!intp(json["population"])) error("Expected integer");
     retval.population = json["population"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/ae7f0.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/ae7f0.json/default/TopLevel.pmod
index 0bd55d6..5bd7204 100644
--- a/base/pike/test/inputs/json/misc/ae7f0.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/ae7f0.json/default/TopLevel.pmod
@@ -243,9 +243,11 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.created_utc = (float)json["created_utc"];
     retval.distinguished = json["distinguished"];
     retval.domain = Domain_from_JSON(json["domain"]);
+    if (!intp(json["downs"])) error("Expected integer");
     retval.downs = json["downs"];
     if (json["edited"] != Standards.JSON.true && json["edited"] != Standards.JSON.false) error("Expected bool");
     retval.edited = json["edited"];
+    if (!intp(json["gilded"])) error("Expected integer");
     retval.gilded = json["gilded"];
     if (json["hidden"] != Standards.JSON.true && json["hidden"] != Standards.JSON.false) error("Expected bool");
     retval.hidden = json["hidden"];
@@ -267,6 +269,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.media_embed = MediaEmbed_from_JSON(json["media_embed"]);
     retval.mod_reports = json["mod_reports"];
     retval.name = json["name"];
+    if (!intp(json["num_comments"])) error("Expected integer");
     retval.num_comments = json["num_comments"];
     retval.num_reports = json["num_reports"];
     if (json["over_18"] != Standards.JSON.true && json["over_18"] != Standards.JSON.false) error("Expected bool");
@@ -278,6 +281,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.report_reasons = json["report_reasons"];
     if (json["saved"] != Standards.JSON.true && json["saved"] != Standards.JSON.false) error("Expected bool");
     retval.saved = json["saved"];
+    if (!intp(json["score"])) error("Expected integer");
     retval.score = json["score"];
     retval.secure_media = json["secure_media"];
     retval.secure_media_embed = MediaEmbed_from_JSON(json["secure_media_embed"]);
@@ -294,6 +298,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.suggested_sort = json["suggested_sort"];
     retval.thumbnail = json["thumbnail"];
     retval.title = json["title"];
+    if (!intp(json["ups"])) error("Expected integer");
     retval.ups = json["ups"];
     retval.url = json["url"];
     retval.user_reports = json["user_reports"];
diff --git a/base/pike/test/inputs/json/misc/af2d1.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/af2d1.json/default/TopLevel.pmod
index 6e92af6..b45574b 100644
--- a/base/pike/test/inputs/json/misc/af2d1.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/af2d1.json/default/TopLevel.pmod
@@ -35,6 +35,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
 
     retval.crs = Crs_from_JSON(json["crs"]);
     retval.features = json["features"];
+    if (!intp(json["totalFeatures"])) error("Expected integer");
     retval.total_features = json["totalFeatures"];
     retval.type = json["type"];
 
@@ -250,6 +251,7 @@ FeatureProperties FeatureProperties_from_JSON(mixed json) {
     retval.asset_numb = json["asset_numb"];
     if (!has_index(json, "comments")) error("Missing required property");
     retval.comments = json["comments"];
+    if (!intp(json["condition"])) error("Expected integer");
     retval.condition = json["condition"];
     if (!has_index(json, "constructi")) error("Missing required property");
     retval.constructi = json["constructi"];
@@ -265,6 +267,7 @@ FeatureProperties FeatureProperties_from_JSON(mixed json) {
     retval.folder_num = json["folder_num"];
     if (!has_index(json, "funding_ba")) error("Missing required property");
     retval.funding_ba = FundingBa_from_JSON(json["funding_ba"]);
+    if (!intp(json["historic_c"])) error("Expected integer");
     retval.historic_c = json["historic_c"];
     retval.inspection = json["inspection"];
     retval.inspectors = json["inspectors"];
@@ -272,8 +275,10 @@ FeatureProperties FeatureProperties_from_JSON(mixed json) {
     if (!has_index(json, "level_accu")) error("Missing required property");
     retval.level_accu = LevelAccu_from_JSON(json["level_accu"]);
     retval.material = Material_from_JSON(json["material"]);
+    if (!intp(json["mi_prinx"])) error("Expected integer");
     retval.mi_prinx = json["mi_prinx"];
     retval.mi_symbolo = MiSymbolo_from_JSON(json["mi_symbolo"]);
+    if (!intp(json["number_lan"])) error("Expected integer");
     retval.number_lan = json["number_lan"];
     if (!has_index(json, "owner")) error("Missing required property");
     retval.owner = json["owner"];
@@ -281,6 +286,7 @@ FeatureProperties FeatureProperties_from_JSON(mixed json) {
     retval.positional = LevelAccu_from_JSON(json["positional"]);
     if (!has_index(json, "project_nu")) error("Missing required property");
     retval.project_nu = json["project_nu"];
+    if (!intp(json["rec_id"])) error("Expected integer");
     retval.rec_id = json["rec_id"];
     if (!has_index(json, "record_cre")) error("Missing required property");
     retval.record_cre = json["record_cre"];
diff --git a/base/pike/test/inputs/json/misc/b6f2c.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/b6f2c.json/default/TopLevel.pmod
index d396953..a2c3877 100644
--- a/base/pike/test/inputs/json/misc/b6f2c.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/b6f2c.json/default/TopLevel.pmod
@@ -50,6 +50,7 @@ TotalPopulation TotalPopulation_from_JSON(mixed json) {
     TotalPopulation retval = TotalPopulation();
 
     retval.date = json["date"];
+    if (!intp(json["population"])) error("Expected integer");
     retval.population = json["population"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/bb1ec.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/bb1ec.json/default/TopLevel.pmod
index d396953..a2c3877 100644
--- a/base/pike/test/inputs/json/misc/bb1ec.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/bb1ec.json/default/TopLevel.pmod
@@ -50,6 +50,7 @@ TotalPopulation TotalPopulation_from_JSON(mixed json) {
     TotalPopulation retval = TotalPopulation();
 
     retval.date = json["date"];
+    if (!intp(json["population"])) error("Expected integer");
     retval.population = json["population"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/be234.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/be234.json/default/TopLevel.pmod
index 57fbff2..f863924 100644
--- a/base/pike/test/inputs/json/misc/be234.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/be234.json/default/TopLevel.pmod
@@ -253,9 +253,11 @@ ChildData ChildData_from_JSON(mixed json) {
     if (!has_index(json, "distinguished")) error("Missing required property");
     retval.distinguished = json["distinguished"];
     retval.domain = Domain_from_JSON(json["domain"]);
+    if (!intp(json["downs"])) error("Expected integer");
     retval.downs = json["downs"];
     if (json["edited"] != Standards.JSON.true && json["edited"] != Standards.JSON.false) error("Expected bool");
     retval.edited = json["edited"];
+    if (!intp(json["gilded"])) error("Expected integer");
     retval.gilded = json["gilded"];
     if (json["hidden"] != Standards.JSON.true && json["hidden"] != Standards.JSON.false) error("Expected bool");
     retval.hidden = json["hidden"];
@@ -276,6 +278,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.media_embed = MediaEmbed_from_JSON(json["media_embed"]);
     retval.mod_reports = json["mod_reports"];
     retval.name = json["name"];
+    if (!intp(json["num_comments"])) error("Expected integer");
     retval.num_comments = json["num_comments"];
     retval.num_reports = json["num_reports"];
     if (json["over_18"] != Standards.JSON.true && json["over_18"] != Standards.JSON.false) error("Expected bool");
@@ -289,6 +292,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.report_reasons = json["report_reasons"];
     if (json["saved"] != Standards.JSON.true && json["saved"] != Standards.JSON.false) error("Expected bool");
     retval.saved = json["saved"];
+    if (!intp(json["score"])) error("Expected integer");
     retval.score = json["score"];
     if (!has_index(json, "secure_media")) error("Missing required property");
     retval.secure_media = json["secure_media"] == Val.null ? Val.null : Media_from_JSON(json["secure_media"]);
@@ -305,9 +309,12 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.subreddit_type = SubredditType_from_JSON(json["subreddit_type"]);
     retval.suggested_sort = json["suggested_sort"];
     retval.thumbnail = json["thumbnail"];
+    if (!intp(json["thumbnail_height"])) error("Expected integer");
     retval.thumbnail_height = json["thumbnail_height"];
+    if (!intp(json["thumbnail_width"])) error("Expected integer");
     retval.thumbnail_width = json["thumbnail_width"];
     retval.title = json["title"];
+    if (!intp(json["ups"])) error("Expected integer");
     retval.ups = json["ups"];
     retval.url = json["url"];
     retval.user_reports = json["user_reports"];
@@ -391,16 +398,20 @@ Oembed Oembed_from_JSON(mixed json) {
     Oembed retval = Oembed();
 
     retval.description = json["description"];
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.html = json["html"];
     retval.provider_name = json["provider_name"];
     retval.provider_url = json["provider_url"];
+    if (!intp(json["thumbnail_height"])) error("Expected integer");
     retval.thumbnail_height = json["thumbnail_height"];
     retval.thumbnail_url = json["thumbnail_url"];
+    if (!intp(json["thumbnail_width"])) error("Expected integer");
     retval.thumbnail_width = json["thumbnail_width"];
     retval.title = json["title"];
     retval.type = json["type"];
     retval.version = json["version"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
@@ -517,8 +528,10 @@ class Source {
 Source Source_from_JSON(mixed json) {
     Source retval = Source();
 
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.url = json["url"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/c0356.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/c0356.json/default/TopLevel.pmod
index c6d94cc..0dca8b9 100644
--- a/base/pike/test/inputs/json/misc/c0356.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/c0356.json/default/TopLevel.pmod
@@ -78,6 +78,7 @@ Description Description_from_JSON(mixed json) {
     Description retval = Description();
 
     retval.base_period = json["base_period"];
+    if (!intp(json["missing"])) error("Expected integer");
     retval.missing = json["missing"];
     retval.title = json["title"];
 
diff --git a/base/pike/test/inputs/json/misc/c3303.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/c3303.json/default/TopLevel.pmod
index 1bb36cd..99d34c1 100644
--- a/base/pike/test/inputs/json/misc/c3303.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/c3303.json/default/TopLevel.pmod
@@ -94,6 +94,7 @@ Datum Datum_from_JSON(mixed json) {
     retval.id = json["id"];
     retval.images = Images_from_JSON(json["images"]);
     retval.import_datetime = json["import_datetime"];
+    if (!intp(json["is_indexable"])) error("Expected integer");
     retval.is_indexable = json["is_indexable"];
     retval.rating = Rating_from_JSON(json["rating"]);
     retval.slug = json["slug"];
@@ -403,6 +404,7 @@ Meta Meta_from_JSON(mixed json) {
 
     retval.msg = json["msg"];
     retval.response_id = json["response_id"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
 
     return retval;
@@ -427,8 +429,11 @@ class Pagination {
 Pagination Pagination_from_JSON(mixed json) {
     Pagination retval = Pagination();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
+    if (!intp(json["total_count"])) error("Expected integer");
     retval.total_count = json["total_count"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/c8c7e.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/c8c7e.json/default/TopLevel.pmod
index 469b277..25110bf 100644
--- a/base/pike/test/inputs/json/misc/c8c7e.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/c8c7e.json/default/TopLevel.pmod
@@ -118,9 +118,12 @@ class FluffyTopLevel {
 FluffyTopLevel FluffyTopLevel_from_JSON(mixed json) {
     FluffyTopLevel retval = FluffyTopLevel();
 
+    if (!intp(json["page"])) error("Expected integer");
     retval.page = json["page"];
+    if (!intp(json["pages"])) error("Expected integer");
     retval.pages = json["pages"];
     retval.per_page = json["per_page"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/cda6c.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/cda6c.json/default/TopLevel.pmod
index a12c9db..8174655 100644
--- a/base/pike/test/inputs/json/misc/cda6c.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/cda6c.json/default/TopLevel.pmod
@@ -118,9 +118,12 @@ class FluffyTopLevel {
 FluffyTopLevel FluffyTopLevel_from_JSON(mixed json) {
     FluffyTopLevel retval = FluffyTopLevel();
 
+    if (!intp(json["page"])) error("Expected integer");
     retval.page = json["page"];
+    if (!intp(json["pages"])) error("Expected integer");
     retval.pages = json["pages"];
     retval.per_page = json["per_page"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/cf0d8.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/cf0d8.json/default/TopLevel.pmod
index 501fedd..7cdfc67 100644
--- a/base/pike/test/inputs/json/misc/cf0d8.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/cf0d8.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ class Query {
 Query Query_from_JSON(mixed json) {
     Query retval = Query();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.created = json["created"];
     retval.lang = json["lang"];
diff --git a/base/pike/test/inputs/json/misc/d0908.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/d0908.json/default/TopLevel.pmod
index d396953..a2c3877 100644
--- a/base/pike/test/inputs/json/misc/d0908.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/d0908.json/default/TopLevel.pmod
@@ -50,6 +50,7 @@ TotalPopulation TotalPopulation_from_JSON(mixed json) {
     TotalPopulation retval = TotalPopulation();
 
     retval.date = json["date"];
+    if (!intp(json["population"])) error("Expected integer");
     retval.population = json["population"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/d23d5.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/d23d5.json/default/TopLevel.pmod
index 8c4e98f..b832016 100644
--- a/base/pike/test/inputs/json/misc/d23d5.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/d23d5.json/default/TopLevel.pmod
@@ -39,10 +39,13 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.facets = Facets_from_JSON(json["facets"]);
+    if (!intp(json["limit"])) error("Expected integer");
     retval.limit = json["limit"];
     retval.next = json["next"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
     if (json["previous"] != Standards.JSON.true && json["previous"] != Standards.JSON.false) error("Expected bool");
     retval.previous = json["previous"];
diff --git a/base/pike/test/inputs/json/misc/dbfb3.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/dbfb3.json/default/TopLevel.pmod
index 5904295..7a8d5d4 100644
--- a/base/pike/test/inputs/json/misc/dbfb3.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/dbfb3.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ class Query {
 Query Query_from_JSON(mixed json) {
     Query retval = Query();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.created = json["created"];
     retval.lang = json["lang"];
diff --git a/base/pike/test/inputs/json/misc/dc44f.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/dc44f.json/default/TopLevel.pmod
index d3fe66c..61fbb35 100644
--- a/base/pike/test/inputs/json/misc/dc44f.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/dc44f.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.code = json["code"];
     retval.gatherer_code = json["gathererCode"];
     retval.magic_cards_info_code = json["magicCardsInfoCode"];
+    if (!intp(json["mkm_id"])) error("Expected integer");
     retval.mkm_id = json["mkm_id"];
     retval.mkm_name = json["mkm_name"];
     retval.name = json["name"];
@@ -140,6 +141,7 @@ Card Card_from_JSON(mixed json) {
     Card retval = Card();
 
     retval.artist = json["artist"];
+    if (!intp(json["cmc"])) error("Expected integer");
     retval.cmc = json["cmc"];
     retval.color_identity = json["colorIdentity"];
     retval.colors = json["colors"];
@@ -150,6 +152,7 @@ Card Card_from_JSON(mixed json) {
     retval.legalities = json["legalities"];
     retval.mana_cost = json["manaCost"];
     retval.mci_number = json["mciNumber"];
+    if (!intp(json["multiverseid"])) error("Expected integer");
     retval.multiverseid = json["multiverseid"];
     retval.name = json["name"];
     retval.original_text = json["originalText"];
diff --git a/base/pike/test/inputs/json/misc/dd1ce.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/dd1ce.json/default/TopLevel.pmod
index d3fe66c..61fbb35 100644
--- a/base/pike/test/inputs/json/misc/dd1ce.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/dd1ce.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.code = json["code"];
     retval.gatherer_code = json["gathererCode"];
     retval.magic_cards_info_code = json["magicCardsInfoCode"];
+    if (!intp(json["mkm_id"])) error("Expected integer");
     retval.mkm_id = json["mkm_id"];
     retval.mkm_name = json["mkm_name"];
     retval.name = json["name"];
@@ -140,6 +141,7 @@ Card Card_from_JSON(mixed json) {
     Card retval = Card();
 
     retval.artist = json["artist"];
+    if (!intp(json["cmc"])) error("Expected integer");
     retval.cmc = json["cmc"];
     retval.color_identity = json["colorIdentity"];
     retval.colors = json["colors"];
@@ -150,6 +152,7 @@ Card Card_from_JSON(mixed json) {
     retval.legalities = json["legalities"];
     retval.mana_cost = json["manaCost"];
     retval.mci_number = json["mciNumber"];
+    if (!intp(json["multiverseid"])) error("Expected integer");
     retval.multiverseid = json["multiverseid"];
     retval.name = json["name"];
     retval.original_text = json["originalText"];
diff --git a/base/pike/test/inputs/json/misc/dec3a.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/dec3a.json/default/TopLevel.pmod
index ba5cca1..9ba7444 100644
--- a/base/pike/test/inputs/json/misc/dec3a.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/dec3a.json/default/TopLevel.pmod
@@ -79,6 +79,7 @@ ResponseInfo ResponseInfo_from_JSON(mixed json) {
     ResponseInfo retval = ResponseInfo();
 
     retval.developer_message = json["developerMessage"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
 
     return retval;
@@ -103,8 +104,11 @@ class Resultset {
 Resultset Resultset_from_JSON(mixed json) {
     Resultset retval = Resultset();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["page"])) error("Expected integer");
     retval.page = json["page"];
+    if (!intp(json["pagesize"])) error("Expected integer");
     retval.pagesize = json["pagesize"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/df957.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/df957.json/default/TopLevel.pmod
index 501fedd..7cdfc67 100644
--- a/base/pike/test/inputs/json/misc/df957.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/df957.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ class Query {
 Query Query_from_JSON(mixed json) {
     Query retval = Query();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.created = json["created"];
     retval.lang = json["lang"];
diff --git a/base/pike/test/inputs/json/misc/e0ac7.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/e0ac7.json/default/TopLevel.pmod
index ca80f63..c8bbb62 100644
--- a/base/pike/test/inputs/json/misc/e0ac7.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/e0ac7.json/default/TopLevel.pmod
@@ -94,6 +94,7 @@ Datum Datum_from_JSON(mixed json) {
     retval.id = json["id"];
     retval.images = Images_from_JSON(json["images"]);
     retval.import_datetime = json["import_datetime"];
+    if (!intp(json["is_indexable"])) error("Expected integer");
     retval.is_indexable = json["is_indexable"];
     retval.rating = Rating_from_JSON(json["rating"]);
     retval.slug = json["slug"];
@@ -397,6 +398,7 @@ Meta Meta_from_JSON(mixed json) {
 
     retval.msg = json["msg"];
     retval.response_id = json["response_id"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
 
     return retval;
@@ -421,8 +423,11 @@ class Pagination {
 Pagination Pagination_from_JSON(mixed json) {
     Pagination retval = Pagination();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
+    if (!intp(json["total_count"])) error("Expected integer");
     retval.total_count = json["total_count"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/e2915.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/e2915.json/default/TopLevel.pmod
index 2b65d66..7893b0c 100644
--- a/base/pike/test/inputs/json/misc/e2915.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/e2915.json/default/TopLevel.pmod
@@ -53,6 +53,7 @@ class Query {
 Query Query_from_JSON(mixed json) {
     Query retval = Query();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.created = json["created"];
     retval.lang = json["lang"];
diff --git a/base/pike/test/inputs/json/misc/e53b5.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/e53b5.json/default/TopLevel.pmod
index 006116c..0d02dfc 100644
--- a/base/pike/test/inputs/json/misc/e53b5.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/e53b5.json/default/TopLevel.pmod
@@ -118,9 +118,12 @@ class FluffyTopLevel {
 FluffyTopLevel FluffyTopLevel_from_JSON(mixed json) {
     FluffyTopLevel retval = FluffyTopLevel();
 
+    if (!intp(json["page"])) error("Expected integer");
     retval.page = json["page"];
+    if (!intp(json["pages"])) error("Expected integer");
     retval.pages = json["pages"];
     retval.per_page = json["per_page"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/e8a0b.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/e8a0b.json/default/TopLevel.pmod
index d569a3e..02b5d80 100644
--- a/base/pike/test/inputs/json/misc/e8a0b.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/e8a0b.json/default/TopLevel.pmod
@@ -43,11 +43,16 @@ class TopLevelElement {
 TopLevelElement TopLevelElement_from_JSON(mixed json) {
     TopLevelElement retval = TopLevelElement();
 
+    if (!intp(json["age"])) error("Expected integer");
     retval.age = json["age"];
     retval.country = Country_from_JSON(json["country"]);
+    if (!intp(json["females"])) error("Expected integer");
     retval.females = json["females"];
+    if (!intp(json["males"])) error("Expected integer");
     retval.males = json["males"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
+    if (!intp(json["year"])) error("Expected integer");
     retval.year = json["year"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/e8b04.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/e8b04.json/default/TopLevel.pmod
index 5171c48..1a63f00 100644
--- a/base/pike/test/inputs/json/misc/e8b04.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/e8b04.json/default/TopLevel.pmod
@@ -111,11 +111,14 @@ class TopLevelElement {
 TopLevelElement TopLevelElement_from_JSON(mixed json) {
     TopLevelElement retval = TopLevelElement();
 
+    if (!intp(json["averageRating"])) error("Expected integer");
     retval.average_rating = json["averageRating"];
     retval.category = json["category"];
+    if (!intp(json["createdAt"])) error("Expected integer");
     retval.created_at = json["createdAt"];
     retval.description = json["description"];
     retval.display_type = DisplayType_from_JSON(json["displayType"]);
+    if (!intp(json["downloadCount"])) error("Expected integer");
     retval.download_count = json["downloadCount"];
     retval.flags = json["flags"];
     retval.grants = json["grants"];
@@ -132,13 +135,16 @@ TopLevelElement TopLevelElement_from_JSON(mixed json) {
     retval.name = json["name"];
     if (json["newBackend"] != Standards.JSON.true && json["newBackend"] != Standards.JSON.false) error("Expected bool");
     retval.new_backend = json["newBackend"];
+    if (!intp(json["numberOfComments"])) error("Expected integer");
     retval.number_of_comments = json["numberOfComments"];
+    if (!intp(json["oid"])) error("Expected integer");
     retval.oid = json["oid"];
     retval.owner = Owner_from_JSON(json["owner"]);
     retval.provenance = Provenance_from_JSON(json["provenance"]);
     if (json["publicationAppendEnabled"] != Standards.JSON.true && json["publicationAppendEnabled"] != Standards.JSON.false) error("Expected bool");
     retval.publication_append_enabled = json["publicationAppendEnabled"];
     retval.publication_date = json["publicationDate"];
+    if (!intp(json["publicationGroup"])) error("Expected integer");
     retval.publication_group = json["publicationGroup"];
     retval.publication_stage = PublicationStage_from_JSON(json["publicationStage"]);
     retval.ratings = json["ratings"] == Val.null ? Val.null : Ratings_from_JSON(json["ratings"]);
@@ -149,10 +155,14 @@ TopLevelElement TopLevelElement_from_JSON(mixed json) {
     retval.rows_updated_at = json["rowsUpdatedAt"];
     retval.rows_updated_by = RowsUpdatedBy_from_JSON(json["rowsUpdatedBy"]);
     retval.table_author = TableAuthor_from_JSON(json["tableAuthor"]);
+    if (!intp(json["tableId"])) error("Expected integer");
     retval.table_id = json["tableId"];
     retval.tags = json["tags"];
+    if (!intp(json["totalTimesRated"])) error("Expected integer");
     retval.total_times_rated = json["totalTimesRated"];
+    if (!intp(json["viewCount"])) error("Expected integer");
     retval.view_count = json["viewCount"];
+    if (!intp(json["viewLastModified"])) error("Expected integer");
     retval.view_last_modified = json["viewLastModified"];
     retval.view_type = ViewType_from_JSON(json["viewType"]);
 
@@ -547,6 +557,7 @@ class TableColumnId {
 TableColumnId TableColumnId_from_JSON(mixed json) {
     TableColumnId retval = TableColumnId();
 
+    if (!intp(json["2819740"])) error("Expected integer");
     retval.the_2819740 = json["2819740"];
 
     return retval;
@@ -713,6 +724,7 @@ class Field {
 Field Field_from_JSON(mixed json) {
     Field retval = Field();
 
+    if (!intp(json["tableColumnId"])) error("Expected integer");
     retval.table_column_id = json["tableColumnId"];
     retval.type = FieldType_from_JSON(json["type"]);
 
@@ -941,6 +953,7 @@ class Ratings {
 Ratings Ratings_from_JSON(mixed json) {
     Ratings retval = Ratings();
 
+    if (!intp(json["rating"])) error("Expected integer");
     retval.rating = json["rating"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/f22f5.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/f22f5.json/default/TopLevel.pmod
index 9b27b3a..363a705 100644
--- a/base/pike/test/inputs/json/misc/f22f5.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/f22f5.json/default/TopLevel.pmod
@@ -243,9 +243,11 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.created_utc = (float)json["created_utc"];
     retval.distinguished = json["distinguished"];
     retval.domain = json["domain"];
+    if (!intp(json["downs"])) error("Expected integer");
     retval.downs = json["downs"];
     if (json["edited"] != Standards.JSON.true && json["edited"] != Standards.JSON.false) error("Expected bool");
     retval.edited = json["edited"];
+    if (!intp(json["gilded"])) error("Expected integer");
     retval.gilded = json["gilded"];
     if (json["hidden"] != Standards.JSON.true && json["hidden"] != Standards.JSON.false) error("Expected bool");
     retval.hidden = json["hidden"];
@@ -267,6 +269,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.media_embed = MediaEmbed_from_JSON(json["media_embed"]);
     retval.mod_reports = json["mod_reports"];
     retval.name = json["name"];
+    if (!intp(json["num_comments"])) error("Expected integer");
     retval.num_comments = json["num_comments"];
     retval.num_reports = json["num_reports"];
     if (json["over_18"] != Standards.JSON.true && json["over_18"] != Standards.JSON.false) error("Expected bool");
@@ -278,6 +281,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.report_reasons = json["report_reasons"];
     if (json["saved"] != Standards.JSON.true && json["saved"] != Standards.JSON.false) error("Expected bool");
     retval.saved = json["saved"];
+    if (!intp(json["score"])) error("Expected integer");
     retval.score = json["score"];
     retval.secure_media = json["secure_media"];
     retval.secure_media_embed = MediaEmbed_from_JSON(json["secure_media_embed"]);
@@ -294,6 +298,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.suggested_sort = json["suggested_sort"];
     retval.thumbnail = json["thumbnail"];
     retval.title = json["title"];
+    if (!intp(json["ups"])) error("Expected integer");
     retval.ups = json["ups"];
     retval.url = json["url"];
     retval.user_reports = json["user_reports"];
diff --git a/base/pike/test/inputs/json/misc/f3edf.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/f3edf.json/default/TopLevel.pmod
index d569a3e..02b5d80 100644
--- a/base/pike/test/inputs/json/misc/f3edf.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/f3edf.json/default/TopLevel.pmod
@@ -43,11 +43,16 @@ class TopLevelElement {
 TopLevelElement TopLevelElement_from_JSON(mixed json) {
     TopLevelElement retval = TopLevelElement();
 
+    if (!intp(json["age"])) error("Expected integer");
     retval.age = json["age"];
     retval.country = Country_from_JSON(json["country"]);
+    if (!intp(json["females"])) error("Expected integer");
     retval.females = json["females"];
+    if (!intp(json["males"])) error("Expected integer");
     retval.males = json["males"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
+    if (!intp(json["year"])) error("Expected integer");
     retval.year = json["year"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/f466a.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/f466a.json/default/TopLevel.pmod
index d569a3e..02b5d80 100644
--- a/base/pike/test/inputs/json/misc/f466a.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/f466a.json/default/TopLevel.pmod
@@ -43,11 +43,16 @@ class TopLevelElement {
 TopLevelElement TopLevelElement_from_JSON(mixed json) {
     TopLevelElement retval = TopLevelElement();
 
+    if (!intp(json["age"])) error("Expected integer");
     retval.age = json["age"];
     retval.country = Country_from_JSON(json["country"]);
+    if (!intp(json["females"])) error("Expected integer");
     retval.females = json["females"];
+    if (!intp(json["males"])) error("Expected integer");
     retval.males = json["males"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
+    if (!intp(json["year"])) error("Expected integer");
     retval.year = json["year"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/f6a65.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/f6a65.json/default/TopLevel.pmod
index 79777d4..311bbe4 100644
--- a/base/pike/test/inputs/json/misc/f6a65.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/f6a65.json/default/TopLevel.pmod
@@ -94,6 +94,7 @@ Datum Datum_from_JSON(mixed json) {
     retval.id = json["id"];
     retval.images = Images_from_JSON(json["images"]);
     retval.import_datetime = json["import_datetime"];
+    if (!intp(json["is_indexable"])) error("Expected integer");
     retval.is_indexable = json["is_indexable"];
     retval.rating = Rating_from_JSON(json["rating"]);
     retval.slug = json["slug"];
@@ -409,6 +410,7 @@ Meta Meta_from_JSON(mixed json) {
 
     retval.msg = json["msg"];
     retval.response_id = json["response_id"];
+    if (!intp(json["status"])) error("Expected integer");
     retval.status = json["status"];
 
     return retval;
@@ -433,8 +435,11 @@ class Pagination {
 Pagination Pagination_from_JSON(mixed json) {
     Pagination retval = Pagination();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
+    if (!intp(json["total_count"])) error("Expected integer");
     retval.total_count = json["total_count"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/f74d5.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/f74d5.json/default/TopLevel.pmod
index 75fbbce..5b51913 100644
--- a/base/pike/test/inputs/json/misc/f74d5.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/f74d5.json/default/TopLevel.pmod
@@ -148,11 +148,14 @@ class View {
 View View_from_JSON(mixed json) {
     View retval = View();
 
+    if (!intp(json["averageRating"])) error("Expected integer");
     retval.average_rating = json["averageRating"];
     retval.category = json["category"];
     retval.columns = json["columns"];
+    if (!intp(json["createdAt"])) error("Expected integer");
     retval.created_at = json["createdAt"];
     retval.display_type = json["displayType"];
+    if (!intp(json["downloadCount"])) error("Expected integer");
     retval.download_count = json["downloadCount"];
     retval.flags = json["flags"];
     retval.grants = json["grants"];
@@ -161,6 +164,7 @@ View View_from_JSON(mixed json) {
     if (json["hideFromDataJson"] != Standards.JSON.true && json["hideFromDataJson"] != Standards.JSON.false) error("Expected bool");
     retval.hide_from_data_json = json["hideFromDataJson"];
     retval.id = json["id"];
+    if (!intp(json["indexUpdatedAt"])) error("Expected integer");
     retval.index_updated_at = json["indexUpdatedAt"];
     retval.license = License_from_JSON(json["license"]);
     retval.license_id = json["licenseId"];
@@ -169,24 +173,33 @@ View View_from_JSON(mixed json) {
     retval.name = json["name"];
     if (json["newBackend"] != Standards.JSON.true && json["newBackend"] != Standards.JSON.false) error("Expected bool");
     retval.new_backend = json["newBackend"];
+    if (!intp(json["numberOfComments"])) error("Expected integer");
     retval.number_of_comments = json["numberOfComments"];
+    if (!intp(json["oid"])) error("Expected integer");
     retval.oid = json["oid"];
     retval.owner = Owner_from_JSON(json["owner"]);
     retval.provenance = json["provenance"];
     if (json["publicationAppendEnabled"] != Standards.JSON.true && json["publicationAppendEnabled"] != Standards.JSON.false) error("Expected bool");
     retval.publication_append_enabled = json["publicationAppendEnabled"];
+    if (!intp(json["publicationDate"])) error("Expected integer");
     retval.publication_date = json["publicationDate"];
+    if (!intp(json["publicationGroup"])) error("Expected integer");
     retval.publication_group = json["publicationGroup"];
     retval.publication_stage = json["publicationStage"];
     retval.query = Query_from_JSON(json["query"]);
     retval.rights = json["rights"];
     retval.row_class = json["rowClass"];
+    if (!intp(json["rowsUpdatedAt"])) error("Expected integer");
     retval.rows_updated_at = json["rowsUpdatedAt"];
     retval.rows_updated_by = json["rowsUpdatedBy"];
     retval.table_author = Owner_from_JSON(json["tableAuthor"]);
+    if (!intp(json["tableId"])) error("Expected integer");
     retval.table_id = json["tableId"];
+    if (!intp(json["totalTimesRated"])) error("Expected integer");
     retval.total_times_rated = json["totalTimesRated"];
+    if (!intp(json["viewCount"])) error("Expected integer");
     retval.view_count = json["viewCount"];
+    if (!intp(json["viewLastModified"])) error("Expected integer");
     retval.view_last_modified = json["viewLastModified"];
     retval.view_type = json["viewType"];
 
@@ -233,8 +246,10 @@ Column Column_from_JSON(mixed json) {
     retval.field_name = json["fieldName"];
     retval.flags = json["flags"];
     retval.format = Query_from_JSON(json["format"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.name = json["name"];
+    if (!intp(json["position"])) error("Expected integer");
     retval.position = json["position"];
     retval.render_type_name = TypeName_from_JSON(json["renderTypeName"]);
     retval.table_column_id = json["tableColumnId"];
@@ -272,7 +287,9 @@ CachedContents CachedContents_from_JSON(mixed json) {
 
     retval.average = json["average"];
     retval.largest = json["largest"];
+    if (!intp(json["non_null"])) error("Expected integer");
     retval.non_null = json["non_null"];
+    if (!intp(json["null"])) error("Expected integer");
     retval.null = json["null"];
     retval.smallest = json["smallest"];
     retval.sum = json["sum"];
@@ -298,6 +315,7 @@ class Top {
 Top Top_from_JSON(mixed json) {
     Top retval = Top();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.item = json["item"];
 
diff --git a/base/pike/test/inputs/json/misc/f974d.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/f974d.json/default/TopLevel.pmod
index e52dbe2..0a66795 100644
--- a/base/pike/test/inputs/json/misc/f974d.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/f974d.json/default/TopLevel.pmod
@@ -35,9 +35,12 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["block_index"])) error("Expected integer");
     retval.block_index = json["block_index"];
     retval.hash = json["hash"];
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
+    if (!intp(json["time"])) error("Expected integer");
     retval.time = json["time"];
     retval.tx_indexes = json["txIndexes"];
 
diff --git a/base/pike/test/inputs/json/misc/faff5.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/faff5.json/default/TopLevel.pmod
index ec07274..eaf4eb7 100644
--- a/base/pike/test/inputs/json/misc/faff5.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/faff5.json/default/TopLevel.pmod
@@ -49,7 +49,9 @@ class Response {
 Response Response_from_JSON(mixed json) {
     Response retval = Response();
 
+    if (!intp(json["player_count"])) error("Expected integer");
     retval.player_count = json["player_count"];
+    if (!intp(json["result"])) error("Expected integer");
     retval.result = json["result"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/misc/fcca3.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/fcca3.json/default/TopLevel.pmod
index ba1d739..6b50ab1 100644
--- a/base/pike/test/inputs/json/misc/fcca3.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/fcca3.json/default/TopLevel.pmod
@@ -149,12 +149,15 @@ View View_from_JSON(mixed json) {
     View retval = View();
 
     retval.attribution = json["attribution"];
+    if (!intp(json["averageRating"])) error("Expected integer");
     retval.average_rating = json["averageRating"];
     retval.category = json["category"];
     retval.columns = json["columns"];
+    if (!intp(json["createdAt"])) error("Expected integer");
     retval.created_at = json["createdAt"];
     retval.description = json["description"];
     retval.display_type = json["displayType"];
+    if (!intp(json["downloadCount"])) error("Expected integer");
     retval.download_count = json["downloadCount"];
     retval.flags = json["flags"];
     retval.grants = json["grants"];
@@ -163,30 +166,40 @@ View View_from_JSON(mixed json) {
     if (json["hideFromDataJson"] != Standards.JSON.true && json["hideFromDataJson"] != Standards.JSON.false) error("Expected bool");
     retval.hide_from_data_json = json["hideFromDataJson"];
     retval.id = json["id"];
+    if (!intp(json["indexUpdatedAt"])) error("Expected integer");
     retval.index_updated_at = json["indexUpdatedAt"];
     retval.locale = json["locale"];
     retval.metadata = ViewMetadata_from_JSON(json["metadata"]);
     retval.name = json["name"];
     if (json["newBackend"] != Standards.JSON.true && json["newBackend"] != Standards.JSON.false) error("Expected bool");
     retval.new_backend = json["newBackend"];
+    if (!intp(json["numberOfComments"])) error("Expected integer");
     retval.number_of_comments = json["numberOfComments"];
+    if (!intp(json["oid"])) error("Expected integer");
     retval.oid = json["oid"];
     retval.owner = Owner_from_JSON(json["owner"]);
     retval.provenance = json["provenance"];
     if (json["publicationAppendEnabled"] != Standards.JSON.true && json["publicationAppendEnabled"] != Standards.JSON.false) error("Expected bool");
     retval.publication_append_enabled = json["publicationAppendEnabled"];
+    if (!intp(json["publicationDate"])) error("Expected integer");
     retval.publication_date = json["publicationDate"];
+    if (!intp(json["publicationGroup"])) error("Expected integer");
     retval.publication_group = json["publicationGroup"];
     retval.publication_stage = json["publicationStage"];
     retval.query = Query_from_JSON(json["query"]);
     retval.rights = json["rights"];
+    if (!intp(json["rowsUpdatedAt"])) error("Expected integer");
     retval.rows_updated_at = json["rowsUpdatedAt"];
     retval.rows_updated_by = json["rowsUpdatedBy"];
     retval.table_author = Owner_from_JSON(json["tableAuthor"]);
+    if (!intp(json["tableId"])) error("Expected integer");
     retval.table_id = json["tableId"];
     retval.tags = json["tags"];
+    if (!intp(json["totalTimesRated"])) error("Expected integer");
     retval.total_times_rated = json["totalTimesRated"];
+    if (!intp(json["viewCount"])) error("Expected integer");
     retval.view_count = json["viewCount"];
+    if (!intp(json["viewLastModified"])) error("Expected integer");
     retval.view_last_modified = json["viewLastModified"];
     retval.view_type = json["viewType"];
 
@@ -236,8 +249,10 @@ Column Column_from_JSON(mixed json) {
     retval.field_name = json["fieldName"];
     retval.flags = json["flags"];
     retval.format = Format_from_JSON(json["format"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.name = json["name"];
+    if (!intp(json["position"])) error("Expected integer");
     retval.position = json["position"];
     retval.render_type_name = TypeName_from_JSON(json["renderTypeName"]);
     retval.table_column_id = json["tableColumnId"];
@@ -275,7 +290,9 @@ CachedContents CachedContents_from_JSON(mixed json) {
 
     retval.average = json["average"];
     retval.largest = json["largest"];
+    if (!intp(json["non_null"])) error("Expected integer");
     retval.non_null = json["non_null"];
+    if (!intp(json["null"])) error("Expected integer");
     retval.null = json["null"];
     retval.smallest = json["smallest"];
     retval.sum = json["sum"];
@@ -301,6 +318,7 @@ class Top {
 Top Top_from_JSON(mixed json) {
     Top retval = Top();
 
+    if (!intp(json["count"])) error("Expected integer");
     retval.count = json["count"];
     retval.item = json["item"];
 
@@ -669,6 +687,7 @@ class TableColumnId {
 TableColumnId TableColumnId_from_JSON(mixed json) {
     TableColumnId retval = TableColumnId();
 
+    if (!intp(json["703610"])) error("Expected integer");
     retval.the_703610 = json["703610"];
 
     return retval;
@@ -693,6 +712,7 @@ FilterConditionMetadata FilterConditionMetadata_from_JSON(mixed json) {
 
     if (json["advanced"] != Standards.JSON.true && json["advanced"] != Standards.JSON.false) error("Expected bool");
     retval.advanced = json["advanced"];
+    if (!intp(json["unifiedVersion"])) error("Expected integer");
     retval.unified_version = json["unifiedVersion"];
 
     return retval;
@@ -885,6 +905,7 @@ class Expression {
 Expression Expression_from_JSON(mixed json) {
     Expression retval = Expression();
 
+    if (!intp(json["columnId"])) error("Expected integer");
     retval.column_id = json["columnId"];
     retval.type = json["type"];
 
diff --git a/base/pike/test/inputs/json/misc/fd329.json/default/TopLevel.pmod b/head/pike/test/inputs/json/misc/fd329.json/default/TopLevel.pmod
index 0e6bcb4..1de287a 100644
--- a/base/pike/test/inputs/json/misc/fd329.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/misc/fd329.json/default/TopLevel.pmod
@@ -80,6 +80,7 @@ Description Description_from_JSON(mixed json) {
     Description retval = Description();
 
     retval.base_period = json["base_period"];
+    if (!intp(json["missing"])) error("Expected integer");
     retval.missing = json["missing"];
     retval.title = json["title"];
     retval.units = json["units"];
diff --git a/base/pike/test/inputs/json/priority/bug427.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/bug427.json/default/TopLevel.pmod
index 5795580..7d9bc6a 100644
--- a/base/pike/test/inputs/json/priority/bug427.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/bug427.json/default/TopLevel.pmod
@@ -40,7 +40,9 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.children = json["children"];
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
     retval.groups = json["groups"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.name = json["name"];
 
@@ -84,7 +86,9 @@ TopLevelChild TopLevelChild_from_JSON(mixed json) {
     retval.comment = json["comment"] == Val.null ? Val.null : IndecentComment_from_JSON(json["comment"]);
     retval.flags = PurpleFlags_from_JSON(json["flags"]);
     retval.groups = json["groups"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = TentacledKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -148,9 +152,11 @@ PurpleChild PurpleChild_from_JSON(mixed json) {
     retval.extended_types = json["extendedTypes"];
     retval.flags = IndecentFlags_from_JSON(json["flags"]);
     retval.groups = json["groups"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.implemented_by = json["implementedBy"];
     retval.implemented_types = json["implementedTypes"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = FluffyKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -215,9 +221,11 @@ FluffyChild FluffyChild_from_JSON(mixed json) {
     retval.flags = StickyFlags_from_JSON(json["flags"]);
     retval.get_signature = json["getSignature"] == Val.null ? Val.null : GetSignature_from_JSON(json["getSignature"]);
     retval.groups = json["groups"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.implementation_of = json["implementationOf"] == Val.null ? Val.null : ExtendedBy_from_JSON(json["implementationOf"]);
     retval.inherited_from = json["inheritedFrom"] == Val.null ? Val.null : ExtendedBy_from_JSON(json["inheritedFrom"]);
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = PurpleKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -266,7 +274,9 @@ TentacledChild TentacledChild_from_JSON(mixed json) {
     retval.comment = json["comment"] == Val.null ? Val.null : PurpleComment_from_JSON(json["comment"]);
     retval.default_value = json["defaultValue"];
     retval.flags = PurpleFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = PurpleKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -364,7 +374,9 @@ PurpleSignature PurpleSignature_from_JSON(mixed json) {
 
     retval.comment = json["comment"] == Val.null ? Val.null : PurpleComment_from_JSON(json["comment"]);
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = SignatureKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -456,7 +468,9 @@ IndexSignatureElement IndexSignatureElement_from_JSON(mixed json) {
     IndexSignatureElement retval = IndexSignatureElement();
 
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = json["kindString"];
     retval.name = json["name"];
@@ -523,7 +537,9 @@ GetSignatureChild GetSignatureChild_from_JSON(mixed json) {
 
     retval.comment = json["comment"] == Val.null ? Val.null : FluffyComment_from_JSON(json["comment"]);
     retval.flags = FluffyFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = PurpleKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -579,7 +595,9 @@ GetSignature GetSignature_from_JSON(mixed json) {
     retval.default_value = json["defaultValue"];
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
     retval.groups = json["groups"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = json["kindString"];
     retval.name = json["name"];
@@ -705,8 +723,10 @@ class Source {
 Source Source_from_JSON(mixed json) {
     Source retval = Source();
 
+    if (!intp(json["character"])) error("Expected integer");
     retval.character = json["character"];
     retval.file_name = FileName_from_JSON(json["fileName"]);
+    if (!intp(json["line"])) error("Expected integer");
     retval.line = json["line"];
 
     return retval;
@@ -778,6 +798,7 @@ Group Group_from_JSON(mixed json) {
     Group retval = Group();
 
     retval.children = json["children"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.title = json["title"];
 
@@ -813,7 +834,9 @@ GetSignatureParameter GetSignatureParameter_from_JSON(mixed json) {
 
     retval.comment = json["comment"] == Val.null ? Val.null : TentacledComment_from_JSON(json["comment"]);
     retval.flags = TentacledFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = ParameterKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -961,7 +984,9 @@ PurpleDeclaration PurpleDeclaration_from_JSON(mixed json) {
     retval.children = json["children"];
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
     retval.groups = json["groups"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = json["kindString"];
     retval.name = json["name"];
@@ -1162,9 +1187,11 @@ FluffySignature FluffySignature_from_JSON(mixed json) {
 
     retval.comment = json["comment"] == Val.null ? Val.null : StickyComment_from_JSON(json["comment"]);
     retval.flags = IndigoFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.implementation_of = json["implementationOf"] == Val.null ? Val.null : ExtendedBy_from_JSON(json["implementationOf"]);
     retval.inherited_from = json["inheritedFrom"] == Val.null ? Val.null : ExtendedBy_from_JSON(json["inheritedFrom"]);
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = SignatureKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -1228,7 +1255,9 @@ PurpleParameter PurpleParameter_from_JSON(mixed json) {
 
     retval.comment = json["comment"] == Val.null ? Val.null : TentacledComment_from_JSON(json["comment"]);
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = ParameterKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -1358,8 +1387,10 @@ FluffyDeclaration FluffyDeclaration_from_JSON(mixed json) {
     retval.children = json["children"];
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
     retval.groups = json["groups"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.index_signature = json["indexSignature"] == Val.null ? Val.null : IndexSignature_from_JSON(json["indexSignature"]);
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = json["kindString"];
     retval.name = json["name"];
@@ -1400,7 +1431,9 @@ StickyChild StickyChild_from_JSON(mixed json) {
 
     retval.comment = json["comment"] == Val.null ? Val.null : FluffyComment_from_JSON(json["comment"]);
     retval.flags = FluffyFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = PurpleKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -1467,7 +1500,9 @@ IndexSignature IndexSignature_from_JSON(mixed json) {
     IndexSignature retval = IndexSignature();
 
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = json["kindString"];
     retval.name = json["name"];
@@ -1531,7 +1566,9 @@ TentacledSignature TentacledSignature_from_JSON(mixed json) {
 
     retval.comment = json["comment"] == Val.null ? Val.null : IndigoComment_from_JSON(json["comment"]);
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = SignatureKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -1595,7 +1632,9 @@ FluffyParameter FluffyParameter_from_JSON(mixed json) {
 
     retval.comment = json["comment"] == Val.null ? Val.null : FluffyComment_from_JSON(json["comment"]);
     retval.flags = FluffyFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = json["kindString"];
     retval.name = json["name"];
@@ -1717,7 +1756,9 @@ StickySignature StickySignature_from_JSON(mixed json) {
 
     retval.comment = StickyComment_from_JSON(json["comment"]);
     retval.flags = IndigoFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = SignatureKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -1762,7 +1803,9 @@ TentacledParameter TentacledParameter_from_JSON(mixed json) {
     retval.comment = json["comment"] == Val.null ? Val.null : TentacledComment_from_JSON(json["comment"]);
     retval.default_value = json["defaultValue"];
     retval.flags = TentacledFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = ParameterKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -1843,8 +1886,10 @@ TentacledDeclaration TentacledDeclaration_from_JSON(mixed json) {
     retval.children = json["children"];
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
     retval.groups = json["groups"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.index_signature = json["indexSignature"] == Val.null ? Val.null : IndexSignatureElement_from_JSON(json["indexSignature"]);
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = json["kindString"];
     retval.name = json["name"];
@@ -1888,7 +1933,9 @@ IndigoChild IndigoChild_from_JSON(mixed json) {
     retval.comment = FluffyComment_from_JSON(json["comment"]);
     retval.default_value = json["defaultValue"];
     retval.flags = FluffyFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = PurpleKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -2008,7 +2055,9 @@ StickyDeclaration StickyDeclaration_from_JSON(mixed json) {
     retval.children = json["children"];
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
     retval.groups = json["groups"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = json["kindString"];
     retval.name = json["name"];
@@ -2046,7 +2095,9 @@ IndecentChild IndecentChild_from_JSON(mixed json) {
     IndecentChild retval = IndecentChild();
 
     retval.flags = FluffyFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = PurpleKindString_from_JSON(json["kindString"]);
     retval.name = json["name"];
@@ -2116,7 +2167,9 @@ IndigoDeclaration IndigoDeclaration_from_JSON(mixed json) {
     retval.children = json["children"];
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
     retval.groups = json["groups"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = json["kindString"];
     retval.name = json["name"];
@@ -2178,7 +2231,9 @@ TypeParameter TypeParameter_from_JSON(mixed json) {
 
     retval.comment = json["comment"] == Val.null ? Val.null : PurpleComment_from_JSON(json["comment"]);
     retval.flags = GetSignatureFlags_from_JSON(json["flags"]);
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
+    if (!intp(json["kind"])) error("Expected integer");
     retval.kind = json["kind"];
     retval.kind_string = json["kindString"];
     retval.name = json["name"];
diff --git a/base/pike/test/inputs/json/priority/bug790.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/bug790.json/default/TopLevel.pmod
index 14accc3..46464d3 100644
--- a/base/pike/test/inputs/json/priority/bug790.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/bug790.json/default/TopLevel.pmod
@@ -42,13 +42,18 @@ TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
     retval.children_data = json["children_data"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     if (json["is_active"] != Standards.JSON.true && json["is_active"] != Standards.JSON.false) error("Expected bool");
     retval.is_active = json["is_active"];
+    if (!intp(json["level"])) error("Expected integer");
     retval.level = json["level"];
     retval.name = json["name"];
+    if (!intp(json["parent_id"])) error("Expected integer");
     retval.parent_id = json["parent_id"];
+    if (!intp(json["position"])) error("Expected integer");
     retval.position = json["position"];
+    if (!intp(json["product_count"])) error("Expected integer");
     retval.product_count = json["product_count"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/priority/bug855-short.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/bug855-short.json/default/TopLevel.pmod
index 7390d14..6195de1 100644
--- a/base/pike/test/inputs/json/priority/bug855-short.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/bug855-short.json/default/TopLevel.pmod
@@ -48,7 +48,9 @@ TopLevelValue TopLevelValue_from_JSON(mixed json) {
     retval.channel_id = json["channel_id"];
     retval.channel_name = json["channel_name"];
     retval.code = json["code"];
+    if (!intp(json["emoticon_set"])) error("Expected integer");
     retval.emoticon_set = json["emoticon_set"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/priority/bug863.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/bug863.json/default/TopLevel.pmod
index 72a46ac..59366c3 100644
--- a/base/pike/test/inputs/json/priority/bug863.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/bug863.json/default/TopLevel.pmod
@@ -71,20 +71,27 @@ class PurpleTopLevel {
 PurpleTopLevel PurpleTopLevel_from_JSON(mixed json) {
     PurpleTopLevel retval = PurpleTopLevel();
 
+    if (!intp(json["ALIENLEVEL"])) error("Expected integer");
     retval.alienlevel = json["ALIENLEVEL"];
     retval.breed = Breed_from_JSON(json["BREED"]);
+    if (!intp(json["CHAR_DIMENSION"])) error("Expected integer");
     retval.char_dimension = json["CHAR_DIMENSION"];
+    if (!intp(json["CHAR_INSTANCE"])) error("Expected integer");
     retval.char_instance = json["CHAR_INSTANCE"];
     retval.defender_rank_title = json["DEFENDER_RANK_TITLE"];
     retval.firstname = Firstname_from_JSON(json["FIRSTNAME"]);
+    if (!intp(json["HEADID"])) error("Expected integer");
     retval.headid = json["HEADID"];
     retval.lastname = Lastname_from_JSON(json["LASTNAME"]);
+    if (!intp(json["LEVELX"])) error("Expected integer");
     retval.levelx = json["LEVELX"];
     retval.name = json["NAME"];
     retval.prof = json["PROF"];
     retval.prof_title = json["PROF_TITLE"];
+    if (!intp(json["PVPRATING"])) error("Expected integer");
     retval.pvprating = json["PVPRATING"];
     retval.pvptitle = Pvptitle_from_JSON(json["PVPTITLE"]);
+    if (!intp(json["RANK"])) error("Expected integer");
     retval.rank = json["RANK"];
     retval.rank_title = RankTitle_from_JSON(json["RANK_TITLE"]);
     retval.sex = Sex_from_JSON(json["SEX"]);
@@ -233,40 +240,68 @@ class FluffyTopLevel {
 FluffyTopLevel FluffyTopLevel_from_JSON(mixed json) {
     FluffyTopLevel retval = FluffyTopLevel();
 
+    if (!intp(json["ADVENTURERCOUNT"])) error("Expected integer");
     retval.adventurercount = json["ADVENTURERCOUNT"];
+    if (!intp(json["AGENTCOUNT"])) error("Expected integer");
     retval.agentcount = json["AGENTCOUNT"];
+    if (!intp(json["ATROXCOUNT"])) error("Expected integer");
     retval.atroxcount = json["ATROXCOUNT"];
     retval.avglvl = (float)json["AVGLVL"];
+    if (!intp(json["BTCOUNT"])) error("Expected integer");
     retval.btcount = json["BTCOUNT"];
     retval.description = json["DESCRIPTION"];
+    if (!intp(json["DOCTORCOUNT"])) error("Expected integer");
     retval.doctorcount = json["DOCTORCOUNT"];
+    if (!intp(json["ENFCOUNT"])) error("Expected integer");
     retval.enfcount = json["ENFCOUNT"];
+    if (!intp(json["ENGINEEERCOUNT"])) error("Expected integer");
     retval.engineeercount = json["ENGINEEERCOUNT"];
+    if (!intp(json["FEMALECOUNT"])) error("Expected integer");
     retval.femalecount = json["FEMALECOUNT"];
+    if (!intp(json["FIXERCOUNT"])) error("Expected integer");
     retval.fixercount = json["FIXERCOUNT"];
     retval.governingname = json["GOVERNINGNAME"];
     retval.history = json["HISTORY"];
+    if (!intp(json["KEEPERCOUNT"])) error("Expected integer");
     retval.keepercount = json["KEEPERCOUNT"];
+    if (!intp(json["MACOUNT"])) error("Expected integer");
     retval.macount = json["MACOUNT"];
+    if (!intp(json["MALECOUNT"])) error("Expected integer");
     retval.malecount = json["MALECOUNT"];
+    if (!intp(json["MAXLVL"])) error("Expected integer");
     retval.maxlvl = json["MAXLVL"];
+    if (!intp(json["METACOUNT"])) error("Expected integer");
     retval.metacount = json["METACOUNT"];
+    if (!intp(json["MINLVL"])) error("Expected integer");
     retval.minlvl = json["MINLVL"];
+    if (!intp(json["MONSTERCOUNT"])) error("Expected integer");
     retval.monstercount = json["MONSTERCOUNT"];
     retval.name = json["NAME"];
+    if (!intp(json["NANOCOUNT"])) error("Expected integer");
     retval.nanocount = json["NANOCOUNT"];
+    if (!intp(json["NANORACECOUNT"])) error("Expected integer");
     retval.nanoracecount = json["NANORACECOUNT"];
+    if (!intp(json["NEUTERCOUNT"])) error("Expected integer");
     retval.neutercount = json["NEUTERCOUNT"];
+    if (!intp(json["NUMMEMBERS"])) error("Expected integer");
     retval.nummembers = json["NUMMEMBERS"];
     retval.objective = json["OBJECTIVE"];
+    if (!intp(json["OPIFEXCOUNT"])) error("Expected integer");
     retval.opifexcount = json["OPIFEXCOUNT"];
+    if (!intp(json["ORG_DIMENSION"])) error("Expected integer");
     retval.org_dimension = json["ORG_DIMENSION"];
+    if (!intp(json["ORG_INSTANCE"])) error("Expected integer");
     retval.org_instance = json["ORG_INSTANCE"];
+    if (!intp(json["SHADECOUNT"])) error("Expected integer");
     retval.shadecount = json["SHADECOUNT"];
+    if (!intp(json["SIDE"])) error("Expected integer");
     retval.side = json["SIDE"];
     retval.side_name = json["SIDE_NAME"];
+    if (!intp(json["SOLIDERCOUNT"])) error("Expected integer");
     retval.solidercount = json["SOLIDERCOUNT"];
+    if (!intp(json["SOLITUSCOUNT"])) error("Expected integer");
     retval.solituscount = json["SOLITUSCOUNT"];
+    if (!intp(json["TRADERCOUNT"])) error("Expected integer");
     retval.tradercount = json["TRADERCOUNT"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/priority/coin-pairs.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/coin-pairs.json/default/TopLevel.pmod
index 6342c73..161ea29 100644
--- a/base/pike/test/inputs/json/priority/coin-pairs.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/coin-pairs.json/default/TopLevel.pmod
@@ -30,6 +30,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
     retval.pairs = json["pairs"];
+    if (!intp(json["server_time"])) error("Expected integer");
     retval.server_time = json["server_time"];
 
     return retval;
@@ -64,10 +65,14 @@ class Pair {
 Pair Pair_from_JSON(mixed json) {
     Pair retval = Pair();
 
+    if (!intp(json["decimal_places"])) error("Expected integer");
     retval.decimal_places = json["decimal_places"];
     retval.fee = (float)json["fee"];
+    if (!intp(json["hidden"])) error("Expected integer");
     retval.hidden = json["hidden"];
+    if (!intp(json["max_amount"])) error("Expected integer");
     retval.max_amount = json["max_amount"];
+    if (!intp(json["max_price"])) error("Expected integer");
     retval.max_price = json["max_price"];
     retval.min_amount = (float)json["min_amount"];
     retval.min_price = (float)json["min_price"];
diff --git a/base/pike/test/inputs/json/priority/combinations1.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/combinations1.json/default/TopLevel.pmod
index 278e463..b389feb 100644
--- a/base/pike/test/inputs/json/priority/combinations1.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/combinations1.json/default/TopLevel.pmod
@@ -115,6 +115,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.cerograph = json["cerograph"];
     retval.chemotherapeutics = json["chemotherapeutics"];
     retval.cimelia = json["cimelia"];
+    if (!intp(json["citrated"])) error("Expected integer");
     retval.citrated = json["citrated"];
     retval.clinodome = json["clinodome"];
     retval.coadjust = json["coadjust"];
@@ -369,6 +370,7 @@ CimeliaClass CimeliaClass_from_JSON(mixed json) {
     CimeliaClass retval = CimeliaClass();
 
     retval.catharticalness = (float)json["catharticalness"];
+    if (!intp(json["Chirotherium"])) error("Expected integer");
     retval.chirotherium = json["Chirotherium"];
     retval.disdiapason = json["disdiapason"];
     if (json["homocerc"] != Standards.JSON.true && json["homocerc"] != Standards.JSON.false) error("Expected bool");
@@ -1302,6 +1304,7 @@ Interacinar Interacinar_from_JSON(mixed json) {
     if (json["benefactorship"] != Standards.JSON.true && json["benefactorship"] != Standards.JSON.false) error("Expected bool");
     retval.benefactorship = json["benefactorship"];
     retval.triseriatim = json["triseriatim"];
+    if (!intp(json["tubbing"])) error("Expected integer");
     retval.tubbing = json["tubbing"];
     retval.untrimmed = json["untrimmed"];
 
diff --git a/base/pike/test/inputs/json/priority/combinations2.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/combinations2.json/default/TopLevel.pmod
index ab439b5..80b93d1 100644
--- a/base/pike/test/inputs/json/priority/combinations2.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/combinations2.json/default/TopLevel.pmod
@@ -309,6 +309,7 @@ Rebecca Rebecca_from_JSON(mixed json) {
     Rebecca retval = Rebecca();
 
     retval.catharticalness = (float)json["catharticalness"];
+    if (!intp(json["Chirotherium"])) error("Expected integer");
     retval.chirotherium = json["Chirotherium"];
     retval.disdiapason = json["disdiapason"];
     if (json["homocerc"] != Standards.JSON.true && json["homocerc"] != Standards.JSON.false) error("Expected bool");
diff --git a/base/pike/test/inputs/json/priority/combinations3.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/combinations3.json/default/TopLevel.pmod
index efcf5fb..1fd9e1e 100644
--- a/base/pike/test/inputs/json/priority/combinations3.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/combinations3.json/default/TopLevel.pmod
@@ -696,6 +696,7 @@ MonaziteClass MonaziteClass_from_JSON(mixed json) {
     MonaziteClass retval = MonaziteClass();
 
     retval.catharticalness = (float)json["catharticalness"];
+    if (!intp(json["Chirotherium"])) error("Expected integer");
     retval.chirotherium = json["Chirotherium"];
     retval.disdiapason = json["disdiapason"];
     if (json["homocerc"] != Standards.JSON.true && json["homocerc"] != Standards.JSON.false) error("Expected bool");
@@ -864,6 +865,7 @@ Noncontributing Noncontributing_from_JSON(mixed json) {
 
     retval.estevin = json["estevin"];
     retval.jolterhead = (float)json["jolterhead"];
+    if (!intp(json["sauternes"])) error("Expected integer");
     retval.sauternes = json["sauternes"];
     if (json["sparsely"] != Standards.JSON.true && json["sparsely"] != Standards.JSON.false) error("Expected bool");
     retval.sparsely = json["sparsely"];
diff --git a/base/pike/test/inputs/json/priority/combinations4.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/combinations4.json/default/TopLevel.pmod
index 9f3175f..eba89ba 100644
--- a/base/pike/test/inputs/json/priority/combinations4.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/combinations4.json/default/TopLevel.pmod
@@ -387,6 +387,7 @@ QuebrachineClass QuebrachineClass_from_JSON(mixed json) {
     QuebrachineClass retval = QuebrachineClass();
 
     retval.catharticalness = (float)json["catharticalness"];
+    if (!intp(json["Chirotherium"])) error("Expected integer");
     retval.chirotherium = json["Chirotherium"];
     retval.disdiapason = json["disdiapason"];
     if (json["homocerc"] != Standards.JSON.true && json["homocerc"] != Standards.JSON.false) error("Expected bool");
diff --git a/base/pike/test/inputs/json/priority/direct-recursive.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/direct-recursive.json/default/TopLevel.pmod
index 2ee8049..ee5a706 100644
--- a/base/pike/test/inputs/json/priority/direct-recursive.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/direct-recursive.json/default/TopLevel.pmod
@@ -38,6 +38,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.also = json["also"] == Val.null ? Val.null : TopLevel_from_JSON(json["also"]);
     if (json["bar"] != Standards.JSON.true && json["bar"] != Standards.JSON.false) error("Expected bool");
     retval.bar = json["bar"];
+    if (!intp(json["foo"])) error("Expected integer");
     retval.foo = json["foo"];
     retval.moo = (float)json["moo"];
     retval.quux = json["quux"];
diff --git a/base/pike/test/inputs/json/priority/identifiers.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/identifiers.json/default/TopLevel.pmod
index a013275..bc2960c 100644
--- a/base/pike/test/inputs/json/priority/identifiers.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/identifiers.json/default/TopLevel.pmod
@@ -41,6 +41,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.empty = Empty_from_JSON(json[""]);
     retval.foo = Foo_from_JSON(json["foo"]);
     retval.this_is_a_tough_one = ThisIsAToughOne_from_JSON(json["ThisIsA\U0001f61cTough\"\n\nOne"]);
+    if (!intp(json["!"])) error("Expected integer");
     retval.top_level = json["!"];
     retval.top_level_empty = EmptyClass_from_JSON(json["Empty"]);
 
@@ -62,6 +63,7 @@ class TopLevelBla {
 TopLevelBla TopLevelBla_from_JSON(mixed json) {
     TopLevelBla retval = TopLevelBla();
 
+    if (!intp(json["bar"])) error("Expected integer");
     retval.bar = json["bar"];
 
     return retval;
@@ -82,6 +84,7 @@ class Empty {
 Empty Empty_from_JSON(mixed json) {
     Empty retval = Empty();
 
+    if (!intp(json["x"])) error("Expected integer");
     retval.x = json["x"];
 
     return retval;
@@ -107,7 +110,9 @@ Foo Foo_from_JSON(mixed json) {
     Foo retval = Foo();
 
     retval.bla = FooBla_from_JSON(json["bla"]);
+    if (!intp(json["_"])) error("Expected integer");
     retval.empty = json["_"];
+    if (!intp(json["__"])) error("Expected integer");
     retval.foo = json["__"];
 
     return retval;
@@ -146,7 +151,9 @@ class ThisIsAToughOne {
 ThisIsAToughOne ThisIsAToughOne_from_JSON(mixed json) {
     ThisIsAToughOne retval = ThisIsAToughOne();
 
+    if (!intp(json["\n\n\n"])) error("Expected integer");
     retval.empty = json["\n\n\n"];
+    if (!intp(json["\""])) error("Expected integer");
     retval.this_is_a_tough_one = json["\""];
 
     return retval;
@@ -167,6 +174,7 @@ class EmptyClass {
 EmptyClass EmptyClass_from_JSON(mixed json) {
     EmptyClass retval = EmptyClass();
 
+    if (!intp(json["y"])) error("Expected integer");
     retval.y = json["y"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/priority/keywords.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/keywords.json/default/TopLevel.pmod
index e55b89e..a3ccb0e 100644
--- a/base/pike/test/inputs/json/priority/keywords.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/keywords.json/default/TopLevel.pmod
@@ -37,6 +37,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["dummy"])) error("Expected integer");
     retval.dummy = json["dummy"];
     retval.obj1 = Obj1_from_JSON(json["obj1"]);
     retval.obj2 = Obj2_from_JSON(json["obj2"]);
@@ -243,6 +244,7 @@ Obj1 Obj1_from_JSON(mixed json) {
     retval.declare = Declare_from_JSON(json["declare"]);
     retval.decltype = Decltype_from_JSON(json["decltype"]);
     retval.decode_string = DecodeString_from_JSON(json["decode_string"]);
+    if (!intp(json["dummy"])) error("Expected integer");
     retval.dummy = json["dummy"];
     retval.empty = Empty_from_JSON(json["_"]);
     retval.imaginery = Imaginery_from_JSON(json["_Imaginery"]);
@@ -277,6 +279,7 @@ class Abstract {
 Abstract Abstract_from_JSON(mixed json) {
     Abstract retval = Abstract();
 
+    if (!intp(json["abstract"])) error("Expected integer");
     retval.abstract = json["abstract"];
 
     return retval;
@@ -297,6 +300,7 @@ class Alignas {
 Alignas Alignas_from_JSON(mixed json) {
     Alignas retval = Alignas();
 
+    if (!intp(json["alignas"])) error("Expected integer");
     retval.alignas = json["alignas"];
 
     return retval;
@@ -317,6 +321,7 @@ class Alignof {
 Alignof Alignof_from_JSON(mixed json) {
     Alignof retval = Alignof();
 
+    if (!intp(json["alignof"])) error("Expected integer");
     retval.alignof = json["alignof"];
 
     return retval;
@@ -337,6 +342,7 @@ class And {
 And And_from_JSON(mixed json) {
     And retval = And();
 
+    if (!intp(json["and"])) error("Expected integer");
     retval.and = json["and"];
 
     return retval;
@@ -357,6 +363,7 @@ class AndEq {
 AndEq AndEq_from_JSON(mixed json) {
     AndEq retval = AndEq();
 
+    if (!intp(json["and_eq"])) error("Expected integer");
     retval.and_eq = json["and_eq"];
 
     return retval;
@@ -377,6 +384,7 @@ class Any {
 Any Any_from_JSON(mixed json) {
     Any retval = Any();
 
+    if (!intp(json["Any"])) error("Expected integer");
     retval.any = json["Any"];
 
     return retval;
@@ -397,6 +405,7 @@ class As {
 As As_from_JSON(mixed json) {
     As retval = As();
 
+    if (!intp(json["as"])) error("Expected integer");
     retval.as = json["as"];
 
     return retval;
@@ -417,6 +426,7 @@ class Asm {
 Asm Asm_from_JSON(mixed json) {
     Asm retval = Asm();
 
+    if (!intp(json["asm"])) error("Expected integer");
     retval.asm = json["asm"];
 
     return retval;
@@ -437,6 +447,7 @@ class Assert {
 Assert Assert_from_JSON(mixed json) {
     Assert retval = Assert();
 
+    if (!intp(json["assert"])) error("Expected integer");
     retval.assert = json["assert"];
 
     return retval;
@@ -457,6 +468,7 @@ class Associatedtype {
 Associatedtype Associatedtype_from_JSON(mixed json) {
     Associatedtype retval = Associatedtype();
 
+    if (!intp(json["associatedtype"])) error("Expected integer");
     retval.associatedtype = json["associatedtype"];
 
     return retval;
@@ -477,6 +489,7 @@ class Associativity {
 Associativity Associativity_from_JSON(mixed json) {
     Associativity retval = Associativity();
 
+    if (!intp(json["associativity"])) error("Expected integer");
     retval.associativity = json["associativity"];
 
     return retval;
@@ -497,6 +510,7 @@ class Async {
 Async Async_from_JSON(mixed json) {
     Async retval = Async();
 
+    if (!intp(json["async"])) error("Expected integer");
     retval.async = json["async"];
 
     return retval;
@@ -517,6 +531,7 @@ class Atomic {
 Atomic Atomic_from_JSON(mixed json) {
     Atomic retval = Atomic();
 
+    if (!intp(json["atomic"])) error("Expected integer");
     retval.atomic = json["atomic"];
 
     return retval;
@@ -537,6 +552,7 @@ class AtomicCancel {
 AtomicCancel AtomicCancel_from_JSON(mixed json) {
     AtomicCancel retval = AtomicCancel();
 
+    if (!intp(json["atomic_cancel"])) error("Expected integer");
     retval.atomic_cancel = json["atomic_cancel"];
 
     return retval;
@@ -557,6 +573,7 @@ class AtomicCommit {
 AtomicCommit AtomicCommit_from_JSON(mixed json) {
     AtomicCommit retval = AtomicCommit();
 
+    if (!intp(json["atomic_commit"])) error("Expected integer");
     retval.atomic_commit = json["atomic_commit"];
 
     return retval;
@@ -577,6 +594,7 @@ class AtomicNoexcept {
 AtomicNoexcept AtomicNoexcept_from_JSON(mixed json) {
     AtomicNoexcept retval = AtomicNoexcept();
 
+    if (!intp(json["atomic_noexcept"])) error("Expected integer");
     retval.atomic_noexcept = json["atomic_noexcept"];
 
     return retval;
@@ -597,6 +615,7 @@ class Await {
 Await Await_from_JSON(mixed json) {
     Await retval = Await();
 
+    if (!intp(json["await"])) error("Expected integer");
     retval.await = json["await"];
 
     return retval;
@@ -617,6 +636,7 @@ class Base {
 Base Base_from_JSON(mixed json) {
     Base retval = Base();
 
+    if (!intp(json["base"])) error("Expected integer");
     retval.base = json["base"];
 
     return retval;
@@ -637,6 +657,7 @@ class Bitand {
 Bitand Bitand_from_JSON(mixed json) {
     Bitand retval = Bitand();
 
+    if (!intp(json["bitand"])) error("Expected integer");
     retval.bitand = json["bitand"];
 
     return retval;
@@ -657,6 +678,7 @@ class Bitor {
 Bitor Bitor_from_JSON(mixed json) {
     Bitor retval = Bitor();
 
+    if (!intp(json["bitor"])) error("Expected integer");
     retval.bitor = json["bitor"];
 
     return retval;
@@ -677,6 +699,7 @@ class Bool {
 Bool Bool_from_JSON(mixed json) {
     Bool retval = Bool();
 
+    if (!intp(json["BOOL"])) error("Expected integer");
     retval.bool = json["BOOL"];
 
     return retval;
@@ -697,6 +720,7 @@ class Boolean {
 Boolean Boolean_from_JSON(mixed json) {
     Boolean retval = Boolean();
 
+    if (!intp(json["boolean"])) error("Expected integer");
     retval.boolean = json["boolean"];
 
     return retval;
@@ -717,6 +741,7 @@ class Bycopy {
 Bycopy Bycopy_from_JSON(mixed json) {
     Bycopy retval = Bycopy();
 
+    if (!intp(json["bycopy"])) error("Expected integer");
     retval.bycopy = json["bycopy"];
 
     return retval;
@@ -737,6 +762,7 @@ class Byref {
 Byref Byref_from_JSON(mixed json) {
     Byref retval = Byref();
 
+    if (!intp(json["byref"])) error("Expected integer");
     retval.byref = json["byref"];
 
     return retval;
@@ -757,6 +783,7 @@ class Byte {
 Byte Byte_from_JSON(mixed json) {
     Byte retval = Byte();
 
+    if (!intp(json["byte"])) error("Expected integer");
     retval.byte = json["byte"];
 
     return retval;
@@ -777,6 +804,7 @@ class Chan {
 Chan Chan_from_JSON(mixed json) {
     Chan retval = Chan();
 
+    if (!intp(json["chan"])) error("Expected integer");
     retval.chan = json["chan"];
 
     return retval;
@@ -797,6 +825,7 @@ class Char {
 Char Char_from_JSON(mixed json) {
     Char retval = Char();
 
+    if (!intp(json["char"])) error("Expected integer");
     retval.char = json["char"];
 
     return retval;
@@ -817,6 +846,7 @@ class Char16T {
 Char16T Char16T_from_JSON(mixed json) {
     Char16T retval = Char16T();
 
+    if (!intp(json["char16_t"])) error("Expected integer");
     retval.char16_t = json["char16_t"];
 
     return retval;
@@ -837,6 +867,7 @@ class Char32T {
 Char32T Char32T_from_JSON(mixed json) {
     Char32T retval = Char32T();
 
+    if (!intp(json["char32_t"])) error("Expected integer");
     retval.char32_t = json["char32_t"];
 
     return retval;
@@ -857,6 +888,7 @@ class Checked {
 Checked Checked_from_JSON(mixed json) {
     Checked retval = Checked();
 
+    if (!intp(json["checked"])) error("Expected integer");
     retval.checked = json["checked"];
 
     return retval;
@@ -877,6 +909,7 @@ class Clone {
 Clone Clone_from_JSON(mixed json) {
     Clone retval = Clone();
 
+    if (!intp(json["clone"])) error("Expected integer");
     retval.clone = json["clone"];
 
     return retval;
@@ -897,6 +930,7 @@ class CoAwait {
 CoAwait CoAwait_from_JSON(mixed json) {
     CoAwait retval = CoAwait();
 
+    if (!intp(json["co_await"])) error("Expected integer");
     retval.co_await = json["co_await"];
 
     return retval;
@@ -917,6 +951,7 @@ class CoReturn {
 CoReturn CoReturn_from_JSON(mixed json) {
     CoReturn retval = CoReturn();
 
+    if (!intp(json["co_return"])) error("Expected integer");
     retval.co_return = json["co_return"];
 
     return retval;
@@ -937,6 +972,7 @@ class CoYield {
 CoYield CoYield_from_JSON(mixed json) {
     CoYield retval = CoYield();
 
+    if (!intp(json["co_yield"])) error("Expected integer");
     retval.co_yield = json["co_yield"];
 
     return retval;
@@ -957,6 +993,7 @@ class Compl {
 Compl Compl_from_JSON(mixed json) {
     Compl retval = Compl();
 
+    if (!intp(json["compl"])) error("Expected integer");
     retval.compl = json["compl"];
 
     return retval;
@@ -977,6 +1014,7 @@ class Complex {
 Complex Complex_from_JSON(mixed json) {
     Complex retval = Complex();
 
+    if (!intp(json["_Complex"])) error("Expected integer");
     retval.complex = json["_Complex"];
 
     return retval;
@@ -997,6 +1035,7 @@ class Concept {
 Concept Concept_from_JSON(mixed json) {
     Concept retval = Concept();
 
+    if (!intp(json["concept"])) error("Expected integer");
     retval.concept = json["concept"];
 
     return retval;
@@ -1017,6 +1056,7 @@ class Console {
 Console Console_from_JSON(mixed json) {
     Console retval = Console();
 
+    if (!intp(json["console"])) error("Expected integer");
     retval.console = json["console"];
 
     return retval;
@@ -1037,6 +1077,7 @@ class ConstCast {
 ConstCast ConstCast_from_JSON(mixed json) {
     ConstCast retval = ConstCast();
 
+    if (!intp(json["const_cast"])) error("Expected integer");
     retval.const_cast = json["const_cast"];
 
     return retval;
@@ -1057,6 +1098,7 @@ class Constexpr {
 Constexpr Constexpr_from_JSON(mixed json) {
     Constexpr retval = Constexpr();
 
+    if (!intp(json["constexpr"])) error("Expected integer");
     retval.constexpr = json["constexpr"];
 
     return retval;
@@ -1077,6 +1119,7 @@ class Constructor {
 Constructor Constructor_from_JSON(mixed json) {
     Constructor retval = Constructor();
 
+    if (!intp(json["constructor"])) error("Expected integer");
     retval.constructor = json["constructor"];
 
     return retval;
@@ -1097,6 +1140,7 @@ class Convenience {
 Convenience Convenience_from_JSON(mixed json) {
     Convenience retval = Convenience();
 
+    if (!intp(json["convenience"])) error("Expected integer");
     retval.convenience = json["convenience"];
 
     return retval;
@@ -1117,6 +1161,7 @@ class Convert {
 Convert Convert_from_JSON(mixed json) {
     Convert retval = Convert();
 
+    if (!intp(json["convert"])) error("Expected integer");
     retval.convert = json["convert"];
 
     return retval;
@@ -1137,6 +1182,7 @@ class Converter {
 Converter Converter_from_JSON(mixed json) {
     Converter retval = Converter();
 
+    if (!intp(json["converter"])) error("Expected integer");
     retval.converter = json["converter"];
 
     return retval;
@@ -1157,6 +1203,7 @@ class Date {
 Date Date_from_JSON(mixed json) {
     Date retval = Date();
 
+    if (!intp(json["date"])) error("Expected integer");
     retval.date = json["date"];
 
     return retval;
@@ -1177,6 +1224,7 @@ class DateParseHandling {
 DateParseHandling DateParseHandling_from_JSON(mixed json) {
     DateParseHandling retval = DateParseHandling();
 
+    if (!intp(json["date_parse_handling"])) error("Expected integer");
     retval.date_parse_handling = json["date_parse_handling"];
 
     return retval;
@@ -1197,6 +1245,7 @@ class Debugger {
 Debugger Debugger_from_JSON(mixed json) {
     Debugger retval = Debugger();
 
+    if (!intp(json["debugger"])) error("Expected integer");
     retval.debugger = json["debugger"];
 
     return retval;
@@ -1217,6 +1266,7 @@ class Decimal {
 Decimal Decimal_from_JSON(mixed json) {
     Decimal retval = Decimal();
 
+    if (!intp(json["decimal"])) error("Expected integer");
     retval.decimal = json["decimal"];
 
     return retval;
@@ -1237,6 +1287,7 @@ class Declare {
 Declare Declare_from_JSON(mixed json) {
     Declare retval = Declare();
 
+    if (!intp(json["declare"])) error("Expected integer");
     retval.declare = json["declare"];
 
     return retval;
@@ -1257,6 +1308,7 @@ class Decltype {
 Decltype Decltype_from_JSON(mixed json) {
     Decltype retval = Decltype();
 
+    if (!intp(json["decltype"])) error("Expected integer");
     retval.decltype = json["decltype"];
 
     return retval;
@@ -1277,6 +1329,7 @@ class DecodeString {
 DecodeString DecodeString_from_JSON(mixed json) {
     DecodeString retval = DecodeString();
 
+    if (!intp(json["decode_string"])) error("Expected integer");
     retval.decode_string = json["decode_string"];
 
     return retval;
@@ -1297,6 +1350,7 @@ class Empty {
 Empty Empty_from_JSON(mixed json) {
     Empty retval = Empty();
 
+    if (!intp(json["_"])) error("Expected integer");
     retval.empty = json["_"];
 
     return retval;
@@ -1317,6 +1371,7 @@ class Imaginery {
 Imaginery Imaginery_from_JSON(mixed json) {
     Imaginery retval = Imaginery();
 
+    if (!intp(json["_Imaginery"])) error("Expected integer");
     retval.imaginery = json["_Imaginery"];
 
     return retval;
@@ -1337,6 +1392,7 @@ class AnyClass {
 AnyClass AnyClass_from_JSON(mixed json) {
     AnyClass retval = AnyClass();
 
+    if (!intp(json["any"])) error("Expected integer");
     retval.any = json["any"];
 
     return retval;
@@ -1357,6 +1413,7 @@ class Array {
 Array Array_from_JSON(mixed json) {
     Array retval = Array();
 
+    if (!intp(json["array"])) error("Expected integer");
     retval.array_array = json["array"];
 
     return retval;
@@ -1377,6 +1434,7 @@ class Auto {
 Auto Auto_from_JSON(mixed json) {
     Auto retval = Auto();
 
+    if (!intp(json["auto"])) error("Expected integer");
     retval.auto_auto = json["auto"];
 
     return retval;
@@ -1397,6 +1455,7 @@ class BoolClass {
 BoolClass BoolClass_from_JSON(mixed json) {
     BoolClass retval = BoolClass();
 
+    if (!intp(json["_Bool"])) error("Expected integer");
     retval.bool = json["_Bool"];
 
     return retval;
@@ -1417,6 +1476,7 @@ class Break {
 Break Break_from_JSON(mixed json) {
     Break retval = Break();
 
+    if (!intp(json["break"])) error("Expected integer");
     retval.break_break = json["break"];
 
     return retval;
@@ -1437,6 +1497,7 @@ class Case {
 Case Case_from_JSON(mixed json) {
     Case retval = Case();
 
+    if (!intp(json["case"])) error("Expected integer");
     retval.case_case = json["case"];
 
     return retval;
@@ -1457,6 +1518,7 @@ class Catch {
 Catch Catch_from_JSON(mixed json) {
     Catch retval = Catch();
 
+    if (!intp(json["catch"])) error("Expected integer");
     retval.catch_catch = json["catch"];
 
     return retval;
@@ -1477,6 +1539,7 @@ class Class {
 Class Class_from_JSON(mixed json) {
     Class retval = Class();
 
+    if (!intp(json["Class"])) error("Expected integer");
     retval.class_class = json["Class"];
 
     return retval;
@@ -1497,6 +1560,7 @@ class Const {
 Const Const_from_JSON(mixed json) {
     Const retval = Const();
 
+    if (!intp(json["const"])) error("Expected integer");
     retval.const_const = json["const"];
 
     return retval;
@@ -1517,6 +1581,7 @@ class Continue {
 Continue Continue_from_JSON(mixed json) {
     Continue retval = Continue();
 
+    if (!intp(json["continue"])) error("Expected integer");
     retval.continue_continue = json["continue"];
 
     return retval;
@@ -1537,6 +1602,7 @@ class Obj1Bool {
 Obj1Bool Obj1Bool_from_JSON(mixed json) {
     Obj1Bool retval = Obj1Bool();
 
+    if (!intp(json["bool"])) error("Expected integer");
     retval.bool = json["bool"];
 
     return retval;
@@ -1557,6 +1623,7 @@ class ClassClass {
 ClassClass ClassClass_from_JSON(mixed json) {
     ClassClass retval = ClassClass();
 
+    if (!intp(json["class"])) error("Expected integer");
     retval.class_class = json["class"];
 
     return retval;
@@ -1717,6 +1784,7 @@ Obj2 Obj2_from_JSON(mixed json) {
     retval.dictionary = Dictionary_from_JSON(json["dictionary"]);
     retval.did_set = DidSet_from_JSON(json["didSet"]);
     retval.double = Double_from_JSON(json["double"]);
+    if (!intp(json["dummy"])) error("Expected integer");
     retval.dummy = json["dummy"];
     retval.dynamic = Dynamic_from_JSON(json["dynamic"]);
     retval.dynamic_cast = DynamicCast_from_JSON(json["dynamic_cast"]);
@@ -1792,6 +1860,7 @@ class Def {
 Def Def_from_JSON(mixed json) {
     Def retval = Def();
 
+    if (!intp(json["def"])) error("Expected integer");
     retval.def = json["def"];
 
     return retval;
@@ -1812,6 +1881,7 @@ class Defer {
 Defer Defer_from_JSON(mixed json) {
     Defer retval = Defer();
 
+    if (!intp(json["defer"])) error("Expected integer");
     retval.defer = json["defer"];
 
     return retval;
@@ -1832,6 +1902,7 @@ class Deinit {
 Deinit Deinit_from_JSON(mixed json) {
     Deinit retval = Deinit();
 
+    if (!intp(json["deinit"])) error("Expected integer");
     retval.deinit = json["deinit"];
 
     return retval;
@@ -1852,6 +1923,7 @@ class Del {
 Del Del_from_JSON(mixed json) {
     Del retval = Del();
 
+    if (!intp(json["del"])) error("Expected integer");
     retval.del = json["del"];
 
     return retval;
@@ -1872,6 +1944,7 @@ class Delegate {
 Delegate Delegate_from_JSON(mixed json) {
     Delegate retval = Delegate();
 
+    if (!intp(json["delegate"])) error("Expected integer");
     retval.delegate = json["delegate"];
 
     return retval;
@@ -1892,6 +1965,7 @@ class Delete {
 Delete Delete_from_JSON(mixed json) {
     Delete retval = Delete();
 
+    if (!intp(json["delete"])) error("Expected integer");
     retval.delete = json["delete"];
 
     return retval;
@@ -1912,6 +1986,7 @@ class Dict {
 Dict Dict_from_JSON(mixed json) {
     Dict retval = Dict();
 
+    if (!intp(json["dict"])) error("Expected integer");
     retval.dict = json["dict"];
 
     return retval;
@@ -1932,6 +2007,7 @@ class Dictionary {
 Dictionary Dictionary_from_JSON(mixed json) {
     Dictionary retval = Dictionary();
 
+    if (!intp(json["dictionary"])) error("Expected integer");
     retval.dictionary = json["dictionary"];
 
     return retval;
@@ -1952,6 +2028,7 @@ class DidSet {
 DidSet DidSet_from_JSON(mixed json) {
     DidSet retval = DidSet();
 
+    if (!intp(json["didSet"])) error("Expected integer");
     retval.did_set = json["didSet"];
 
     return retval;
@@ -1972,6 +2049,7 @@ class Double {
 Double Double_from_JSON(mixed json) {
     Double retval = Double();
 
+    if (!intp(json["double"])) error("Expected integer");
     retval.double = json["double"];
 
     return retval;
@@ -1992,6 +2070,7 @@ class Dynamic {
 Dynamic Dynamic_from_JSON(mixed json) {
     Dynamic retval = Dynamic();
 
+    if (!intp(json["dynamic"])) error("Expected integer");
     retval.dynamic = json["dynamic"];
 
     return retval;
@@ -2012,6 +2091,7 @@ class DynamicCast {
 DynamicCast DynamicCast_from_JSON(mixed json) {
     DynamicCast retval = DynamicCast();
 
+    if (!intp(json["dynamic_cast"])) error("Expected integer");
     retval.dynamic_cast = json["dynamic_cast"];
 
     return retval;
@@ -2032,6 +2112,7 @@ class Elif {
 Elif Elif_from_JSON(mixed json) {
     Elif retval = Elif();
 
+    if (!intp(json["elif"])) error("Expected integer");
     retval.elif = json["elif"];
 
     return retval;
@@ -2052,6 +2133,7 @@ class EncodeQuickType {
 EncodeQuickType EncodeQuickType_from_JSON(mixed json) {
     EncodeQuickType retval = EncodeQuickType();
 
+    if (!intp(json["encode_quick_type"])) error("Expected integer");
     retval.encode_quick_type = json["encode_quick_type"];
 
     return retval;
@@ -2072,6 +2154,7 @@ class EqualityContract {
 EqualityContract EqualityContract_from_JSON(mixed json) {
     EqualityContract retval = EqualityContract();
 
+    if (!intp(json["equalityContract"])) error("Expected integer");
     retval.equality_contract = json["equalityContract"];
 
     return retval;
@@ -2092,6 +2175,7 @@ class Event {
 Event Event_from_JSON(mixed json) {
     Event retval = Event();
 
+    if (!intp(json["event"])) error("Expected integer");
     retval.event = json["event"];
 
     return retval;
@@ -2112,6 +2196,7 @@ class Except {
 Except Except_from_JSON(mixed json) {
     Except retval = Except();
 
+    if (!intp(json["except"])) error("Expected integer");
     retval.except = json["except"];
 
     return retval;
@@ -2132,6 +2217,7 @@ class Exception {
 Exception Exception_from_JSON(mixed json) {
     Exception retval = Exception();
 
+    if (!intp(json["exception"])) error("Expected integer");
     retval.exception = json["exception"];
 
     return retval;
@@ -2152,6 +2238,7 @@ class Explicit {
 Explicit Explicit_from_JSON(mixed json) {
     Explicit retval = Explicit();
 
+    if (!intp(json["explicit"])) error("Expected integer");
     retval.explicit = json["explicit"];
 
     return retval;
@@ -2172,6 +2259,7 @@ class Export {
 Export Export_from_JSON(mixed json) {
     Export retval = Export();
 
+    if (!intp(json["export"])) error("Expected integer");
     retval.export = json["export"];
 
     return retval;
@@ -2192,6 +2280,7 @@ class Exposing {
 Exposing Exposing_from_JSON(mixed json) {
     Exposing retval = Exposing();
 
+    if (!intp(json["exposing"])) error("Expected integer");
     retval.exposing = json["exposing"];
 
     return retval;
@@ -2212,6 +2301,7 @@ class Extends {
 Extends Extends_from_JSON(mixed json) {
     Extends retval = Extends();
 
+    if (!intp(json["extends"])) error("Expected integer");
     retval.extends = json["extends"];
 
     return retval;
@@ -2232,6 +2322,7 @@ class Extension {
 Extension Extension_from_JSON(mixed json) {
     Extension retval = Extension();
 
+    if (!intp(json["extension"])) error("Expected integer");
     retval.extension = json["extension"];
 
     return retval;
@@ -2252,6 +2343,7 @@ class Fallthrough {
 Fallthrough Fallthrough_from_JSON(mixed json) {
     Fallthrough retval = Fallthrough();
 
+    if (!intp(json["fallthrough"])) error("Expected integer");
     retval.fallthrough = json["fallthrough"];
 
     return retval;
@@ -2272,6 +2364,7 @@ class False {
 False False_from_JSON(mixed json) {
     False retval = False();
 
+    if (!intp(json["False"])) error("Expected integer");
     retval.false = json["False"];
 
     return retval;
@@ -2292,6 +2385,7 @@ class Fileprivate {
 Fileprivate Fileprivate_from_JSON(mixed json) {
     Fileprivate retval = Fileprivate();
 
+    if (!intp(json["fileprivate"])) error("Expected integer");
     retval.fileprivate = json["fileprivate"];
 
     return retval;
@@ -2312,6 +2406,7 @@ class Finally {
 Finally Finally_from_JSON(mixed json) {
     Finally retval = Finally();
 
+    if (!intp(json["finally"])) error("Expected integer");
     retval.finally = json["finally"];
 
     return retval;
@@ -2332,6 +2427,7 @@ class Fixed {
 Fixed Fixed_from_JSON(mixed json) {
     Fixed retval = Fixed();
 
+    if (!intp(json["fixed"])) error("Expected integer");
     retval.fixed = json["fixed"];
 
     return retval;
@@ -2352,6 +2448,7 @@ class Friend {
 Friend Friend_from_JSON(mixed json) {
     Friend retval = Friend();
 
+    if (!intp(json["friend"])) error("Expected integer");
     retval.friend = json["friend"];
 
     return retval;
@@ -2372,6 +2469,7 @@ class From {
 From From_from_JSON(mixed json) {
     From retval = From();
 
+    if (!intp(json["from"])) error("Expected integer");
     retval.from = json["from"];
 
     return retval;
@@ -2392,6 +2490,7 @@ class FromJson {
 FromJson FromJson_from_JSON(mixed json) {
     FromJson retval = FromJson();
 
+    if (!intp(json["from_json"])) error("Expected integer");
     retval.from_json = json["from_json"];
 
     return retval;
@@ -2412,6 +2511,7 @@ class Func {
 Func Func_from_JSON(mixed json) {
     Func retval = Func();
 
+    if (!intp(json["func"])) error("Expected integer");
     retval.func = json["func"];
 
     return retval;
@@ -2432,6 +2532,7 @@ class Get {
 Get Get_from_JSON(mixed json) {
     Get retval = Get();
 
+    if (!intp(json["get"])) error("Expected integer");
     retval.get = json["get"];
 
     return retval;
@@ -2452,6 +2553,7 @@ class Go {
 Go Go_from_JSON(mixed json) {
     Go retval = Go();
 
+    if (!intp(json["go"])) error("Expected integer");
     retval.go = json["go"];
 
     return retval;
@@ -2472,6 +2574,7 @@ class Goto {
 Goto Goto_from_JSON(mixed json) {
     Goto retval = Goto();
 
+    if (!intp(json["goto"])) error("Expected integer");
     retval.goto = json["goto"];
 
     return retval;
@@ -2492,6 +2595,7 @@ class Guard {
 Guard Guard_from_JSON(mixed json) {
     Guard retval = Guard();
 
+    if (!intp(json["guard"])) error("Expected integer");
     retval.guard = json["guard"];
 
     return retval;
@@ -2512,6 +2616,7 @@ class HasOwnProperty {
 HasOwnProperty HasOwnProperty_from_JSON(mixed json) {
     HasOwnProperty retval = HasOwnProperty();
 
+    if (!intp(json["hasOwnProperty"])) error("Expected integer");
     retval.has_own_property = json["hasOwnProperty"];
 
     return retval;
@@ -2532,6 +2637,7 @@ class Id {
 Id Id_from_JSON(mixed json) {
     Id retval = Id();
 
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
 
     return retval;
@@ -2552,6 +2658,7 @@ class Imp {
 Imp Imp_from_JSON(mixed json) {
     Imp retval = Imp();
 
+    if (!intp(json["IMP"])) error("Expected integer");
     retval.imp = json["IMP"];
 
     return retval;
@@ -2572,6 +2679,7 @@ class Implements {
 Implements Implements_from_JSON(mixed json) {
     Implements retval = Implements();
 
+    if (!intp(json["implements"])) error("Expected integer");
     retval.implements = json["implements"];
 
     return retval;
@@ -2592,6 +2700,7 @@ class Implicit {
 Implicit Implicit_from_JSON(mixed json) {
     Implicit retval = Implicit();
 
+    if (!intp(json["implicit"])) error("Expected integer");
     retval.implicit = json["implicit"];
 
     return retval;
@@ -2612,6 +2721,7 @@ class In {
 In In_from_JSON(mixed json) {
     In retval = In();
 
+    if (!intp(json["in"])) error("Expected integer");
     retval.in = json["in"];
 
     return retval;
@@ -2632,6 +2742,7 @@ class Indirect {
 Indirect Indirect_from_JSON(mixed json) {
     Indirect retval = Indirect();
 
+    if (!intp(json["indirect"])) error("Expected integer");
     retval.indirect = json["indirect"];
 
     return retval;
@@ -2652,6 +2763,7 @@ class Infix {
 Infix Infix_from_JSON(mixed json) {
     Infix retval = Infix();
 
+    if (!intp(json["infix"])) error("Expected integer");
     retval.infix = json["infix"];
 
     return retval;
@@ -2672,6 +2784,7 @@ class Init {
 Init Init_from_JSON(mixed json) {
     Init retval = Init();
 
+    if (!intp(json["init"])) error("Expected integer");
     retval.init = json["init"];
 
     return retval;
@@ -2692,6 +2805,7 @@ class Inout {
 Inout Inout_from_JSON(mixed json) {
     Inout retval = Inout();
 
+    if (!intp(json["inout"])) error("Expected integer");
     retval.inout = json["inout"];
 
     return retval;
@@ -2712,6 +2826,7 @@ class Instanceof {
 Instanceof Instanceof_from_JSON(mixed json) {
     Instanceof retval = Instanceof();
 
+    if (!intp(json["instanceof"])) error("Expected integer");
     retval.instanceof = json["instanceof"];
 
     return retval;
@@ -2732,6 +2847,7 @@ class Interface {
 Interface Interface_from_JSON(mixed json) {
     Interface retval = Interface();
 
+    if (!intp(json["interface"])) error("Expected integer");
     retval.interface = json["interface"];
 
     return retval;
@@ -2752,6 +2868,7 @@ class Internal {
 Internal Internal_from_JSON(mixed json) {
     Internal retval = Internal();
 
+    if (!intp(json["internal"])) error("Expected integer");
     retval.internal = json["internal"];
 
     return retval;
@@ -2772,6 +2889,7 @@ class Default {
 Default Default_from_JSON(mixed json) {
     Default retval = Default();
 
+    if (!intp(json["default"])) error("Expected integer");
     retval.default_default = json["default"];
 
     return retval;
@@ -2792,6 +2910,7 @@ class Do {
 Do Do_from_JSON(mixed json) {
     Do retval = Do();
 
+    if (!intp(json["do"])) error("Expected integer");
     retval.do_do = json["do"];
 
     return retval;
@@ -2812,6 +2931,7 @@ class Else {
 Else Else_from_JSON(mixed json) {
     Else retval = Else();
 
+    if (!intp(json["else"])) error("Expected integer");
     retval.else_else = json["else"];
 
     return retval;
@@ -2832,6 +2952,7 @@ class Enum {
 Enum Enum_from_JSON(mixed json) {
     Enum retval = Enum();
 
+    if (!intp(json["enum"])) error("Expected integer");
     retval.enum_enum = json["enum"];
 
     return retval;
@@ -2852,6 +2973,7 @@ class Extern {
 Extern Extern_from_JSON(mixed json) {
     Extern retval = Extern();
 
+    if (!intp(json["extern"])) error("Expected integer");
     retval.extern_extern = json["extern"];
 
     return retval;
@@ -2872,6 +2994,7 @@ class FalseClass {
 FalseClass FalseClass_from_JSON(mixed json) {
     FalseClass retval = FalseClass();
 
+    if (!intp(json["false"])) error("Expected integer");
     retval.false = json["false"];
 
     return retval;
@@ -2892,6 +3015,7 @@ class Final {
 Final Final_from_JSON(mixed json) {
     Final retval = Final();
 
+    if (!intp(json["final"])) error("Expected integer");
     retval.final_final = json["final"];
 
     return retval;
@@ -2912,6 +3036,7 @@ class Float {
 Float Float_from_JSON(mixed json) {
     Float retval = Float();
 
+    if (!intp(json["float"])) error("Expected integer");
     retval.float_float = json["float"];
 
     return retval;
@@ -2932,6 +3057,7 @@ class For {
 For For_from_JSON(mixed json) {
     For retval = For();
 
+    if (!intp(json["for"])) error("Expected integer");
     retval.for_for = json["for"];
 
     return retval;
@@ -2952,6 +3078,7 @@ class Foreach {
 Foreach Foreach_from_JSON(mixed json) {
     Foreach retval = Foreach();
 
+    if (!intp(json["foreach"])) error("Expected integer");
     retval.foreach_foreach = json["foreach"];
 
     return retval;
@@ -2972,6 +3099,7 @@ class Function {
 Function Function_from_JSON(mixed json) {
     Function retval = Function();
 
+    if (!intp(json["function"])) error("Expected integer");
     retval.function_function = json["function"];
 
     return retval;
@@ -2992,6 +3120,7 @@ class Global {
 Global Global_from_JSON(mixed json) {
     Global retval = Global();
 
+    if (!intp(json["global"])) error("Expected integer");
     retval.global_global = json["global"];
 
     return retval;
@@ -3012,6 +3141,7 @@ class If {
 If If_from_JSON(mixed json) {
     If retval = If();
 
+    if (!intp(json["if"])) error("Expected integer");
     retval.if_if = json["if"];
 
     return retval;
@@ -3032,6 +3162,7 @@ class Import {
 Import Import_from_JSON(mixed json) {
     Import retval = Import();
 
+    if (!intp(json["import"])) error("Expected integer");
     retval.import_import = json["import"];
 
     return retval;
@@ -3052,6 +3183,7 @@ class Inline {
 Inline Inline_from_JSON(mixed json) {
     Inline retval = Inline();
 
+    if (!intp(json["inline"])) error("Expected integer");
     retval.inline_inline = json["inline"];
 
     return retval;
@@ -3072,6 +3204,7 @@ class Int {
 Int Int_from_JSON(mixed json) {
     Int retval = Int();
 
+    if (!intp(json["int"])) error("Expected integer");
     retval.int_int = json["int"];
 
     return retval;
@@ -3222,6 +3355,7 @@ class Obj3 {
 Obj3 Obj3_from_JSON(mixed json) {
     Obj3 retval = Obj3();
 
+    if (!intp(json["dummy"])) error("Expected integer");
     retval.dummy = json["dummy"];
     retval.is = Is_from_JSON(json["is"]);
     retval.iterable = Iterable_from_JSON(json["iterable"]);
@@ -3307,6 +3441,7 @@ class Is {
 Is Is_from_JSON(mixed json) {
     Is retval = Is();
 
+    if (!intp(json["is"])) error("Expected integer");
     retval.is = json["is"];
 
     return retval;
@@ -3327,6 +3462,7 @@ class Iterable {
 Iterable Iterable_from_JSON(mixed json) {
     Iterable retval = Iterable();
 
+    if (!intp(json["iterable"])) error("Expected integer");
     retval.iterable = json["iterable"];
 
     return retval;
@@ -3347,6 +3483,7 @@ class Jdec {
 Jdec Jdec_from_JSON(mixed json) {
     Jdec retval = Jdec();
 
+    if (!intp(json["jdec"])) error("Expected integer");
     retval.jdec = json["jdec"];
 
     return retval;
@@ -3367,6 +3504,7 @@ class Jenc {
 Jenc Jenc_from_JSON(mixed json) {
     Jenc retval = Jenc();
 
+    if (!intp(json["jenc"])) error("Expected integer");
     retval.jenc = json["jenc"];
 
     return retval;
@@ -3387,6 +3525,7 @@ class Jpipe {
 Jpipe Jpipe_from_JSON(mixed json) {
     Jpipe retval = Jpipe();
 
+    if (!intp(json["jpipe"])) error("Expected integer");
     retval.jpipe = json["jpipe"];
 
     return retval;
@@ -3407,6 +3546,7 @@ class Json {
 Json Json_from_JSON(mixed json) {
     Json retval = Json();
 
+    if (!intp(json["json"])) error("Expected integer");
     retval.json = json["json"];
 
     return retval;
@@ -3427,6 +3567,7 @@ class JsonConverter {
 JsonConverter JsonConverter_from_JSON(mixed json) {
     JsonConverter retval = JsonConverter();
 
+    if (!intp(json["json_converter"])) error("Expected integer");
     retval.json_converter = json["json_converter"];
 
     return retval;
@@ -3447,6 +3588,7 @@ class JsonSerializer {
 JsonSerializer JsonSerializer_from_JSON(mixed json) {
     JsonSerializer retval = JsonSerializer();
 
+    if (!intp(json["json_serializer"])) error("Expected integer");
     retval.json_serializer = json["json_serializer"];
 
     return retval;
@@ -3467,6 +3609,7 @@ class JsonToken {
 JsonToken JsonToken_from_JSON(mixed json) {
     JsonToken retval = JsonToken();
 
+    if (!intp(json["json_token"])) error("Expected integer");
     retval.json_token = json["json_token"];
 
     return retval;
@@ -3487,6 +3630,7 @@ class JsonWriter {
 JsonWriter JsonWriter_from_JSON(mixed json) {
     JsonWriter retval = JsonWriter();
 
+    if (!intp(json["json_writer"])) error("Expected integer");
     retval.json_writer = json["json_writer"];
 
     return retval;
@@ -3507,6 +3651,7 @@ class Lazy {
 Lazy Lazy_from_JSON(mixed json) {
     Lazy retval = Lazy();
 
+    if (!intp(json["lazy"])) error("Expected integer");
     retval.lazy = json["lazy"];
 
     return retval;
@@ -3527,6 +3672,7 @@ class Left {
 Left Left_from_JSON(mixed json) {
     Left retval = Left();
 
+    if (!intp(json["left"])) error("Expected integer");
     retval.left = json["left"];
 
     return retval;
@@ -3547,6 +3693,7 @@ class Let {
 Let Let_from_JSON(mixed json) {
     Let retval = Let();
 
+    if (!intp(json["let"])) error("Expected integer");
     retval.let = json["let"];
 
     return retval;
@@ -3567,6 +3714,7 @@ class List {
 List List_from_JSON(mixed json) {
     List retval = List();
 
+    if (!intp(json["list"])) error("Expected integer");
     retval.list = json["list"];
 
     return retval;
@@ -3587,6 +3735,7 @@ class Lock {
 Lock Lock_from_JSON(mixed json) {
     Lock retval = Lock();
 
+    if (!intp(json["lock"])) error("Expected integer");
     retval.lock = json["lock"];
 
     return retval;
@@ -3607,6 +3756,7 @@ class Long {
 Long Long_from_JSON(mixed json) {
     Long retval = Long();
 
+    if (!intp(json["long"])) error("Expected integer");
     retval.long = json["long"];
 
     return retval;
@@ -3627,6 +3777,7 @@ class Map {
 Map Map_from_JSON(mixed json) {
     Map retval = Map();
 
+    if (!intp(json["map"])) error("Expected integer");
     retval.map = json["map"];
 
     return retval;
@@ -3647,6 +3798,7 @@ class MetadataPropertyHandling {
 MetadataPropertyHandling MetadataPropertyHandling_from_JSON(mixed json) {
     MetadataPropertyHandling retval = MetadataPropertyHandling();
 
+    if (!intp(json["metadata_property_handling"])) error("Expected integer");
     retval.metadata_property_handling = json["metadata_property_handling"];
 
     return retval;
@@ -3667,6 +3819,7 @@ class Module {
 Module Module_from_JSON(mixed json) {
     Module retval = Module();
 
+    if (!intp(json["module"])) error("Expected integer");
     retval.module = json["module"];
 
     return retval;
@@ -3687,6 +3840,7 @@ class Mutable {
 Mutable Mutable_from_JSON(mixed json) {
     Mutable retval = Mutable();
 
+    if (!intp(json["mutable"])) error("Expected integer");
     retval.mutable = json["mutable"];
 
     return retval;
@@ -3707,6 +3861,7 @@ class Mutating {
 Mutating Mutating_from_JSON(mixed json) {
     Mutating retval = Mutating();
 
+    if (!intp(json["mutating"])) error("Expected integer");
     retval.mutating = json["mutating"];
 
     return retval;
@@ -3727,6 +3882,7 @@ class Namespace {
 Namespace Namespace_from_JSON(mixed json) {
     Namespace retval = Namespace();
 
+    if (!intp(json["namespace"])) error("Expected integer");
     retval.namespace = json["namespace"];
 
     return retval;
@@ -3747,6 +3903,7 @@ class Native {
 Native Native_from_JSON(mixed json) {
     Native retval = Native();
 
+    if (!intp(json["native"])) error("Expected integer");
     retval.native = json["native"];
 
     return retval;
@@ -3767,6 +3924,7 @@ class New {
 New New_from_JSON(mixed json) {
     New retval = New();
 
+    if (!intp(json["new"])) error("Expected integer");
     retval.new = json["new"];
 
     return retval;
@@ -3787,6 +3945,7 @@ class Newtonsoft {
 Newtonsoft Newtonsoft_from_JSON(mixed json) {
     Newtonsoft retval = Newtonsoft();
 
+    if (!intp(json["newtonsoft"])) error("Expected integer");
     retval.newtonsoft = json["newtonsoft"];
 
     return retval;
@@ -3807,6 +3966,7 @@ class Nil {
 Nil Nil_from_JSON(mixed json) {
     Nil retval = Nil();
 
+    if (!intp(json["nil"])) error("Expected integer");
     retval.nil = json["nil"];
 
     return retval;
@@ -3827,6 +3987,7 @@ class No {
 No No_from_JSON(mixed json) {
     No retval = No();
 
+    if (!intp(json["NO"])) error("Expected integer");
     retval.no = json["NO"];
 
     return retval;
@@ -3847,6 +4008,7 @@ class Noexcept {
 Noexcept Noexcept_from_JSON(mixed json) {
     Noexcept retval = Noexcept();
 
+    if (!intp(json["noexcept"])) error("Expected integer");
     retval.noexcept = json["noexcept"];
 
     return retval;
@@ -3867,6 +4029,7 @@ class Nonatomic {
 Nonatomic Nonatomic_from_JSON(mixed json) {
     Nonatomic retval = Nonatomic();
 
+    if (!intp(json["nonatomic"])) error("Expected integer");
     retval.nonatomic = json["nonatomic"];
 
     return retval;
@@ -3887,6 +4050,7 @@ class None {
 None None_from_JSON(mixed json) {
     None retval = None();
 
+    if (!intp(json["None"])) error("Expected integer");
     retval.none = json["None"];
 
     return retval;
@@ -3907,6 +4071,7 @@ class Nonlocal {
 Nonlocal Nonlocal_from_JSON(mixed json) {
     Nonlocal retval = Nonlocal();
 
+    if (!intp(json["nonlocal"])) error("Expected integer");
     retval.nonlocal = json["nonlocal"];
 
     return retval;
@@ -3927,6 +4092,7 @@ class Nonmutating {
 Nonmutating Nonmutating_from_JSON(mixed json) {
     Nonmutating retval = Nonmutating();
 
+    if (!intp(json["nonmutating"])) error("Expected integer");
     retval.nonmutating = json["nonmutating"];
 
     return retval;
@@ -3947,6 +4113,7 @@ class Not {
 Not Not_from_JSON(mixed json) {
     Not retval = Not();
 
+    if (!intp(json["not"])) error("Expected integer");
     retval.not = json["not"];
 
     return retval;
@@ -3967,6 +4134,7 @@ class NotEq {
 NotEq NotEq_from_JSON(mixed json) {
     NotEq retval = NotEq();
 
+    if (!intp(json["not_eq"])) error("Expected integer");
     retval.not_eq = json["not_eq"];
 
     return retval;
@@ -3987,6 +4155,7 @@ class NsString {
 NsString NsString_from_JSON(mixed json) {
     NsString retval = NsString();
 
+    if (!intp(json["NSString"])) error("Expected integer");
     retval.ns_string = json["NSString"];
 
     return retval;
@@ -4007,6 +4176,7 @@ class Null {
 Null Null_from_JSON(mixed json) {
     Null retval = Null();
 
+    if (!intp(json["NULL"])) error("Expected integer");
     retval.null = json["NULL"];
 
     return retval;
@@ -4027,6 +4197,7 @@ class Nullptr {
 Nullptr Nullptr_from_JSON(mixed json) {
     Nullptr retval = Nullptr();
 
+    if (!intp(json["nullptr"])) error("Expected integer");
     retval.nullptr = json["nullptr"];
 
     return retval;
@@ -4047,6 +4218,7 @@ class Number {
 Number Number_from_JSON(mixed json) {
     Number retval = Number();
 
+    if (!intp(json["number"])) error("Expected integer");
     retval.number = json["number"];
 
     return retval;
@@ -4067,6 +4239,7 @@ class Lambda {
 Lambda Lambda_from_JSON(mixed json) {
     Lambda retval = Lambda();
 
+    if (!intp(json["lambda"])) error("Expected integer");
     retval.lambda_lambda = json["lambda"];
 
     return retval;
@@ -4087,6 +4260,7 @@ class NoneClass {
 NoneClass NoneClass_from_JSON(mixed json) {
     NoneClass retval = NoneClass();
 
+    if (!intp(json["none"])) error("Expected integer");
     retval.none = json["none"];
 
     return retval;
@@ -4107,6 +4281,7 @@ class NullClass {
 NullClass NullClass_from_JSON(mixed json) {
     NullClass retval = NullClass();
 
+    if (!intp(json["null"])) error("Expected integer");
     retval.null = json["null"];
 
     return retval;
@@ -4127,6 +4302,7 @@ class Object {
 Object Object_from_JSON(mixed json) {
     Object retval = Object();
 
+    if (!intp(json["object"])) error("Expected integer");
     retval.object_object = json["object"];
 
     return retval;
@@ -4147,6 +4323,7 @@ class Optional {
 Optional Optional_from_JSON(mixed json) {
     Optional retval = Optional();
 
+    if (!intp(json["optional"])) error("Expected integer");
     retval.optional_optional = json["optional"];
 
     return retval;
@@ -4167,6 +4344,7 @@ class Private {
 Private Private_from_JSON(mixed json) {
     Private retval = Private();
 
+    if (!intp(json["private"])) error("Expected integer");
     retval.private_private = json["private"];
 
     return retval;
@@ -4187,6 +4365,7 @@ class Protected {
 Protected Protected_from_JSON(mixed json) {
     Protected retval = Protected();
 
+    if (!intp(json["protected"])) error("Expected integer");
     retval.protected_protected = json["protected"];
 
     return retval;
@@ -4207,6 +4386,7 @@ class ProtocolClass {
 ProtocolClass ProtocolClass_from_JSON(mixed json) {
     ProtocolClass retval = ProtocolClass();
 
+    if (!intp(json["protocol"])) error("Expected integer");
     retval.protocol = json["protocol"];
 
     return retval;
@@ -4227,6 +4407,7 @@ class Of {
 Of Of_from_JSON(mixed json) {
     Of retval = Of();
 
+    if (!intp(json["of"])) error("Expected integer");
     retval.of = json["of"];
 
     return retval;
@@ -4247,6 +4428,7 @@ class Oneway {
 Oneway Oneway_from_JSON(mixed json) {
     Oneway retval = Oneway();
 
+    if (!intp(json["oneway"])) error("Expected integer");
     retval.oneway = json["oneway"];
 
     return retval;
@@ -4267,6 +4449,7 @@ class Open {
 Open Open_from_JSON(mixed json) {
     Open retval = Open();
 
+    if (!intp(json["open"])) error("Expected integer");
     retval.open = json["open"];
 
     return retval;
@@ -4287,6 +4470,7 @@ class Operator {
 Operator Operator_from_JSON(mixed json) {
     Operator retval = Operator();
 
+    if (!intp(json["operator"])) error("Expected integer");
     retval.operator = json["operator"];
 
     return retval;
@@ -4307,6 +4491,7 @@ class Or {
 Or Or_from_JSON(mixed json) {
     Or retval = Or();
 
+    if (!intp(json["or"])) error("Expected integer");
     retval.or = json["or"];
 
     return retval;
@@ -4327,6 +4512,7 @@ class OrEq {
 OrEq OrEq_from_JSON(mixed json) {
     OrEq retval = OrEq();
 
+    if (!intp(json["or_eq"])) error("Expected integer");
     retval.or_eq = json["or_eq"];
 
     return retval;
@@ -4347,6 +4533,7 @@ class Out {
 Out Out_from_JSON(mixed json) {
     Out retval = Out();
 
+    if (!intp(json["out"])) error("Expected integer");
     retval.out = json["out"];
 
     return retval;
@@ -4367,6 +4554,7 @@ class Override {
 Override Override_from_JSON(mixed json) {
     Override retval = Override();
 
+    if (!intp(json["override"])) error("Expected integer");
     retval.override = json["override"];
 
     return retval;
@@ -4387,6 +4575,7 @@ class Package {
 Package Package_from_JSON(mixed json) {
     Package retval = Package();
 
+    if (!intp(json["package"])) error("Expected integer");
     retval.package = json["package"];
 
     return retval;
@@ -4407,6 +4596,7 @@ class Params {
 Params Params_from_JSON(mixed json) {
     Params retval = Params();
 
+    if (!intp(json["params"])) error("Expected integer");
     retval.params = json["params"];
 
     return retval;
@@ -4427,6 +4617,7 @@ class Pass {
 Pass Pass_from_JSON(mixed json) {
     Pass retval = Pass();
 
+    if (!intp(json["pass"])) error("Expected integer");
     retval.pass = json["pass"];
 
     return retval;
@@ -4447,6 +4638,7 @@ class Port {
 Port Port_from_JSON(mixed json) {
     Port retval = Port();
 
+    if (!intp(json["port"])) error("Expected integer");
     retval.port = json["port"];
 
     return retval;
@@ -4467,6 +4659,7 @@ class Postfix {
 Postfix Postfix_from_JSON(mixed json) {
     Postfix retval = Postfix();
 
+    if (!intp(json["postfix"])) error("Expected integer");
     retval.postfix = json["postfix"];
 
     return retval;
@@ -4487,6 +4680,7 @@ class Precedence {
 Precedence Precedence_from_JSON(mixed json) {
     Precedence retval = Precedence();
 
+    if (!intp(json["precedence"])) error("Expected integer");
     retval.precedence = json["precedence"];
 
     return retval;
@@ -4507,6 +4701,7 @@ class Prefix {
 Prefix Prefix_from_JSON(mixed json) {
     Prefix retval = Prefix();
 
+    if (!intp(json["prefix"])) error("Expected integer");
     retval.prefix = json["prefix"];
 
     return retval;
@@ -4527,6 +4722,7 @@ class Print {
 Print Print_from_JSON(mixed json) {
     Print retval = Print();
 
+    if (!intp(json["print"])) error("Expected integer");
     retval.print = json["print"];
 
     return retval;
@@ -4547,6 +4743,7 @@ class PrintMembers {
 PrintMembers PrintMembers_from_JSON(mixed json) {
     PrintMembers retval = PrintMembers();
 
+    if (!intp(json["printMembers"])) error("Expected integer");
     retval.print_members = json["printMembers"];
 
     return retval;
@@ -4567,6 +4764,7 @@ class Printf {
 Printf Printf_from_JSON(mixed json) {
     Printf retval = Printf();
 
+    if (!intp(json["printf"])) error("Expected integer");
     retval.printf = json["printf"];
 
     return retval;
@@ -4587,6 +4785,7 @@ class Protocol {
 Protocol Protocol_from_JSON(mixed json) {
     Protocol retval = Protocol();
 
+    if (!intp(json["Protocol"])) error("Expected integer");
     retval.protocol = json["Protocol"];
 
     return retval;
@@ -4735,6 +4934,7 @@ class Obj4 {
 Obj4 Obj4_from_JSON(mixed json) {
     Obj4 retval = Obj4();
 
+    if (!intp(json["dummy"])) error("Expected integer");
     retval.dummy = json["dummy"];
     retval.obj4_public = Public_from_JSON(json["public"]);
     retval.obj4_return = Return_from_JSON(json["return"]);
@@ -4819,6 +5019,7 @@ class Public {
 Public Public_from_JSON(mixed json) {
     Public retval = Public();
 
+    if (!intp(json["public"])) error("Expected integer");
     retval.public_public = json["public"];
 
     return retval;
@@ -4839,6 +5040,7 @@ class Return {
 Return Return_from_JSON(mixed json) {
     Return retval = Return();
 
+    if (!intp(json["return"])) error("Expected integer");
     retval.return_return = json["return"];
 
     return retval;
@@ -4859,6 +5061,7 @@ class SelfClass {
 SelfClass SelfClass_from_JSON(mixed json) {
     SelfClass retval = SelfClass();
 
+    if (!intp(json["self"])) error("Expected integer");
     retval.self = json["self"];
 
     return retval;
@@ -4879,6 +5082,7 @@ class Static {
 Static Static_from_JSON(mixed json) {
     Static retval = Static();
 
+    if (!intp(json["static"])) error("Expected integer");
     retval.static_static = json["static"];
 
     return retval;
@@ -4899,6 +5103,7 @@ class String {
 String String_from_JSON(mixed json) {
     String retval = String();
 
+    if (!intp(json["string"])) error("Expected integer");
     retval.string_string = json["string"];
 
     return retval;
@@ -4919,6 +5124,7 @@ class Switch {
 Switch Switch_from_JSON(mixed json) {
     Switch retval = Switch();
 
+    if (!intp(json["switch"])) error("Expected integer");
     retval.switch_switch = json["switch"];
 
     return retval;
@@ -4939,6 +5145,7 @@ class TrueClass {
 TrueClass TrueClass_from_JSON(mixed json) {
     TrueClass retval = TrueClass();
 
+    if (!intp(json["true"])) error("Expected integer");
     retval.true = json["true"];
 
     return retval;
@@ -4959,6 +5166,7 @@ class TypeClass {
 TypeClass TypeClass_from_JSON(mixed json) {
     TypeClass retval = TypeClass();
 
+    if (!intp(json["type"])) error("Expected integer");
     retval.type = json["type"];
 
     return retval;
@@ -4979,6 +5187,7 @@ class Typedef {
 Typedef Typedef_from_JSON(mixed json) {
     Typedef retval = Typedef();
 
+    if (!intp(json["typedef"])) error("Expected integer");
     retval.typedef_typedef = json["typedef"];
 
     return retval;
@@ -4999,6 +5208,7 @@ class Typeof {
 Typeof Typeof_from_JSON(mixed json) {
     Typeof retval = Typeof();
 
+    if (!intp(json["typeof"])) error("Expected integer");
     retval.typeof_typeof = json["typeof"];
 
     return retval;
@@ -5019,6 +5229,7 @@ class Quicktype {
 Quicktype Quicktype_from_JSON(mixed json) {
     Quicktype retval = Quicktype();
 
+    if (!intp(json["quicktype"])) error("Expected integer");
     retval.quicktype = json["quicktype"];
 
     return retval;
@@ -5039,6 +5250,7 @@ class Raise {
 Raise Raise_from_JSON(mixed json) {
     Raise retval = Raise();
 
+    if (!intp(json["raise"])) error("Expected integer");
     retval.raise = json["raise"];
 
     return retval;
@@ -5059,6 +5271,7 @@ class Range {
 Range Range_from_JSON(mixed json) {
     Range retval = Range();
 
+    if (!intp(json["range"])) error("Expected integer");
     retval.range = json["range"];
 
     return retval;
@@ -5079,6 +5292,7 @@ class Readonly {
 Readonly Readonly_from_JSON(mixed json) {
     Readonly retval = Readonly();
 
+    if (!intp(json["readonly"])) error("Expected integer");
     retval.readonly = json["readonly"];
 
     return retval;
@@ -5099,6 +5313,7 @@ class Ref {
 Ref Ref_from_JSON(mixed json) {
     Ref retval = Ref();
 
+    if (!intp(json["ref"])) error("Expected integer");
     retval.ref = json["ref"];
 
     return retval;
@@ -5119,6 +5334,7 @@ class Register {
 Register Register_from_JSON(mixed json) {
     Register retval = Register();
 
+    if (!intp(json["register"])) error("Expected integer");
     retval.register = json["register"];
 
     return retval;
@@ -5139,6 +5355,7 @@ class ReinterpretCast {
 ReinterpretCast ReinterpretCast_from_JSON(mixed json) {
     ReinterpretCast retval = ReinterpretCast();
 
+    if (!intp(json["reinterpret_cast"])) error("Expected integer");
     retval.reinterpret_cast = json["reinterpret_cast"];
 
     return retval;
@@ -5159,6 +5376,7 @@ class Repeat {
 Repeat Repeat_from_JSON(mixed json) {
     Repeat retval = Repeat();
 
+    if (!intp(json["repeat"])) error("Expected integer");
     retval.repeat = json["repeat"];
 
     return retval;
@@ -5179,6 +5397,7 @@ class Require {
 Require Require_from_JSON(mixed json) {
     Require retval = Require();
 
+    if (!intp(json["require"])) error("Expected integer");
     retval.require = json["require"];
 
     return retval;
@@ -5199,6 +5418,7 @@ class Required {
 Required Required_from_JSON(mixed json) {
     Required retval = Required();
 
+    if (!intp(json["required"])) error("Expected integer");
     retval.required = json["required"];
 
     return retval;
@@ -5219,6 +5439,7 @@ class Requires {
 Requires Requires_from_JSON(mixed json) {
     Requires retval = Requires();
 
+    if (!intp(json["requires"])) error("Expected integer");
     retval.requires = json["requires"];
 
     return retval;
@@ -5239,6 +5460,7 @@ class Restrict {
 Restrict Restrict_from_JSON(mixed json) {
     Restrict retval = Restrict();
 
+    if (!intp(json["restrict"])) error("Expected integer");
     retval.restrict = json["restrict"];
 
     return retval;
@@ -5259,6 +5481,7 @@ class Retain {
 Retain Retain_from_JSON(mixed json) {
     Retain retval = Retain();
 
+    if (!intp(json["retain"])) error("Expected integer");
     retval.retain = json["retain"];
 
     return retval;
@@ -5279,6 +5502,7 @@ class Rethrows {
 Rethrows Rethrows_from_JSON(mixed json) {
     Rethrows retval = Rethrows();
 
+    if (!intp(json["rethrows"])) error("Expected integer");
     retval.rethrows = json["rethrows"];
 
     return retval;
@@ -5299,6 +5523,7 @@ class Right {
 Right Right_from_JSON(mixed json) {
     Right retval = Right();
 
+    if (!intp(json["right"])) error("Expected integer");
     retval.right = json["right"];
 
     return retval;
@@ -5319,6 +5544,7 @@ class Sbyte {
 Sbyte Sbyte_from_JSON(mixed json) {
     Sbyte retval = Sbyte();
 
+    if (!intp(json["sbyte"])) error("Expected integer");
     retval.sbyte = json["sbyte"];
 
     return retval;
@@ -5339,6 +5565,7 @@ class Sealed {
 Sealed Sealed_from_JSON(mixed json) {
     Sealed retval = Sealed();
 
+    if (!intp(json["sealed"])) error("Expected integer");
     retval.sealed = json["sealed"];
 
     return retval;
@@ -5359,6 +5586,7 @@ class Sel {
 Sel Sel_from_JSON(mixed json) {
     Sel retval = Sel();
 
+    if (!intp(json["SEL"])) error("Expected integer");
     retval.sel = json["SEL"];
 
     return retval;
@@ -5379,6 +5607,7 @@ class Select {
 Select Select_from_JSON(mixed json) {
     Select retval = Select();
 
+    if (!intp(json["select"])) error("Expected integer");
     retval.select = json["select"];
 
     return retval;
@@ -5399,6 +5628,7 @@ class Self {
 Self Self_from_JSON(mixed json) {
     Self retval = Self();
 
+    if (!intp(json["Self"])) error("Expected integer");
     retval.self = json["Self"];
 
     return retval;
@@ -5419,6 +5649,7 @@ class Serialize {
 Serialize Serialize_from_JSON(mixed json) {
     Serialize retval = Serialize();
 
+    if (!intp(json["serialize"])) error("Expected integer");
     retval.serialize = json["serialize"];
 
     return retval;
@@ -5439,6 +5670,7 @@ class Set {
 Set Set_from_JSON(mixed json) {
     Set retval = Set();
 
+    if (!intp(json["set"])) error("Expected integer");
     retval.set = json["set"];
 
     return retval;
@@ -5459,6 +5691,7 @@ class Short {
 Short Short_from_JSON(mixed json) {
     Short retval = Short();
 
+    if (!intp(json["short"])) error("Expected integer");
     retval.short = json["short"];
 
     return retval;
@@ -5479,6 +5712,7 @@ class Signed {
 Signed Signed_from_JSON(mixed json) {
     Signed retval = Signed();
 
+    if (!intp(json["signed"])) error("Expected integer");
     retval.signed = json["signed"];
 
     return retval;
@@ -5499,6 +5733,7 @@ class Sizeof {
 Sizeof Sizeof_from_JSON(mixed json) {
     Sizeof retval = Sizeof();
 
+    if (!intp(json["sizeof"])) error("Expected integer");
     retval.sizeof = json["sizeof"];
 
     return retval;
@@ -5519,6 +5754,7 @@ class Stackalloc {
 Stackalloc Stackalloc_from_JSON(mixed json) {
     Stackalloc retval = Stackalloc();
 
+    if (!intp(json["stackalloc"])) error("Expected integer");
     retval.stackalloc = json["stackalloc"];
 
     return retval;
@@ -5539,6 +5775,7 @@ class StaticAssert {
 StaticAssert StaticAssert_from_JSON(mixed json) {
     StaticAssert retval = StaticAssert();
 
+    if (!intp(json["static_assert"])) error("Expected integer");
     retval.static_assert = json["static_assert"];
 
     return retval;
@@ -5559,6 +5796,7 @@ class StaticCast {
 StaticCast StaticCast_from_JSON(mixed json) {
     StaticCast retval = StaticCast();
 
+    if (!intp(json["static_cast"])) error("Expected integer");
     retval.static_cast = json["static_cast"];
 
     return retval;
@@ -5579,6 +5817,7 @@ class Strictfp {
 Strictfp Strictfp_from_JSON(mixed json) {
     Strictfp retval = Strictfp();
 
+    if (!intp(json["strictfp"])) error("Expected integer");
     retval.strictfp = json["strictfp"];
 
     return retval;
@@ -5599,6 +5838,7 @@ class Struct {
 Struct Struct_from_JSON(mixed json) {
     Struct retval = Struct();
 
+    if (!intp(json["struct"])) error("Expected integer");
     retval.struct = json["struct"];
 
     return retval;
@@ -5619,6 +5859,7 @@ class Subscript {
 Subscript Subscript_from_JSON(mixed json) {
     Subscript retval = Subscript();
 
+    if (!intp(json["subscript"])) error("Expected integer");
     retval.subscript = json["subscript"];
 
     return retval;
@@ -5639,6 +5880,7 @@ class Super {
 Super Super_from_JSON(mixed json) {
     Super retval = Super();
 
+    if (!intp(json["super"])) error("Expected integer");
     retval.super = json["super"];
 
     return retval;
@@ -5659,6 +5901,7 @@ class Symbol {
 Symbol Symbol_from_JSON(mixed json) {
     Symbol retval = Symbol();
 
+    if (!intp(json["symbol"])) error("Expected integer");
     retval.symbol = json["symbol"];
 
     return retval;
@@ -5679,6 +5922,7 @@ class Synchronized {
 Synchronized Synchronized_from_JSON(mixed json) {
     Synchronized retval = Synchronized();
 
+    if (!intp(json["synchronized"])) error("Expected integer");
     retval.synchronized = json["synchronized"];
 
     return retval;
@@ -5699,6 +5943,7 @@ class System {
 System System_from_JSON(mixed json) {
     System retval = System();
 
+    if (!intp(json["system"])) error("Expected integer");
     retval.system = json["system"];
 
     return retval;
@@ -5719,6 +5964,7 @@ class Template {
 Template Template_from_JSON(mixed json) {
     Template retval = Template();
 
+    if (!intp(json["template"])) error("Expected integer");
     retval.template = json["template"];
 
     return retval;
@@ -5739,6 +5985,7 @@ class Then {
 Then Then_from_JSON(mixed json) {
     Then retval = Then();
 
+    if (!intp(json["then"])) error("Expected integer");
     retval.then = json["then"];
 
     return retval;
@@ -5759,6 +6006,7 @@ class This {
 This This_from_JSON(mixed json) {
     This retval = This();
 
+    if (!intp(json["this"])) error("Expected integer");
     retval.this = json["this"];
 
     return retval;
@@ -5779,6 +6027,7 @@ class ThreadLocal {
 ThreadLocal ThreadLocal_from_JSON(mixed json) {
     ThreadLocal retval = ThreadLocal();
 
+    if (!intp(json["thread_local"])) error("Expected integer");
     retval.thread_local = json["thread_local"];
 
     return retval;
@@ -5799,6 +6048,7 @@ class Throw {
 Throw Throw_from_JSON(mixed json) {
     Throw retval = Throw();
 
+    if (!intp(json["throw"])) error("Expected integer");
     retval.throw = json["throw"];
 
     return retval;
@@ -5819,6 +6069,7 @@ class Throws {
 Throws Throws_from_JSON(mixed json) {
     Throws retval = Throws();
 
+    if (!intp(json["throws"])) error("Expected integer");
     retval.throws = json["throws"];
 
     return retval;
@@ -5839,6 +6090,7 @@ class ToJson {
 ToJson ToJson_from_JSON(mixed json) {
     ToJson retval = ToJson();
 
+    if (!intp(json["to_json"])) error("Expected integer");
     retval.to_json = json["to_json"];
 
     return retval;
@@ -5859,6 +6111,7 @@ class TopLevelClass {
 TopLevelClass TopLevelClass_from_JSON(mixed json) {
     TopLevelClass retval = TopLevelClass();
 
+    if (!intp(json["top_level"])) error("Expected integer");
     retval.top_level = json["top_level"];
 
     return retval;
@@ -5879,6 +6132,7 @@ class Transient {
 Transient Transient_from_JSON(mixed json) {
     Transient retval = Transient();
 
+    if (!intp(json["transient"])) error("Expected integer");
     retval.transient = json["transient"];
 
     return retval;
@@ -5899,6 +6153,7 @@ class True {
 True True_from_JSON(mixed json) {
     True retval = True();
 
+    if (!intp(json["True"])) error("Expected integer");
     retval.true = json["True"];
 
     return retval;
@@ -5919,6 +6174,7 @@ class Try {
 Try Try_from_JSON(mixed json) {
     Try retval = Try();
 
+    if (!intp(json["try"])) error("Expected integer");
     retval.try = json["try"];
 
     return retval;
@@ -5939,6 +6195,7 @@ class Type {
 Type Type_from_JSON(mixed json) {
     Type retval = Type();
 
+    if (!intp(json["Type"])) error("Expected integer");
     retval.type = json["Type"];
 
     return retval;
@@ -5959,6 +6216,7 @@ class Typealias {
 Typealias Typealias_from_JSON(mixed json) {
     Typealias retval = Typealias();
 
+    if (!intp(json["typealias"])) error("Expected integer");
     retval.typealias = json["typealias"];
 
     return retval;
@@ -5979,6 +6237,7 @@ class Typeid {
 Typeid Typeid_from_JSON(mixed json) {
     Typeid retval = Typeid();
 
+    if (!intp(json["typeid"])) error("Expected integer");
     retval.typeid = json["typeid"];
 
     return retval;
@@ -5999,6 +6258,7 @@ class Typename {
 Typename Typename_from_JSON(mixed json) {
     Typename retval = Typename();
 
+    if (!intp(json["typename"])) error("Expected integer");
     retval.typename = json["typename"];
 
     return retval;
@@ -6019,6 +6279,7 @@ class Uint {
 Uint Uint_from_JSON(mixed json) {
     Uint retval = Uint();
 
+    if (!intp(json["uint"])) error("Expected integer");
     retval.uint = json["uint"];
 
     return retval;
@@ -6039,6 +6300,7 @@ class Ulong {
 Ulong Ulong_from_JSON(mixed json) {
     Ulong retval = Ulong();
 
+    if (!intp(json["ulong"])) error("Expected integer");
     retval.ulong = json["ulong"];
 
     return retval;
@@ -6059,6 +6321,7 @@ class Unchecked {
 Unchecked Unchecked_from_JSON(mixed json) {
     Unchecked retval = Unchecked();
 
+    if (!intp(json["unchecked"])) error("Expected integer");
     retval.unchecked = json["unchecked"];
 
     return retval;
@@ -6079,6 +6342,7 @@ class Undefined {
 Undefined Undefined_from_JSON(mixed json) {
     Undefined retval = Undefined();
 
+    if (!intp(json["undefined"])) error("Expected integer");
     retval.undefined = json["undefined"];
 
     return retval;
@@ -6139,6 +6403,7 @@ class Obj5 {
 Obj5 Obj5_from_JSON(mixed json) {
     Obj5 retval = Obj5();
 
+    if (!intp(json["dummy"])) error("Expected integer");
     retval.dummy = json["dummy"];
     retval.obj5_void = Void_from_JSON(json["void"]);
     retval.obj5_while = While_from_JSON(json["while"]);
@@ -6179,6 +6444,7 @@ class Void {
 Void Void_from_JSON(mixed json) {
     Void retval = Void();
 
+    if (!intp(json["void"])) error("Expected integer");
     retval.void_void = json["void"];
 
     return retval;
@@ -6199,6 +6465,7 @@ class While {
 While While_from_JSON(mixed json) {
     While retval = While();
 
+    if (!intp(json["while"])) error("Expected integer");
     retval.while_while = json["while"];
 
     return retval;
@@ -6219,6 +6486,7 @@ class Union {
 Union Union_from_JSON(mixed json) {
     Union retval = Union();
 
+    if (!intp(json["union"])) error("Expected integer");
     retval.union = json["union"];
 
     return retval;
@@ -6239,6 +6507,7 @@ class Unowned {
 Unowned Unowned_from_JSON(mixed json) {
     Unowned retval = Unowned();
 
+    if (!intp(json["unowned"])) error("Expected integer");
     retval.unowned = json["unowned"];
 
     return retval;
@@ -6259,6 +6528,7 @@ class Unsafe {
 Unsafe Unsafe_from_JSON(mixed json) {
     Unsafe retval = Unsafe();
 
+    if (!intp(json["unsafe"])) error("Expected integer");
     retval.unsafe = json["unsafe"];
 
     return retval;
@@ -6279,6 +6549,7 @@ class Unsigned {
 Unsigned Unsigned_from_JSON(mixed json) {
     Unsigned retval = Unsigned();
 
+    if (!intp(json["unsigned"])) error("Expected integer");
     retval.unsigned = json["unsigned"];
 
     return retval;
@@ -6299,6 +6570,7 @@ class Ushort {
 Ushort Ushort_from_JSON(mixed json) {
     Ushort retval = Ushort();
 
+    if (!intp(json["ushort"])) error("Expected integer");
     retval.ushort = json["ushort"];
 
     return retval;
@@ -6319,6 +6591,7 @@ class Using {
 Using Using_from_JSON(mixed json) {
     Using retval = Using();
 
+    if (!intp(json["using"])) error("Expected integer");
     retval.using = json["using"];
 
     return retval;
@@ -6339,6 +6612,7 @@ class Var {
 Var Var_from_JSON(mixed json) {
     Var retval = Var();
 
+    if (!intp(json["var"])) error("Expected integer");
     retval.var = json["var"];
 
     return retval;
@@ -6359,6 +6633,7 @@ class Virtual {
 Virtual Virtual_from_JSON(mixed json) {
     Virtual retval = Virtual();
 
+    if (!intp(json["virtual"])) error("Expected integer");
     retval.virtual = json["virtual"];
 
     return retval;
@@ -6379,6 +6654,7 @@ class Volatile {
 Volatile Volatile_from_JSON(mixed json) {
     Volatile retval = Volatile();
 
+    if (!intp(json["volatile"])) error("Expected integer");
     retval.volatile = json["volatile"];
 
     return retval;
@@ -6399,6 +6675,7 @@ class WcharT {
 WcharT WcharT_from_JSON(mixed json) {
     WcharT retval = WcharT();
 
+    if (!intp(json["wchar_t"])) error("Expected integer");
     retval.wchar_t = json["wchar_t"];
 
     return retval;
@@ -6419,6 +6696,7 @@ class Weak {
 Weak Weak_from_JSON(mixed json) {
     Weak retval = Weak();
 
+    if (!intp(json["weak"])) error("Expected integer");
     retval.weak = json["weak"];
 
     return retval;
@@ -6439,6 +6717,7 @@ class Where {
 Where Where_from_JSON(mixed json) {
     Where retval = Where();
 
+    if (!intp(json["where"])) error("Expected integer");
     retval.where = json["where"];
 
     return retval;
@@ -6459,6 +6738,7 @@ class WillSet {
 WillSet WillSet_from_JSON(mixed json) {
     WillSet retval = WillSet();
 
+    if (!intp(json["willSet"])) error("Expected integer");
     retval.will_set = json["willSet"];
 
     return retval;
@@ -6479,6 +6759,7 @@ class With {
 With With_from_JSON(mixed json) {
     With retval = With();
 
+    if (!intp(json["with"])) error("Expected integer");
     retval.with = json["with"];
 
     return retval;
@@ -6499,6 +6780,7 @@ class Xor {
 Xor Xor_from_JSON(mixed json) {
     Xor retval = Xor();
 
+    if (!intp(json["xor"])) error("Expected integer");
     retval.xor = json["xor"];
 
     return retval;
@@ -6519,6 +6801,7 @@ class XorEq {
 XorEq XorEq_from_JSON(mixed json) {
     XorEq retval = XorEq();
 
+    if (!intp(json["xor_eq"])) error("Expected integer");
     retval.xor_eq = json["xor_eq"];
 
     return retval;
@@ -6539,6 +6822,7 @@ class Yes {
 Yes Yes_from_JSON(mixed json) {
     Yes retval = Yes();
 
+    if (!intp(json["YES"])) error("Expected integer");
     retval.yes = json["YES"];
 
     return retval;
@@ -6559,6 +6843,7 @@ class Yield {
 Yield Yield_from_JSON(mixed json) {
     Yield retval = Yield();
 
+    if (!intp(json["yield"])) error("Expected integer");
     retval.yield = json["yield"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/priority/list.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/list.json/default/TopLevel.pmod
index 6dd67b3..b0cc251 100644
--- a/base/pike/test/inputs/json/priority/list.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/list.json/default/TopLevel.pmod
@@ -29,6 +29,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["data"])) error("Expected integer");
     retval.data = json["data"];
     if (!has_index(json, "next")) error("Missing required property");
     retval.next = json["next"] == Val.null ? Val.null : TopLevel_from_JSON(json["next"]);
diff --git a/base/pike/test/inputs/json/priority/name-style.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/name-style.json/default/TopLevel.pmod
index d7ff9a4..e9f26f1 100644
--- a/base/pike/test/inputs/json/priority/name-style.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/name-style.json/default/TopLevel.pmod
@@ -39,6 +39,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["anEasyOne"])) error("Expected integer");
     retval.an_easy_one = json["anEasyOne"];
     if (json["isMNISTLetter"] != Standards.JSON.true && json["isMNISTLetter"] != Standards.JSON.false) error("Expected bool");
     retval.is_mnist_letter = json["isMNISTLetter"];
diff --git a/base/pike/test/inputs/json/priority/nbl-stats.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/nbl-stats.json/default/TopLevel.pmod
index 5320eed..486502f 100644
--- a/base/pike/test/inputs/json/priority/nbl-stats.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/nbl-stats.json/default/TopLevel.pmod
@@ -65,9 +65,12 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["attendance"])) error("Expected integer");
     retval.attendance = json["attendance"];
     retval.clock = json["clock"];
+    if (!intp(json["disableMatch"])) error("Expected integer");
     retval.disable_match = json["disableMatch"];
+    if (!intp(json["inOT"])) error("Expected integer");
     retval.in_ot = json["inOT"];
     retval.leaddata = json["leaddata"];
     retval.officials_referee1 = json["officials_referee1"];
@@ -75,15 +78,20 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.officials_referee3 = json["officials_referee3"];
     retval.othermatches = json["othermatches"];
     retval.pbp = json["pbp"];
+    if (!intp(json["period"])) error("Expected integer");
     retval.period = json["period"];
+    if (!intp(json["periodLengthOVERTIME"])) error("Expected integer");
     retval.period_length_overtime = json["periodLengthOVERTIME"];
+    if (!intp(json["periodLengthREGULAR"])) error("Expected integer");
     retval.period_length_regular = json["periodLengthREGULAR"];
     retval.period_type = PerType_from_JSON(json["periodType"]);
+    if (!intp(json["periodsMax"])) error("Expected integer");
     retval.periods_max = json["periodsMax"];
     foreach (json["scorers"]; mixed _; mixed value) if (!arrayp(value)) error("Expected array");
     retval.scorers = json["scorers"];
     retval.timeline = json["timeline"];
     retval.tm = json["tm"];
+    if (!intp(json["totalTimeAdded"])) error("Expected integer");
     retval.total_time_added = json["totalTimeAdded"];
     retval.totallds = Totallds_from_JSON(json["totallds"]);
 
@@ -146,13 +154,16 @@ Othermatch Othermatch_from_JSON(mixed json) {
     retval.clock = json["clock"];
     retval.competition_name = json["competitionName"];
     retval.id = json["id"];
+    if (!intp(json["period"])) error("Expected integer");
     retval.period = json["period"];
     retval.period_type = PerType_from_JSON(json["periodType"]);
     retval.team1 = Team_from_JSON(json["team1"]);
     retval.team1_name = json["team1Name"];
+    if (!intp(json["team1Score"])) error("Expected integer");
     retval.team1_score = json["team1Score"];
     retval.team2 = Team_from_JSON(json["team2"]);
     retval.team2_name = json["team2Name"];
+    if (!intp(json["team2Score"])) error("Expected integer");
     retval.team2_score = json["team2Score"];
 
     return retval;
@@ -266,19 +277,27 @@ Pbp Pbp_from_JSON(mixed json) {
     retval.international_family_name_initial = FamilyNameInitial_from_JSON(json["internationalFamilyNameInitial"]);
     retval.international_first_name = json["internationalFirstName"];
     retval.international_first_name_initial = FirstNameInitial_from_JSON(json["internationalFirstNameInitial"]);
+    if (!intp(json["lead"])) error("Expected integer");
     retval.lead = json["lead"];
+    if (!intp(json["period"])) error("Expected integer");
     retval.period = json["period"];
     retval.period_type = PerType_from_JSON(json["periodType"]);
     retval.player = json["player"];
+    if (!intp(json["pno"])) error("Expected integer");
     retval.pno = json["pno"];
     retval.qualifier = json["qualifier"];
+    if (!intp(json["s1"])) error("Expected integer");
     retval.s1 = json["s1"];
+    if (!intp(json["s2"])) error("Expected integer");
     retval.s2 = json["s2"];
     retval.scoreboard_name = ScoreboardName_from_JSON(json["scoreboardName"]);
+    if (!intp(json["scoring"])) error("Expected integer");
     retval.scoring = json["scoring"];
     retval.shirt_number = json["shirtNumber"];
     retval.sub_type = json["subType"];
+    if (!intp(json["success"])) error("Expected integer");
     retval.success = json["success"];
+    if (!intp(json["tno"])) error("Expected integer");
     retval.tno = json["tno"];
 
     return retval;
@@ -424,11 +443,13 @@ Scorer Scorer_from_JSON(mixed json) {
     retval.per = json["per"];
     retval.per_type = PerType_from_JSON(json["perType"]);
     retval.player = json["player"];
+    if (!intp(json["pno"])) error("Expected integer");
     retval.pno = json["pno"];
     retval.scoreboard_name = ScoreboardName_from_JSON(json["scoreboardName"]);
     retval.shirt_number = json["shirtNumber"];
     retval.summary = json["summary"];
     retval.times = json["times"];
+    if (!intp(json["tno"])) error("Expected integer");
     retval.tno = json["tno"];
     retval.tot = json["tot"];
 
@@ -455,6 +476,7 @@ Time Time_from_JSON(mixed json) {
     Time retval = Time();
 
     retval.gt = json["gt"];
+    if (!intp(json["per"])) error("Expected integer");
     retval.per = json["per"];
     retval.per_type = PerType_from_JSON(json["perType"]);
 
@@ -606,68 +628,120 @@ Tm Tm_from_JSON(mixed json) {
 
     retval.code = json["code"];
     retval.code_international = json["codeInternational"];
+    if (!intp(json["fouls"])) error("Expected integer");
     retval.fouls = json["fouls"];
+    if (!intp(json["full_score"])) error("Expected integer");
     retval.full_score = json["full_score"];
     retval.lds = Lds_from_JSON(json["lds"]);
     retval.logo = json["logo"];
     retval.name = json["name"];
     retval.name_international = json["nameInternational"];
+    if (!intp(json["p1_score"])) error("Expected integer");
     retval.p1_score = json["p1_score"];
+    if (!intp(json["p2_score"])) error("Expected integer");
     retval.p2_score = json["p2_score"];
+    if (!intp(json["p3_score"])) error("Expected integer");
     retval.p3_score = json["p3_score"];
+    if (!intp(json["p4_score"])) error("Expected integer");
     retval.p4_score = json["p4_score"];
     retval.pl = json["pl"];
+    if (!intp(json["score"])) error("Expected integer");
     retval.score = json["score"];
     retval.scoring = json["scoring"];
     retval.short_name = json["shortName"];
     retval.short_name_international = json["shortNameInternational"];
     retval.shot = json["shot"];
+    if (!intp(json["timeouts"])) error("Expected integer");
     retval.timeouts = json["timeouts"];
+    if (!intp(json["tot_eff_1"])) error("Expected integer");
     retval.tot_eff_1 = json["tot_eff_1"];
+    if (!intp(json["tot_eff_2"])) error("Expected integer");
     retval.tot_eff_2 = json["tot_eff_2"];
     retval.tot_eff_3 = (float)json["tot_eff_3"];
+    if (!intp(json["tot_eff_4"])) error("Expected integer");
     retval.tot_eff_4 = json["tot_eff_4"];
+    if (!intp(json["tot_eff_5"])) error("Expected integer");
     retval.tot_eff_5 = json["tot_eff_5"];
+    if (!intp(json["tot_eff_6"])) error("Expected integer");
     retval.tot_eff_6 = json["tot_eff_6"];
+    if (!intp(json["tot_eff_7"])) error("Expected integer");
     retval.tot_eff_7 = json["tot_eff_7"];
+    if (!intp(json["tot_sAssists"])) error("Expected integer");
     retval.tot_s_assists = json["tot_sAssists"];
+    if (!intp(json["tot_sBenchPoints"])) error("Expected integer");
     retval.tot_s_bench_points = json["tot_sBenchPoints"];
+    if (!intp(json["tot_sBiggestLead"])) error("Expected integer");
     retval.tot_s_biggest_lead = json["tot_sBiggestLead"];
+    if (!intp(json["tot_sBiggestScoringRun"])) error("Expected integer");
     retval.tot_s_biggest_scoring_run = json["tot_sBiggestScoringRun"];
+    if (!intp(json["tot_sBlocks"])) error("Expected integer");
     retval.tot_s_blocks = json["tot_sBlocks"];
+    if (!intp(json["tot_sBlocksReceived"])) error("Expected integer");
     retval.tot_s_blocks_received = json["tot_sBlocksReceived"];
+    if (!intp(json["tot_sFieldGoalsAttempted"])) error("Expected integer");
     retval.tot_s_field_goals_attempted = json["tot_sFieldGoalsAttempted"];
+    if (!intp(json["tot_sFieldGoalsMade"])) error("Expected integer");
     retval.tot_s_field_goals_made = json["tot_sFieldGoalsMade"];
+    if (!intp(json["tot_sFieldGoalsPercentage"])) error("Expected integer");
     retval.tot_s_field_goals_percentage = json["tot_sFieldGoalsPercentage"];
+    if (!intp(json["tot_sFoulsOn"])) error("Expected integer");
     retval.tot_s_fouls_on = json["tot_sFoulsOn"];
+    if (!intp(json["tot_sFoulsPersonal"])) error("Expected integer");
     retval.tot_s_fouls_personal = json["tot_sFoulsPersonal"];
+    if (!intp(json["tot_sFoulsTeam"])) error("Expected integer");
     retval.tot_s_fouls_team = json["tot_sFoulsTeam"];
+    if (!intp(json["tot_sFreeThrowsAttempted"])) error("Expected integer");
     retval.tot_s_free_throws_attempted = json["tot_sFreeThrowsAttempted"];
+    if (!intp(json["tot_sFreeThrowsMade"])) error("Expected integer");
     retval.tot_s_free_throws_made = json["tot_sFreeThrowsMade"];
+    if (!intp(json["tot_sFreeThrowsPercentage"])) error("Expected integer");
     retval.tot_s_free_throws_percentage = json["tot_sFreeThrowsPercentage"];
+    if (!intp(json["tot_sLeadChanges"])) error("Expected integer");
     retval.tot_s_lead_changes = json["tot_sLeadChanges"];
+    if (!intp(json["tot_sMinutes"])) error("Expected integer");
     retval.tot_s_minutes = json["tot_sMinutes"];
+    if (!intp(json["tot_sPoints"])) error("Expected integer");
     retval.tot_s_points = json["tot_sPoints"];
+    if (!intp(json["tot_sPointsFastBreak"])) error("Expected integer");
     retval.tot_s_points_fast_break = json["tot_sPointsFastBreak"];
+    if (!intp(json["tot_sPointsFromTurnovers"])) error("Expected integer");
     retval.tot_s_points_from_turnovers = json["tot_sPointsFromTurnovers"];
+    if (!intp(json["tot_sPointsInThePaint"])) error("Expected integer");
     retval.tot_s_points_in_the_paint = json["tot_sPointsInThePaint"];
+    if (!intp(json["tot_sPointsSecondChance"])) error("Expected integer");
     retval.tot_s_points_second_chance = json["tot_sPointsSecondChance"];
+    if (!intp(json["tot_sReboundsDefensive"])) error("Expected integer");
     retval.tot_s_rebounds_defensive = json["tot_sReboundsDefensive"];
+    if (!intp(json["tot_sReboundsOffensive"])) error("Expected integer");
     retval.tot_s_rebounds_offensive = json["tot_sReboundsOffensive"];
+    if (!intp(json["tot_sReboundsTeam"])) error("Expected integer");
     retval.tot_s_rebounds_team = json["tot_sReboundsTeam"];
+    if (!intp(json["tot_sReboundsTeamDefensive"])) error("Expected integer");
     retval.tot_s_rebounds_team_defensive = json["tot_sReboundsTeamDefensive"];
+    if (!intp(json["tot_sReboundsTeamOffensive"])) error("Expected integer");
     retval.tot_s_rebounds_team_offensive = json["tot_sReboundsTeamOffensive"];
+    if (!intp(json["tot_sReboundsTotal"])) error("Expected integer");
     retval.tot_s_rebounds_total = json["tot_sReboundsTotal"];
+    if (!intp(json["tot_sSteals"])) error("Expected integer");
     retval.tot_s_steals = json["tot_sSteals"];
+    if (!intp(json["tot_sThreePointersAttempted"])) error("Expected integer");
     retval.tot_s_three_pointers_attempted = json["tot_sThreePointersAttempted"];
+    if (!intp(json["tot_sThreePointersMade"])) error("Expected integer");
     retval.tot_s_three_pointers_made = json["tot_sThreePointersMade"];
+    if (!intp(json["tot_sThreePointersPercentage"])) error("Expected integer");
     retval.tot_s_three_pointers_percentage = json["tot_sThreePointersPercentage"];
     retval.tot_s_time_leading = (float)json["tot_sTimeLeading"];
+    if (!intp(json["tot_sTimesScoresLevel"])) error("Expected integer");
     retval.tot_s_times_scores_level = json["tot_sTimesScoresLevel"];
+    if (!intp(json["tot_sTurnovers"])) error("Expected integer");
     retval.tot_s_turnovers = json["tot_sTurnovers"];
+    if (!intp(json["tot_sTurnoversTeam"])) error("Expected integer");
     retval.tot_s_turnovers_team = json["tot_sTurnoversTeam"];
+    if (!intp(json["tot_sTwoPointersAttempted"])) error("Expected integer");
     retval.tot_s_two_pointers_attempted = json["tot_sTwoPointersAttempted"];
+    if (!intp(json["tot_sTwoPointersMade"])) error("Expected integer");
     retval.tot_s_two_pointers_made = json["tot_sTwoPointersMade"];
+    if (!intp(json["tot_sTwoPointersPercentage"])) error("Expected integer");
     retval.tot_s_two_pointers_percentage = json["tot_sTwoPointersPercentage"];
 
     return retval;
@@ -838,15 +912,21 @@ class Pl {
 Pl Pl_from_JSON(mixed json) {
     Pl retval = Pl();
 
+    if (!intp(json["active"])) error("Expected integer");
     retval.active = json["active"];
     retval.captain = json["captain"];
     retval.comp = json["comp"] == Val.null ? Val.null : Comp_from_JSON(json["comp"]);
+    if (!intp(json["eff_1"])) error("Expected integer");
     retval.eff_1 = json["eff_1"];
+    if (!intp(json["eff_2"])) error("Expected integer");
     retval.eff_2 = json["eff_2"];
     retval.eff_3 = (float)json["eff_3"];
     retval.eff_4 = (float)json["eff_4"];
+    if (!intp(json["eff_5"])) error("Expected integer");
     retval.eff_5 = json["eff_5"];
+    if (!intp(json["eff_6"])) error("Expected integer");
     retval.eff_6 = json["eff_6"];
+    if (!intp(json["eff_7"])) error("Expected integer");
     retval.eff_7 = json["eff_7"];
     retval.family_name = json["familyName"];
     retval.family_name_initial = FamilyNameInitial_from_JSON(json["familyNameInitial"]);
@@ -858,36 +938,64 @@ Pl Pl_from_JSON(mixed json) {
     retval.international_first_name_initial = FirstNameInitial_from_JSON(json["internationalFirstNameInitial"]);
     retval.name = json["name"];
     retval.playing_position = json["playingPosition"];
+    if (!intp(json["sAssists"])) error("Expected integer");
     retval.s_assists = json["sAssists"];
+    if (!intp(json["sBlocks"])) error("Expected integer");
     retval.s_blocks = json["sBlocks"];
+    if (!intp(json["sBlocksReceived"])) error("Expected integer");
     retval.s_blocks_received = json["sBlocksReceived"];
+    if (!intp(json["sFieldGoalsAttempted"])) error("Expected integer");
     retval.s_field_goals_attempted = json["sFieldGoalsAttempted"];
+    if (!intp(json["sFieldGoalsMade"])) error("Expected integer");
     retval.s_field_goals_made = json["sFieldGoalsMade"];
+    if (!intp(json["sFieldGoalsPercentage"])) error("Expected integer");
     retval.s_field_goals_percentage = json["sFieldGoalsPercentage"];
+    if (!intp(json["sFoulsOn"])) error("Expected integer");
     retval.s_fouls_on = json["sFoulsOn"];
+    if (!intp(json["sFoulsPersonal"])) error("Expected integer");
     retval.s_fouls_personal = json["sFoulsPersonal"];
+    if (!intp(json["sFreeThrowsAttempted"])) error("Expected integer");
     retval.s_free_throws_attempted = json["sFreeThrowsAttempted"];
+    if (!intp(json["sFreeThrowsMade"])) error("Expected integer");
     retval.s_free_throws_made = json["sFreeThrowsMade"];
+    if (!intp(json["sFreeThrowsPercentage"])) error("Expected integer");
     retval.s_free_throws_percentage = json["sFreeThrowsPercentage"];
     if (arrayp(json["sMinutes"])) error("Unexpected array");
     retval.s_minutes = json["sMinutes"];
+    if (!intp(json["sPlusMinusPoints"])) error("Expected integer");
     retval.s_plus_minus_points = json["sPlusMinusPoints"];
+    if (!intp(json["sPoints"])) error("Expected integer");
     retval.s_points = json["sPoints"];
+    if (!intp(json["sPointsFastBreak"])) error("Expected integer");
     retval.s_points_fast_break = json["sPointsFastBreak"];
+    if (!intp(json["sPointsInThePaint"])) error("Expected integer");
     retval.s_points_in_the_paint = json["sPointsInThePaint"];
+    if (!intp(json["sPointsSecondChance"])) error("Expected integer");
     retval.s_points_second_chance = json["sPointsSecondChance"];
+    if (!intp(json["sReboundsDefensive"])) error("Expected integer");
     retval.s_rebounds_defensive = json["sReboundsDefensive"];
+    if (!intp(json["sReboundsOffensive"])) error("Expected integer");
     retval.s_rebounds_offensive = json["sReboundsOffensive"];
+    if (!intp(json["sReboundsTotal"])) error("Expected integer");
     retval.s_rebounds_total = json["sReboundsTotal"];
+    if (!intp(json["sSteals"])) error("Expected integer");
     retval.s_steals = json["sSteals"];
+    if (!intp(json["sThreePointersAttempted"])) error("Expected integer");
     retval.s_three_pointers_attempted = json["sThreePointersAttempted"];
+    if (!intp(json["sThreePointersMade"])) error("Expected integer");
     retval.s_three_pointers_made = json["sThreePointersMade"];
+    if (!intp(json["sThreePointersPercentage"])) error("Expected integer");
     retval.s_three_pointers_percentage = json["sThreePointersPercentage"];
+    if (!intp(json["sTurnovers"])) error("Expected integer");
     retval.s_turnovers = json["sTurnovers"];
+    if (!intp(json["sTwoPointersAttempted"])) error("Expected integer");
     retval.s_two_pointers_attempted = json["sTwoPointersAttempted"];
+    if (!intp(json["sTwoPointersMade"])) error("Expected integer");
     retval.s_two_pointers_made = json["sTwoPointersMade"];
+    if (!intp(json["sTwoPointersPercentage"])) error("Expected integer");
     retval.s_two_pointers_percentage = json["sTwoPointersPercentage"];
     retval.shirt_number = json["shirtNumber"];
+    if (!intp(json["starter"])) error("Expected integer");
     retval.starter = json["starter"];
 
     return retval;
@@ -966,16 +1074,23 @@ Shot Shot_from_JSON(mixed json) {
     Shot retval = Shot();
 
     retval.action_type = ActionType_from_JSON(json["actionType"]);
+    if (!intp(json["p"])) error("Expected integer");
     retval.p = json["p"];
+    if (!intp(json["per"])) error("Expected integer");
     retval.per = json["per"];
     retval.per_type = PerType_from_JSON(json["perType"]);
     retval.player = json["player"];
+    if (!intp(json["pno"])) error("Expected integer");
     retval.pno = json["pno"];
+    if (!intp(json["r"])) error("Expected integer");
     retval.r = json["r"];
     retval.shirt_number = json["shirtNumber"];
     retval.sub_type = SubType_from_JSON(json["subType"]);
+    if (!intp(json["tno"])) error("Expected integer");
     retval.tno = json["tno"];
+    if (!intp(json["x"])) error("Expected integer");
     retval.x = json["x"];
+    if (!intp(json["y"])) error("Expected integer");
     retval.y = json["y"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.pmod
index 5bdd54e..28be213 100644
--- a/base/pike/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.pmod
@@ -296,6 +296,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.y_string_with_del_character_json = json["y_string_with_del_character.json"];
     if (json["y_structure_lonely_false.json"] != Standards.JSON.true && json["y_structure_lonely_false.json"] != Standards.JSON.false) error("Expected bool");
     retval.y_structure_lonely_false_json = json["y_structure_lonely_false.json"];
+    if (!intp(json["y_structure_lonely_int.json"])) error("Expected integer");
     retval.y_structure_lonely_int_json = json["y_structure_lonely_int.json"];
     retval.y_structure_lonely_negative_real_json = (float)json["y_structure_lonely_negative_real.json"];
     retval.y_structure_lonely_null_json = json["y_structure_lonely_null.json"];
@@ -367,6 +368,7 @@ class YObjectEmptyKeyJson {
 YObjectEmptyKeyJson YObjectEmptyKeyJson_from_JSON(mixed json) {
     YObjectEmptyKeyJson retval = YObjectEmptyKeyJson();
 
+    if (!intp(json[""])) error("Expected integer");
     retval.empty = json[""];
 
     return retval;
@@ -387,6 +389,7 @@ class YObjectEscapedNullInKeyJson {
 YObjectEscapedNullInKeyJson YObjectEscapedNullInKeyJson_from_JSON(mixed json) {
     YObjectEscapedNullInKeyJson retval = YObjectEscapedNullInKeyJson();
 
+    if (!intp(json["foo\u0000bar"])) error("Expected integer");
     retval.foo_bar = json["foo\u0000bar"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/priority/omit-empty.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/omit-empty.json/default/TopLevel.pmod
index ea06266..ee6e5ec 100644
--- a/base/pike/test/inputs/json/priority/omit-empty.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/omit-empty.json/default/TopLevel.pmod
@@ -49,6 +49,7 @@ class Result {
 Result Result_from_JSON(mixed json) {
     Result retval = Result();
 
+    if (!intp(json["age"])) error("Expected integer");
     retval.age = json["age"];
     retval.name = json["name"];
 
diff --git a/base/pike/test/inputs/json/priority/php-validation.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/php-validation.json/default/TopLevel.pmod
index 116ef6a..ec14972 100644
--- a/base/pike/test/inputs/json/priority/php-validation.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/php-validation.json/default/TopLevel.pmod
@@ -37,6 +37,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
 
     if (json["boolean"] != Standards.JSON.true && json["boolean"] != Standards.JSON.false) error("Expected bool");
     retval.boolean = json["boolean"];
+    if (!intp(json["integer"])) error("Expected integer");
     retval.integer = json["integer"];
     retval.integers = json["integers"];
     retval.number = (float)json["number"];
diff --git a/base/pike/test/inputs/json/priority/recursive.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/recursive.json/default/TopLevel.pmod
index f3f7ec8..ea637a7 100644
--- a/base/pike/test/inputs/json/priority/recursive.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/recursive.json/default/TopLevel.pmod
@@ -48,13 +48,18 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.category = Category_from_JSON(json["category"]);
     retval.details = Details_from_JSON(json["details"]);
     retval.match = json["match"];
+    if (!intp(json["page"])) error("Expected integer");
     retval.page = json["page"];
     retval.product = json["product"];
     if (json["schk"] != Standards.JSON.true && json["schk"] != Standards.JSON.false) error("Expected bool");
     retval.schk = json["schk"];
+    if (!intp(json["totallooseoffers"])) error("Expected integer");
     retval.totallooseoffers = json["totallooseoffers"];
+    if (!intp(json["totalpages"])) error("Expected integer");
     retval.totalpages = json["totalpages"];
+    if (!intp(json["totalresultsavailable"])) error("Expected integer");
     retval.totalresultsavailable = json["totalresultsavailable"];
+    if (!intp(json["totalresultsreturned"])) error("Expected integer");
     retval.totalresultsreturned = json["totalresultsreturned"];
 
     return retval;
@@ -93,11 +98,13 @@ Category Category_from_JSON(mixed json) {
     retval.concatenatecategoryname = json["concatenatecategoryname"];
     if (json["hasoffer"] != Standards.JSON.true && json["hasoffer"] != Standards.JSON.false) error("Expected bool");
     retval.hasoffer = json["hasoffer"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     if (json["isfinal"] != Standards.JSON.true && json["isfinal"] != Standards.JSON.false) error("Expected bool");
     retval.isfinal = json["isfinal"];
     retval.links = json["links"];
     retval.name = json["name"];
+    if (!intp(json["parentcategoryid"])) error("Expected integer");
     retval.parentcategoryid = json["parentcategoryid"];
     retval.thumbnail = CategoryThumbnail_from_JSON(json["thumbnail"]);
 
@@ -196,8 +203,10 @@ Details Details_from_JSON(mixed json) {
 
     retval.applicationid = json["applicationid"];
     retval.applicationversion = json["applicationversion"];
+    if (!intp(json["code"])) error("Expected integer");
     retval.code = json["code"];
     retval.date = Date_from_JSON(json["date"]);
+    if (!intp(json["elapsedtime"])) error("Expected integer");
     retval.elapsedtime = json["elapsedtime"];
     retval.message = json["message"];
     retval.status = json["status"];
@@ -240,17 +249,25 @@ class Date {
 Date Date_from_JSON(mixed json) {
     Date retval = Date();
 
+    if (!intp(json["day"])) error("Expected integer");
     retval.day = json["day"];
     retval.eonandyear = Eonandyear_from_JSON(json["eonandyear"]);
+    if (!intp(json["hour"])) error("Expected integer");
     retval.hour = json["hour"];
+    if (!intp(json["millisecond"])) error("Expected integer");
     retval.millisecond = json["millisecond"];
+    if (!intp(json["minute"])) error("Expected integer");
     retval.minute = json["minute"];
+    if (!intp(json["month"])) error("Expected integer");
     retval.month = json["month"];
+    if (!intp(json["second"])) error("Expected integer");
     retval.second = json["second"];
+    if (!intp(json["timezone"])) error("Expected integer");
     retval.timezone = json["timezone"];
     if (json["valid"] != Standards.JSON.true && json["valid"] != Standards.JSON.false) error("Expected bool");
     retval.valid = json["valid"];
     retval.xmlschematype = Xmlschematype_from_JSON(json["xmlschematype"]);
+    if (!intp(json["year"])) error("Expected integer");
     retval.year = json["year"];
 
     return retval;
@@ -271,6 +288,7 @@ class Eonandyear {
 Eonandyear Eonandyear_from_JSON(mixed json) {
     Eonandyear retval = Eonandyear();
 
+    if (!intp(json["lowestsetbit"])) error("Expected integer");
     retval.lowestsetbit = json["lowestsetbit"];
 
     return retval;
@@ -367,6 +385,7 @@ class ProductProduct {
 ProductProduct ProductProduct_from_JSON(mixed json) {
     ProductProduct retval = ProductProduct();
 
+    if (!intp(json["categoryid"])) error("Expected integer");
     retval.categoryid = json["categoryid"];
     retval.currency = Currency_from_JSON(json["currency"]);
     if (json["eco"] != Standards.JSON.true && json["eco"] != Standards.JSON.false) error("Expected bool");
@@ -375,16 +394,20 @@ ProductProduct ProductProduct_from_JSON(mixed json) {
     retval.fulldescription = json["fulldescription"];
     if (json["hasmetasearch"] != Standards.JSON.true && json["hasmetasearch"] != Standards.JSON.false) error("Expected bool");
     retval.hasmetasearch = json["hasmetasearch"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.links = json["links"];
+    if (!intp(json["numoffers"])) error("Expected integer");
     retval.numoffers = json["numoffers"];
     retval.pricemax = json["pricemax"];
     retval.pricemin = json["pricemin"];
     retval.productname = json["productname"];
+    if (!intp(json["quantity"])) error("Expected integer");
     retval.quantity = json["quantity"];
     retval.rating = Rating_from_JSON(json["rating"]);
     retval.specification = Specification_from_JSON(json["specification"]);
     retval.thumbnail = FormatsClass_from_JSON(json["thumbnail"]);
+    if (!intp(json["totalsellers"])) error("Expected integer");
     retval.totalsellers = json["totalsellers"];
 
     return retval;
@@ -450,6 +473,7 @@ Useraveragerating Useraveragerating_from_JSON(mixed json) {
     Useraveragerating retval = Useraveragerating();
 
     retval.links = json["links"];
+    if (!intp(json["numcomments"])) error("Expected integer");
     retval.numcomments = json["numcomments"];
     retval.rating = json["rating"];
 
@@ -518,8 +542,10 @@ FormatsClass FormatsClass_from_JSON(mixed json) {
     FormatsClass retval = FormatsClass();
 
     retval.formats = json["formats"];
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.url = json["url"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/priority/uuids.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/uuids.json/default/TopLevel.pmod
index 3449cbd..f206d9d 100644
--- a/base/pike/test/inputs/json/priority/uuids.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/uuids.json/default/TopLevel.pmod
@@ -40,6 +40,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     if (json["booleanValue"] != Standards.JSON.true && json["booleanValue"] != Standards.JSON.false) error("Expected bool");
     retval.boolean_value = json["booleanValue"];
     retval.double_value = (float)json["doubleValue"];
+    if (!intp(json["intValue"])) error("Expected integer");
     retval.int_value = json["intValue"];
     retval.string_value = json["stringValue"];
     retval.uuid_value = json["uuidValue"];
diff --git a/base/pike/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.pmod b/head/pike/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.pmod
index e52dbe2..0a66795 100644
--- a/base/pike/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.pmod
@@ -35,9 +35,12 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["block_index"])) error("Expected integer");
     retval.block_index = json["block_index"];
     retval.hash = json["hash"];
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
+    if (!intp(json["time"])) error("Expected integer");
     retval.time = json["time"];
     retval.tx_indexes = json["txIndexes"];
 
diff --git a/base/pike/test/inputs/json/samples/github-events.json/default/TopLevel.pmod b/head/pike/test/inputs/json/samples/github-events.json/default/TopLevel.pmod
index 7bbd373..166eda9 100644
--- a/base/pike/test/inputs/json/samples/github-events.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/samples/github-events.json/default/TopLevel.pmod
@@ -88,6 +88,7 @@ Actor Actor_from_JSON(mixed json) {
     retval.avatar_url = json["avatar_url"];
     retval.display_login = json["display_login"];
     retval.gravatar_id = json["gravatar_id"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.login = json["login"];
     retval.url = json["url"];
@@ -192,6 +193,7 @@ Comment Comment_from_JSON(mixed json) {
     retval.body = json["body"];
     retval.created_at = json["created_at"];
     retval.html_url = json["html_url"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.issue_url = json["issue_url"];
     retval.updated_at = json["updated_at"];
@@ -255,6 +257,7 @@ User User_from_JSON(mixed json) {
     retval.gists_url = json["gists_url"];
     retval.gravatar_id = json["gravatar_id"];
     retval.html_url = json["html_url"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.login = json["login"];
     retval.organizations_url = json["organizations_url"];
@@ -397,11 +400,13 @@ Issue Issue_from_JSON(mixed json) {
     retval.body = json["body"];
     if (!has_index(json, "closed_at")) error("Missing required property");
     retval.closed_at = json["closed_at"];
+    if (!intp(json["comments"])) error("Expected integer");
     retval.comments = json["comments"];
     retval.comments_url = json["comments_url"];
     retval.created_at = json["created_at"];
     retval.events_url = json["events_url"];
     retval.html_url = json["html_url"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.labels = json["labels"];
     retval.labels_url = json["labels_url"];
@@ -409,6 +414,7 @@ Issue Issue_from_JSON(mixed json) {
     retval.locked = json["locked"];
     if (!has_index(json, "milestone")) error("Missing required property");
     retval.milestone = json["milestone"] == Val.null ? Val.null : Milestone_from_JSON(json["milestone"]);
+    if (!intp(json["number"])) error("Expected integer");
     retval.number = json["number"];
     retval.pull_request = json["pull_request"] == Val.null ? Val.null : IssuePullRequest_from_JSON(json["pull_request"]);
     retval.repository_url = json["repository_url"];
@@ -445,6 +451,7 @@ Label Label_from_JSON(mixed json) {
     Label retval = Label();
 
     retval.color = json["color"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     if (json["default"] != Standards.JSON.true && json["default"] != Standards.JSON.false) error("Expected bool");
     retval.label_default = json["default"];
@@ -498,6 +505,7 @@ Milestone Milestone_from_JSON(mixed json) {
     Milestone retval = Milestone();
 
     retval.closed_at = json["closed_at"];
+    if (!intp(json["closed_issues"])) error("Expected integer");
     retval.closed_issues = json["closed_issues"];
     retval.created_at = json["created_at"];
     retval.creator = User_from_JSON(json["creator"]);
@@ -505,9 +513,12 @@ Milestone Milestone_from_JSON(mixed json) {
     if (!has_index(json, "due_on")) error("Missing required property");
     retval.due_on = json["due_on"];
     retval.html_url = json["html_url"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.labels_url = json["labels_url"];
+    if (!intp(json["number"])) error("Expected integer");
     retval.number = json["number"];
+    if (!intp(json["open_issues"])) error("Expected integer");
     retval.open_issues = json["open_issues"];
     retval.state = json["state"];
     retval.title = json["title"];
@@ -641,22 +652,28 @@ class PayloadPullRequest {
 PayloadPullRequest PayloadPullRequest_from_JSON(mixed json) {
     PayloadPullRequest retval = PayloadPullRequest();
 
+    if (!intp(json["additions"])) error("Expected integer");
     retval.additions = json["additions"];
     retval.assignee = json["assignee"];
     retval.assignees = json["assignees"];
     retval.base = Base_from_JSON(json["base"]);
     retval.body = json["body"];
+    if (!intp(json["changed_files"])) error("Expected integer");
     retval.changed_files = json["changed_files"];
     retval.closed_at = json["closed_at"];
+    if (!intp(json["comments"])) error("Expected integer");
     retval.comments = json["comments"];
     retval.comments_url = json["comments_url"];
+    if (!intp(json["commits"])) error("Expected integer");
     retval.commits = json["commits"];
     retval.commits_url = json["commits_url"];
     retval.created_at = json["created_at"];
+    if (!intp(json["deletions"])) error("Expected integer");
     retval.deletions = json["deletions"];
     retval.diff_url = json["diff_url"];
     retval.head = Base_from_JSON(json["head"]);
     retval.html_url = json["html_url"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.issue_url = json["issue_url"];
     retval.links = Links_from_JSON(json["_links"]);
@@ -672,11 +689,13 @@ PayloadPullRequest PayloadPullRequest_from_JSON(mixed json) {
     retval.merged_at = json["merged_at"];
     retval.merged_by = User_from_JSON(json["merged_by"]);
     retval.milestone = json["milestone"];
+    if (!intp(json["number"])) error("Expected integer");
     retval.number = json["number"];
     retval.patch_url = json["patch_url"];
     retval.rebaseable = json["rebaseable"];
     retval.requested_reviewers = json["requested_reviewers"];
     retval.review_comment_url = json["review_comment_url"];
+    if (!intp(json["review_comments"])) error("Expected integer");
     retval.review_comments = json["review_comments"];
     retval.review_comments_url = json["review_comments_url"];
     retval.state = json["state"];
@@ -891,7 +910,9 @@ BaseRepo BaseRepo_from_JSON(mixed json) {
     retval.events_url = json["events_url"];
     if (json["fork"] != Standards.JSON.true && json["fork"] != Standards.JSON.false) error("Expected bool");
     retval.fork = json["fork"];
+    if (!intp(json["forks"])) error("Expected integer");
     retval.forks = json["forks"];
+    if (!intp(json["forks_count"])) error("Expected integer");
     retval.forks_count = json["forks_count"];
     retval.forks_url = json["forks_url"];
     retval.full_name = json["full_name"];
@@ -912,6 +933,7 @@ BaseRepo BaseRepo_from_JSON(mixed json) {
     retval.homepage = json["homepage"];
     retval.hooks_url = json["hooks_url"];
     retval.html_url = json["html_url"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.issue_comment_url = json["issue_comment_url"];
     retval.issue_events_url = json["issue_events_url"];
@@ -925,7 +947,9 @@ BaseRepo BaseRepo_from_JSON(mixed json) {
     retval.mirror_url = json["mirror_url"];
     retval.name = json["name"];
     retval.notifications_url = json["notifications_url"];
+    if (!intp(json["open_issues"])) error("Expected integer");
     retval.open_issues = json["open_issues"];
+    if (!intp(json["open_issues_count"])) error("Expected integer");
     retval.open_issues_count = json["open_issues_count"];
     retval.owner = User_from_JSON(json["owner"]);
     retval.pulls_url = json["pulls_url"];
@@ -933,8 +957,10 @@ BaseRepo BaseRepo_from_JSON(mixed json) {
     retval.releases_url = json["releases_url"];
     if (json["private"] != Standards.JSON.true && json["private"] != Standards.JSON.false) error("Expected bool");
     retval.repo_private = json["private"];
+    if (!intp(json["size"])) error("Expected integer");
     retval.size = json["size"];
     retval.ssh_url = json["ssh_url"];
+    if (!intp(json["stargazers_count"])) error("Expected integer");
     retval.stargazers_count = json["stargazers_count"];
     retval.stargazers_url = json["stargazers_url"];
     retval.statuses_url = json["statuses_url"];
@@ -946,7 +972,9 @@ BaseRepo BaseRepo_from_JSON(mixed json) {
     retval.trees_url = json["trees_url"];
     retval.updated_at = json["updated_at"];
     retval.url = json["url"];
+    if (!intp(json["watchers"])) error("Expected integer");
     retval.watchers = json["watchers"];
+    if (!intp(json["watchers_count"])) error("Expected integer");
     retval.watchers_count = json["watchers_count"];
 
     return retval;
@@ -1032,6 +1060,7 @@ class TopLevelRepo {
 TopLevelRepo TopLevelRepo_from_JSON(mixed json) {
     TopLevelRepo retval = TopLevelRepo();
 
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.name = json["name"];
     retval.url = json["url"];
diff --git a/base/pike/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.pmod b/head/pike/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.pmod
index 1468d02..a892151 100644
--- a/base/pike/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.pmod
@@ -58,6 +58,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.date_value = json["dateValue"];
     retval.different_things = json["differentThings"];
     retval.double_value = (float)json["doubleValue"];
+    if (!intp(json["intValue"])) error("Expected integer");
     retval.int_value = json["intValue"];
     foreach (json["mapValue"]; mixed _; mixed value) if (stringp(value)) error("Unexpected string");
     retval.map_value = json["mapValue"];
@@ -150,6 +151,7 @@ class PurplePerson {
 PurplePerson PurplePerson_from_JSON(mixed json) {
     PurplePerson retval = PurplePerson();
 
+    if (!intp(json["intOrString"])) error("Expected integer");
     retval.int_or_string = json["intOrString"];
     retval.name = json["name"];
 
diff --git a/base/pike/test/inputs/json/samples/null-safe.json/default/TopLevel.pmod b/head/pike/test/inputs/json/samples/null-safe.json/default/TopLevel.pmod
index 9fece3a..85a8917 100644
--- a/base/pike/test/inputs/json/samples/null-safe.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/samples/null-safe.json/default/TopLevel.pmod
@@ -56,6 +56,7 @@ Item Item_from_JSON(mixed json) {
     retval.address = json["address"] == Val.null ? Val.null : Address_from_JSON(json["address"]);
     retval.created_at = json["created_at"];
     retval.name = json["name"];
+    if (!intp(json["sex"])) error("Expected integer");
     if (!has_index(json, "sex")) error("Missing required property");
     retval.sex = json["sex"];
 
diff --git a/base/pike/test/inputs/json/samples/pokedex.json/default/TopLevel.pmod b/head/pike/test/inputs/json/samples/pokedex.json/default/TopLevel.pmod
index a1d5293..e03d0c5 100644
--- a/base/pike/test/inputs/json/samples/pokedex.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/samples/pokedex.json/default/TopLevel.pmod
@@ -84,6 +84,7 @@ Pokemon Pokemon_from_JSON(mixed json) {
     retval.candy_count = json["candy_count"];
     retval.egg = Egg_from_JSON(json["egg"]);
     retval.height = json["height"];
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
     retval.img = json["img"];
     if (!has_index(json, "multipliers")) error("Missing required property");
diff --git a/base/pike/test/inputs/json/samples/reddit.json/default/TopLevel.pmod b/head/pike/test/inputs/json/samples/reddit.json/default/TopLevel.pmod
index 649c3a7..92aab7c 100644
--- a/base/pike/test/inputs/json/samples/reddit.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/samples/reddit.json/default/TopLevel.pmod
@@ -253,14 +253,18 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.clicked = json["clicked"];
     if (json["contest_mode"] != Standards.JSON.true && json["contest_mode"] != Standards.JSON.false) error("Expected bool");
     retval.contest_mode = json["contest_mode"];
+    if (!intp(json["created"])) error("Expected integer");
     retval.created = json["created"];
+    if (!intp(json["created_utc"])) error("Expected integer");
     retval.created_utc = json["created_utc"];
     if (!has_index(json, "distinguished")) error("Missing required property");
     retval.distinguished = json["distinguished"];
     retval.domain = Domain_from_JSON(json["domain"]);
+    if (!intp(json["downs"])) error("Expected integer");
     retval.downs = json["downs"];
     if (json["edited"] != Standards.JSON.true && json["edited"] != Standards.JSON.false) error("Expected bool");
     retval.edited = json["edited"];
+    if (!intp(json["gilded"])) error("Expected integer");
     retval.gilded = json["gilded"];
     if (json["hidden"] != Standards.JSON.true && json["hidden"] != Standards.JSON.false) error("Expected bool");
     retval.hidden = json["hidden"];
@@ -282,6 +286,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.media_embed = MediaEmbed_from_JSON(json["media_embed"]);
     retval.mod_reports = json["mod_reports"];
     retval.name = json["name"];
+    if (!intp(json["num_comments"])) error("Expected integer");
     retval.num_comments = json["num_comments"];
     retval.num_reports = json["num_reports"];
     if (json["over_18"] != Standards.JSON.true && json["over_18"] != Standards.JSON.false) error("Expected bool");
@@ -296,6 +301,7 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.report_reasons = json["report_reasons"];
     if (json["saved"] != Standards.JSON.true && json["saved"] != Standards.JSON.false) error("Expected bool");
     retval.saved = json["saved"];
+    if (!intp(json["score"])) error("Expected integer");
     retval.score = json["score"];
     retval.secure_media = json["secure_media"];
     retval.secure_media_embed = MediaEmbed_from_JSON(json["secure_media_embed"]);
@@ -311,9 +317,12 @@ ChildData ChildData_from_JSON(mixed json) {
     retval.subreddit_type = SubredditType_from_JSON(json["subreddit_type"]);
     retval.suggested_sort = json["suggested_sort"];
     retval.thumbnail = json["thumbnail"];
+    if (!intp(json["thumbnail_height"])) error("Expected integer");
     retval.thumbnail_height = json["thumbnail_height"];
+    if (!intp(json["thumbnail_width"])) error("Expected integer");
     retval.thumbnail_width = json["thumbnail_width"];
     retval.title = json["title"];
+    if (!intp(json["ups"])) error("Expected integer");
     retval.ups = json["ups"];
     retval.url = json["url"];
     retval.user_reports = json["user_reports"];
@@ -441,8 +450,10 @@ class Source {
 Source Source_from_JSON(mixed json) {
     Source retval = Source();
 
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.url = json["url"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
diff --git a/base/pike/test/inputs/json/samples/simple-object.json/default/TopLevel.pmod b/head/pike/test/inputs/json/samples/simple-object.json/default/TopLevel.pmod
index 102351c..b576837 100644
--- a/base/pike/test/inputs/json/samples/simple-object.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/samples/simple-object.json/default/TopLevel.pmod
@@ -31,6 +31,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["date"])) error("Expected integer");
     retval.date = json["date"];
     retval.title = json["title"];
     if (json["validity"] != Standards.JSON.true && json["validity"] != Standards.JSON.false) error("Expected bool");
diff --git a/base/pike/test/inputs/json/samples/spotify-album.json/default/TopLevel.pmod b/head/pike/test/inputs/json/samples/spotify-album.json/default/TopLevel.pmod
index 410d7e1..cc802e3 100644
--- a/base/pike/test/inputs/json/samples/spotify-album.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/samples/spotify-album.json/default/TopLevel.pmod
@@ -70,6 +70,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.id = json["id"];
     retval.images = json["images"];
     retval.name = json["name"];
+    if (!intp(json["popularity"])) error("Expected integer");
     retval.popularity = json["popularity"];
     retval.release_date = json["release_date"];
     retval.release_date_precision = json["release_date_precision"];
@@ -197,8 +198,10 @@ class Image {
 Image Image_from_JSON(mixed json) {
     Image retval = Image();
 
+    if (!intp(json["height"])) error("Expected integer");
     retval.height = json["height"];
     retval.url = json["url"];
+    if (!intp(json["width"])) error("Expected integer");
     retval.width = json["width"];
 
     return retval;
@@ -233,10 +236,13 @@ Tracks Tracks_from_JSON(mixed json) {
 
     retval.href = json["href"];
     retval.items = json["items"];
+    if (!intp(json["limit"])) error("Expected integer");
     retval.limit = json["limit"];
     retval.next = json["next"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
     retval.previous = json["previous"];
+    if (!intp(json["total"])) error("Expected integer");
     retval.total = json["total"];
 
     return retval;
@@ -283,7 +289,9 @@ Item Item_from_JSON(mixed json) {
 
     retval.artists = json["artists"];
     retval.available_markets = json["available_markets"];
+    if (!intp(json["disc_number"])) error("Expected integer");
     retval.disc_number = json["disc_number"];
+    if (!intp(json["duration_ms"])) error("Expected integer");
     retval.duration_ms = json["duration_ms"];
     if (json["explicit"] != Standards.JSON.true && json["explicit"] != Standards.JSON.false) error("Expected bool");
     retval.explicit = json["explicit"];
@@ -292,6 +300,7 @@ Item Item_from_JSON(mixed json) {
     retval.id = json["id"];
     retval.name = json["name"];
     retval.preview_url = json["preview_url"];
+    if (!intp(json["track_number"])) error("Expected integer");
     retval.track_number = json["track_number"];
     retval.type = json["type"];
     retval.uri = json["uri"];
diff --git a/base/pike/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.pmod b/head/pike/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.pmod
index 0e6bcb4..1de287a 100644
--- a/base/pike/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.pmod
@@ -80,6 +80,7 @@ Description Description_from_JSON(mixed json) {
     Description retval = Description();
 
     retval.base_period = json["base_period"];
+    if (!intp(json["missing"])) error("Expected integer");
     retval.missing = json["missing"];
     retval.title = json["title"];
     retval.units = json["units"];
diff --git a/base/pike/test/inputs/json/samples/us-senators.json/default/TopLevel.pmod b/head/pike/test/inputs/json/samples/us-senators.json/default/TopLevel.pmod
index 91eeaf6..1e0ab3f 100644
--- a/base/pike/test/inputs/json/samples/us-senators.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/samples/us-senators.json/default/TopLevel.pmod
@@ -54,8 +54,11 @@ class Meta {
 Meta Meta_from_JSON(mixed json) {
     Meta retval = Meta();
 
+    if (!intp(json["limit"])) error("Expected integer");
     retval.limit = json["limit"];
+    if (!intp(json["offset"])) error("Expected integer");
     retval.offset = json["offset"];
+    if (!intp(json["total_count"])) error("Expected integer");
     retval.total_count = json["total_count"];
 
     return retval;
@@ -238,6 +241,7 @@ Person Person_from_JSON(mixed json) {
 
     retval.bioguideid = json["bioguideid"];
     retval.birthday = json["birthday"];
+    if (!intp(json["cspanid"])) error("Expected integer");
     retval.cspanid = json["cspanid"];
     retval.firstname = json["firstname"];
     retval.gender = Gender_from_JSON(json["gender"]);
diff --git a/base/schema-pike/test/inputs/schema/const-non-string.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/const-non-string.schema/default/TopLevel.pmod
index 674fb07..8b848d0 100644
--- a/base/schema-pike/test/inputs/schema/const-non-string.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/const-non-string.schema/default/TopLevel.pmod
@@ -35,6 +35,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["amount"])) error("Expected integer");
     retval.amount = json["amount"];
     if (json["enabled"] != Standards.JSON.true && json["enabled"] != Standards.JSON.false) error("Expected bool");
     retval.enabled = json["enabled"];
diff --git a/base/schema-pike/test/inputs/schema/cut-enum.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/cut-enum.schema/default/TopLevel.pmod
index 20adf0e..5a7ae3f 100644
--- a/base/schema-pike/test/inputs/schema/cut-enum.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/cut-enum.schema/default/TopLevel.pmod
@@ -27,6 +27,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["foo"])) error("Expected integer");
     retval.foo = json["foo"];
 
     return retval;
diff --git a/base/schema-pike/test/inputs/schema/default-value.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/default-value.schema/default/TopLevel.pmod
index b0a87f4..ed746dc 100644
--- a/base/schema-pike/test/inputs/schema/default-value.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/default-value.schema/default/TopLevel.pmod
@@ -28,6 +28,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["id"])) error("Expected integer");
     retval.id = json["id"];
 
     return retval;
diff --git a/base/schema-pike/test/inputs/schema/id-no-address.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/id-no-address.schema/default/TopLevel.pmod
index 8f9d3f2..808974e 100644
--- a/base/schema-pike/test/inputs/schema/id-no-address.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/id-no-address.schema/default/TopLevel.pmod
@@ -27,6 +27,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["item"])) error("Expected integer");
     retval.item = json["item"];
 
     return retval;
diff --git a/base/schema-pike/test/inputs/schema/id-root.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/id-root.schema/default/TopLevel.pmod
index 32ddf7a..03c5fdf 100644
--- a/base/schema-pike/test/inputs/schema/id-root.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/id-root.schema/default/TopLevel.pmod
@@ -27,6 +27,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["bar"])) error("Expected integer");
     retval.bar = json["bar"];
 
     return retval;
diff --git a/base/schema-pike/test/inputs/schema/implicit-all-of.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/implicit-all-of.schema/default/TopLevel.pmod
index a3f4cfe..f209742 100644
--- a/base/schema-pike/test/inputs/schema/implicit-all-of.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/implicit-all-of.schema/default/TopLevel.pmod
@@ -31,6 +31,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["foo"])) error("Expected integer");
     retval.foo = json["foo"];
     if (json["bar"] != Standards.JSON.true && json["bar"] != Standards.JSON.false) error("Expected bool");
     retval.bar = json["bar"];
diff --git a/base/schema-pike/test/inputs/schema/implicit-one-of.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/implicit-one-of.schema/default/TopLevel.pmod
index 1e7a0f4..01a276a 100644
--- a/base/schema-pike/test/inputs/schema/implicit-one-of.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/implicit-one-of.schema/default/TopLevel.pmod
@@ -31,6 +31,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["foo"])) error("Expected integer");
     retval.foo = json["foo"];
     retval.bar = json["bar"];
     retval.quux = json["quux"];
diff --git a/base/schema-pike/test/inputs/schema/integer-type.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/integer-type.schema/default/TopLevel.pmod
index ba7efc7..2dfa063 100644
--- a/base/schema-pike/test/inputs/schema/integer-type.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/integer-type.schema/default/TopLevel.pmod
@@ -45,26 +45,35 @@ TopLevel TopLevel_from_JSON(mixed json) {
 
     if (json["above_i32_max"] < 0) error("Value below minimum");
     if (json["above_i32_max"] > 2147483648) error("Value above maximum");
+    if (!intp(json["above_i32_max"])) error("Expected integer");
     retval.above_i32_max = json["above_i32_max"];
     if (json["below_i32_min"] < -2147483649) error("Value below minimum");
     if (json["below_i32_min"] > 0) error("Value above maximum");
+    if (!intp(json["below_i32_min"])) error("Expected integer");
     retval.below_i32_min = json["below_i32_min"];
     if (json["i32_range"] < -2147483648) error("Value below minimum");
     if (json["i32_range"] > 2147483647) error("Value above maximum");
+    if (!intp(json["i32_range"])) error("Expected integer");
     retval.i32_range = json["i32_range"];
     if (json["large_bounds"] < -9007199254740991) error("Value below minimum");
     if (json["large_bounds"] > 9007199254740991) error("Value above maximum");
+    if (!intp(json["large_bounds"])) error("Expected integer");
     retval.large_bounds = json["large_bounds"];
     if (json["only_maximum"] > 0) error("Value above maximum");
+    if (!intp(json["only_maximum"])) error("Expected integer");
     retval.only_maximum = json["only_maximum"];
     if (json["only_minimum"] < 0) error("Value below minimum");
+    if (!intp(json["only_minimum"])) error("Expected integer");
     retval.only_minimum = json["only_minimum"];
     if (json["small_negative"] < -100) error("Value below minimum");
     if (json["small_negative"] > 0) error("Value above maximum");
+    if (!intp(json["small_negative"])) error("Expected integer");
     retval.small_negative = json["small_negative"];
     if (json["small_positive"] < 0) error("Value below minimum");
     if (json["small_positive"] > 100) error("Value above maximum");
+    if (!intp(json["small_positive"])) error("Expected integer");
     retval.small_positive = json["small_positive"];
+    if (!intp(json["unbounded"])) error("Expected integer");
     retval.unbounded = json["unbounded"];
 
     return retval;
diff --git a/base/schema-pike/test/inputs/schema/minmax-integer.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/minmax-integer.schema/default/TopLevel.pmod
index 7eca078..d654109 100644
--- a/base/schema-pike/test/inputs/schema/minmax-integer.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/minmax-integer.schema/default/TopLevel.pmod
@@ -41,23 +41,31 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["free"])) error("Expected integer");
     retval.free = json["free"];
     if (json["intersection"] < 4) error("Value below minimum");
     if (json["intersection"] > 5) error("Value above maximum");
+    if (!intp(json["intersection"])) error("Expected integer");
     retval.intersection = json["intersection"];
     if (json["max"] > 5) error("Value above maximum");
+    if (!intp(json["max"])) error("Expected integer");
     retval.max = json["max"];
     if (json["min"] < 3) error("Value below minimum");
+    if (!intp(json["min"])) error("Expected integer");
     retval.min = json["min"];
     if (json["minmax"] < 3) error("Value below minimum");
     if (json["minmax"] > 5) error("Value above maximum");
+    if (!intp(json["minmax"])) error("Expected integer");
     retval.minmax = json["minmax"];
     if (json["minMaxIntersection"] < 3) error("Value below minimum");
     if (json["minMaxIntersection"] > 5) error("Value above maximum");
+    if (!intp(json["minMaxIntersection"])) error("Expected integer");
     retval.min_max_intersection = json["minMaxIntersection"];
+    if (!intp(json["minMaxUnion"])) error("Expected integer");
     retval.min_max_union = json["minMaxUnion"];
     if (json["union"] < 3) error("Value below minimum");
     if (json["union"] > 6) error("Value above maximum");
+    if (!intp(json["union"])) error("Expected integer");
     retval.union = json["union"];
 
     return retval;
diff --git a/base/schema-pike/test/inputs/schema/non-standard-ref.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/non-standard-ref.schema/default/TopLevel.pmod
index c467a3b..4d947c3 100644
--- a/base/schema-pike/test/inputs/schema/non-standard-ref.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/non-standard-ref.schema/default/TopLevel.pmod
@@ -31,7 +31,9 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["bar"])) error("Expected integer");
     retval.bar = json["bar"];
+    if (!intp(json["foo"])) error("Expected integer");
     retval.foo = json["foo"];
     if (json["quux"] != Standards.JSON.true && json["quux"] != Standards.JSON.false) error("Expected bool");
     retval.quux = json["quux"];
diff --git a/base/schema-pike/test/inputs/schema/optional-const-ref.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/optional-const-ref.schema/default/TopLevel.pmod
index 69d5619..c8806c7 100644
--- a/base/schema-pike/test/inputs/schema/optional-const-ref.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/optional-const-ref.schema/default/TopLevel.pmod
@@ -49,6 +49,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.required_coordinates = json["requiredCoordinates"];
     if (json["requiredCount"] < 1) error("Value below minimum");
     if (json["requiredCount"] > 100) error("Value above maximum");
+    if (!intp(json["requiredCount"])) error("Expected integer");
     retval.required_count = json["requiredCount"];
     if (sizeof(json["requiredLabel"]) < 2) error("String too short");
     if (sizeof(json["requiredLabel"]) > 16) error("String too long");
diff --git a/base/schema-pike/test/inputs/schema/optional-constraints.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/optional-constraints.schema/default/TopLevel.pmod
index 2072ccf..44f4c3f 100644
--- a/base/schema-pike/test/inputs/schema/optional-constraints.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/optional-constraints.schema/default/TopLevel.pmod
@@ -48,6 +48,7 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.opt_string = json["optString"];
     if (json["reqZeroMin"] < 0) error("Value below minimum");
     if (json["reqZeroMin"] > 100) error("Value above maximum");
+    if (!intp(json["reqZeroMin"])) error("Expected integer");
     retval.req_zero_min = json["reqZeroMin"];
 
     return retval;
diff --git a/base/schema-pike/test/inputs/schema/ref-id-files.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/ref-id-files.schema/default/TopLevel.pmod
index 20adf0e..5a7ae3f 100644
--- a/base/schema-pike/test/inputs/schema/ref-id-files.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/ref-id-files.schema/default/TopLevel.pmod
@@ -27,6 +27,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["foo"])) error("Expected integer");
     retval.foo = json["foo"];
 
     return retval;
diff --git a/base/schema-pike/test/inputs/schema/required-non-properties.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/required-non-properties.schema/default/TopLevel.pmod
index 863c71c..077e5e3 100644
--- a/base/schema-pike/test/inputs/schema/required-non-properties.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/required-non-properties.schema/default/TopLevel.pmod
@@ -29,6 +29,7 @@ class TopLevel {
 TopLevel TopLevel_from_JSON(mixed json) {
     TopLevel retval = TopLevel();
 
+    if (!intp(json["foo"])) error("Expected integer");
     retval.foo = json["foo"];
     retval.bar = json["bar"];
 
