Skip to content

Commit 50dd8e5

Browse files
no snails with signatures
closes #70.
1 parent 83b78cd commit 50dd8e5

File tree

7 files changed

+33
-31
lines changed

7 files changed

+33
-31
lines changed

Changes

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
Revision history for JSON-Schema-Modern
22

33
{{$NEXT}}
4+
- avoid use of newly-experimental signature syntax on 5.35.9
45

56
0.545 2022-02-22 04:30:36Z
67
- avoid new experimental warning on 5.35.9

lib/JSON/Schema/Modern/Result.pm

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ has valid => (
3737
isa => InstanceOf['JSON::PP::Boolean'],
3838
coerce => sub { $_[0] ? JSON::PP::true : JSON::PP::false },
3939
);
40-
sub result { goto \&valid } # backcompat only
40+
sub result { shift->valid } # backcompat only
4141

4242
has exception => (
4343
is => 'rw',

lib/JSON/Schema/Modern/Vocabulary/Applicator.pm

+6-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ our $VERSION = '0.546';
99
use 5.020;
1010
use Moo;
1111
use strictures 2;
12-
use experimental qw(signatures postderef args_array_with_signatures);
12+
use experimental qw(signatures postderef);
1313
use if "$]" >= 5.022, experimental => 're_strict';
1414
no if "$]" >= 5.031009, feature => 'indirect';
1515
no if "$]" >= 5.033001, feature => 'multidimensional';
@@ -259,7 +259,7 @@ sub _eval_keyword_dependencies ($self, $data, $schema, $state) {
259259

260260
sub _traverse_keyword_prefixItems { shift->traverse_array_schemas(@_) }
261261

262-
sub _eval_keyword_prefixItems { goto \&_eval_keyword__items_array_schemas }
262+
sub _eval_keyword_prefixItems { shift->_eval_keyword__items_array_schemas(@_) }
263263

264264
sub _traverse_keyword_items ($self, $schema, $state) {
265265
if (is_plain_arrayref($schema->{items})) {
@@ -273,17 +273,18 @@ sub _traverse_keyword_items ($self, $schema, $state) {
273273
}
274274

275275
sub _eval_keyword_items ($self, $data, $schema, $state) {
276-
goto \&_eval_keyword__items_array_schemas if is_plain_arrayref($schema->{items});
276+
return $self->_eval_keyword__items_array_schemas($data, $schema, $state)
277+
if is_plain_arrayref($schema->{items});
277278

278279
$state->{_last_items_index} //= -1;
279-
goto \&_eval_keyword__items_schema;
280+
return $self->_eval_keyword__items_schema($data, $schema, $state);
280281
}
281282

282283
sub _traverse_keyword_additionalItems { shift->traverse_subschema(@_) }
283284

284285
sub _eval_keyword_additionalItems ($self, $data, $schema, $state) {
285286
return 1 if not exists $state->{_last_items_index};
286-
goto \&_eval_keyword__items_schema;
287+
return $self->_eval_keyword__items_schema($data, $schema, $state);
287288
}
288289

289290
# prefixItems (draft 2020-12), array-based items (all drafts)

lib/JSON/Schema/Modern/Vocabulary/Content.pm

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ sub _eval_keyword_contentEncoding ($self, $data, $schema, $state) {
5656
return A($state, $schema->{$state->{keyword}})
5757
}
5858

59-
sub _traverse_keyword_contentMediaType { goto \&_traverse_keyword_contentEncoding }
59+
sub _traverse_keyword_contentMediaType { shift->_traverse_keyword_contentEncoding(@_) }
6060

6161
sub _eval_keyword_contentMediaType ($self, $data, $schema, $state) {
6262
return 1 if not is_type('string', $data);

lib/JSON/Schema/Modern/Vocabulary/Core.pm

+3-3
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ sub _eval_keyword_recursiveAnchor ($self, $data, $schema, $state) {
185185
return 1;
186186
}
187187

188-
sub _traverse_keyword_dynamicAnchor { goto \&_traverse_keyword_anchor }
188+
sub _traverse_keyword_dynamicAnchor { shift->_traverse_keyword_anchor(@_) }
189189

190190
# we already indexed the $dynamicAnchor uri, so there is nothing more to do at evaluation time.
191191
# we explicitly do NOT set $state->{initial_schema_uri}.
@@ -201,7 +201,7 @@ sub _eval_keyword_ref ($self, $data, $schema, $state) {
201201
$self->eval_subschema_at_uri($data, $schema, $state, $uri);
202202
}
203203

204-
sub _traverse_keyword_recursiveRef { goto \&_traverse_keyword_ref }
204+
sub _traverse_keyword_recursiveRef { shift->_traverse_keyword_ref(@_) }
205205

206206
sub _eval_keyword_recursiveRef ($self, $data, $schema, $state) {
207207
my $uri = Mojo::URL->new($schema->{'$recursiveRef'})->to_abs($state->{initial_schema_uri});
@@ -216,7 +216,7 @@ sub _eval_keyword_recursiveRef ($self, $data, $schema, $state) {
216216
return $self->eval_subschema_at_uri($data, $schema, $state, $uri);
217217
}
218218

219-
sub _traverse_keyword_dynamicRef { goto \&_traverse_keyword_ref }
219+
sub _traverse_keyword_dynamicRef { shift->_traverse_keyword_ref(@_) }
220220

221221
sub _eval_keyword_dynamicRef ($self, $data, $schema, $state) {
222222
my $uri = Mojo::URL->new($schema->{'$dynamicRef'})->to_abs($state->{initial_schema_uri});

lib/JSON/Schema/Modern/Vocabulary/MetaData.pm

+9-9
Original file line numberDiff line numberDiff line change
@@ -43,35 +43,35 @@ sub _eval_keyword_title ($self, $data, $schema, $state) {
4343
annotate_self($state, $schema);
4444
}
4545

46-
sub _traverse_keyword_description { goto \&_traverse_keyword_title }
46+
sub _traverse_keyword_description { shift->_traverse_keyword_title(@_) }
4747

48-
sub _eval_keyword_description { goto \&_eval_keyword_title }
48+
sub _eval_keyword_description { shift->_eval_keyword_title(@_) }
4949

5050
sub _traverse_keyword_default { 1 }
5151

52-
sub _eval_keyword_default { goto \&_eval_keyword_title }
52+
sub _eval_keyword_default { shift->_eval_keyword_title(@_) }
5353

5454
sub _traverse_keyword_deprecated ($self, $schema, $state) {
5555
return if not assert_keyword_type($state, $schema, 'boolean');
5656
return 1;
5757
}
5858

59-
sub _eval_keyword_deprecated { goto \&_eval_keyword_title }
59+
sub _eval_keyword_deprecated { shift->_eval_keyword_title(@_) }
6060

61-
sub _traverse_keyword_readOnly { goto \&_traverse_keyword_deprecated }
61+
sub _traverse_keyword_readOnly { shift->_traverse_keyword_deprecated(@_) }
6262

63-
sub _eval_keyword_readOnly { goto \&_eval_keyword_title }
63+
sub _eval_keyword_readOnly { shift->_eval_keyword_title(@_) }
6464

65-
sub _traverse_keyword_writeOnly { goto \&_traverse_keyword_deprecated }
65+
sub _traverse_keyword_writeOnly { shift->_traverse_keyword_deprecated(@_) }
6666

67-
sub _eval_keyword_writeOnly { goto \&_eval_keyword_title }
67+
sub _eval_keyword_writeOnly { shift->_eval_keyword_title(@_) }
6868

6969
sub _traverse_keyword_examples ($self, $schema, $state) {
7070
return if not assert_keyword_type($state, $schema, 'array');
7171
return 1;
7272
}
7373

74-
sub _eval_keyword_examples { goto \&_eval_keyword_title }
74+
sub _eval_keyword_examples { shift->_eval_keyword_title(@_) }
7575

7676
1;
7777
__END__

lib/JSON/Schema/Modern/Vocabulary/Validation.pm

+12-12
Original file line numberDiff line numberDiff line change
@@ -125,47 +125,47 @@ sub _eval_keyword_multipleOf ($self, $data, $schema, $state) {
125125
return E($state, 'value is not a multiple of %s', sprintf_num($schema->{multipleOf}));
126126
}
127127

128-
sub _traverse_keyword_maximum { goto \&_assert_number }
128+
sub _traverse_keyword_maximum { shift->_assert_number(@_) }
129129

130130
sub _eval_keyword_maximum ($self, $data, $schema, $state) {
131131
return 1 if not is_type('number', $data);
132132
return 1 if $data <= $schema->{maximum};
133133
return E($state, 'value is larger than %s', sprintf_num($schema->{maximum}));
134134
}
135135

136-
sub _traverse_keyword_exclusiveMaximum { goto \&_assert_number }
136+
sub _traverse_keyword_exclusiveMaximum { shift->_assert_number(@_) }
137137

138138
sub _eval_keyword_exclusiveMaximum ($self, $data, $schema, $state) {
139139
return 1 if not is_type('number', $data);
140140
return 1 if $data < $schema->{exclusiveMaximum};
141141
return E($state, 'value is equal to or larger than %s', sprintf_num($schema->{exclusiveMaximum}));
142142
}
143143

144-
sub _traverse_keyword_minimum { goto \&_assert_number }
144+
sub _traverse_keyword_minimum { shift->_assert_number(@_) }
145145

146146
sub _eval_keyword_minimum ($self, $data, $schema, $state) {
147147
return 1 if not is_type('number', $data);
148148
return 1 if $data >= $schema->{minimum};
149149
return E($state, 'value is smaller than %s', sprintf_num($schema->{minimum}));
150150
}
151151

152-
sub _traverse_keyword_exclusiveMinimum { goto \&_assert_number }
152+
sub _traverse_keyword_exclusiveMinimum { shift->_assert_number(@_) }
153153

154154
sub _eval_keyword_exclusiveMinimum ($self, $data, $schema, $state) {
155155
return 1 if not is_type('number', $data);
156156
return 1 if $data > $schema->{exclusiveMinimum};
157157
return E($state, 'value is equal to or smaller than %s', sprintf_num($schema->{exclusiveMinimum}));
158158
}
159159

160-
sub _traverse_keyword_maxLength { goto \&_assert_non_negative_integer }
160+
sub _traverse_keyword_maxLength { shift->_assert_non_negative_integer(@_) }
161161

162162
sub _eval_keyword_maxLength ($self, $data, $schema, $state) {
163163
return 1 if not is_type('string', $data);
164164
return 1 if length($data) <= $schema->{maxLength};
165165
return E($state, 'length is greater than %d', $schema->{maxLength});
166166
}
167167

168-
sub _traverse_keyword_minLength { goto \&_assert_non_negative_integer }
168+
sub _traverse_keyword_minLength { shift->_assert_non_negative_integer(@_) }
169169

170170
sub _eval_keyword_minLength ($self, $data, $schema, $state) {
171171

@@ -187,15 +187,15 @@ sub _eval_keyword_pattern ($self, $data, $schema, $state) {
187187
return E($state, 'pattern does not match');
188188
}
189189

190-
sub _traverse_keyword_maxItems { goto \&_assert_non_negative_integer }
190+
sub _traverse_keyword_maxItems { shift->_assert_non_negative_integer(@_) }
191191

192192
sub _eval_keyword_maxItems ($self, $data, $schema, $state) {
193193
return 1 if not is_type('array', $data);
194194
return 1 if @$data <= $schema->{maxItems};
195195
return E($state, 'more than %d item%s', $schema->{maxItems}, $schema->{maxItems} > 1 ? 's' : '');
196196
}
197197

198-
sub _traverse_keyword_minItems { goto \&_assert_non_negative_integer }
198+
sub _traverse_keyword_minItems { shift->_assert_non_negative_integer(@_) }
199199

200200
sub _eval_keyword_minItems ($self, $data, $schema, $state) {
201201
return 1 if not is_type('array', $data);
@@ -216,7 +216,7 @@ sub _eval_keyword_uniqueItems ($self, $data, $schema, $state) {
216216
}
217217

218218
# Note: no effort is made to check if the 'contains' keyword has been disabled via its vocabulary.
219-
sub _traverse_keyword_maxContains { goto \&_assert_non_negative_integer }
219+
sub _traverse_keyword_maxContains { shift->_assert_non_negative_integer(@_) }
220220

221221
sub _eval_keyword_maxContains ($self, $data, $schema, $state) {
222222
return 1 if not exists $state->{_num_contains};
@@ -228,7 +228,7 @@ sub _eval_keyword_maxContains ($self, $data, $schema, $state) {
228228
return 1;
229229
}
230230

231-
sub _traverse_keyword_minContains { goto \&_assert_non_negative_integer }
231+
sub _traverse_keyword_minContains { shift->_assert_non_negative_integer(@_) }
232232

233233
sub _eval_keyword_minContains ($self, $data, $schema, $state) {
234234
return 1 if not exists $state->{_num_contains};
@@ -240,7 +240,7 @@ sub _eval_keyword_minContains ($self, $data, $schema, $state) {
240240
return 1;
241241
}
242242

243-
sub _traverse_keyword_maxProperties { goto \&_assert_non_negative_integer }
243+
sub _traverse_keyword_maxProperties { shift->_assert_non_negative_integer(@_) }
244244

245245
sub _eval_keyword_maxProperties ($self, $data, $schema, $state) {
246246
return 1 if not is_type('object', $data);
@@ -249,7 +249,7 @@ sub _eval_keyword_maxProperties ($self, $data, $schema, $state) {
249249
$schema->{maxProperties} > 1 ? 'ies' : 'y');
250250
}
251251

252-
sub _traverse_keyword_minProperties { goto \&_assert_non_negative_integer }
252+
sub _traverse_keyword_minProperties { shift->_assert_non_negative_integer(@_) }
253253

254254
sub _eval_keyword_minProperties ($self, $data, $schema, $state) {
255255
return 1 if not is_type('object', $data);

0 commit comments

Comments
 (0)