@@ -10038,6 +10038,10 @@ def s_tb(val_desc, env):
10038
10038
[led, ex] = val_desc.children
10039
10039
env.assert_expr_is_of_type(ex, T_MathInteger_)
10040
10040
(led_sub_t, led_sup_t) = type_bracket_for(led, env)
10041
+ add_pass_error(
10042
+ val_desc,
10043
+ "Strings are measured with 'length', Lists are measured with 'the number of elements'"
10044
+ )
10041
10045
return a_subset_of(ListType(led_sup_t))
10042
10046
# inexact because of length restriction
10043
10047
@@ -10346,6 +10350,10 @@ def s_cond(cond, env0, asserting):
10346
10350
[list_var, len_var] = cond.children
10347
10351
env0.assert_expr_is_of_type(list_var, T_List)
10348
10352
env0.assert_expr_is_of_type(len_var, T_MathNonNegativeInteger_)
10353
+ add_pass_error(
10354
+ list_var,
10355
+ "Strings are measured with 'length', Lists are measured with 'the number of elements'"
10356
+ )
10349
10357
return (env0, env0)
10350
10358
10351
10359
@P("{EXPR} : the number of elements in the List {var}")
@@ -11517,6 +11525,10 @@ def s_expr(expr, env0, _):
11517
11525
env0.assert_expr_is_of_type(var1, T_MathInteger_)
11518
11526
env1 = env0.ensure_expr_is_of_type(var3, T_Data_Block | T_Shared_Data_Block)
11519
11527
env0.assert_expr_is_of_type(var4, T_MathInteger_)
11528
+ add_pass_error(
11529
+ expr,
11530
+ "Strings are measured with 'length', Lists are measured with 'the number of elements'"
11531
+ )
11520
11532
return (ListType(T_MathInteger_), env1)
11521
11533
11522
11534
@P("{EXPR} : a List whose elements are bytes from {var} at indices in {INTERVAL}")
@@ -14418,6 +14430,10 @@ class _:
14418
14430
def s_expr(expr, env0, _):
14419
14431
[var] = expr.children
14420
14432
env0.assert_expr_is_of_type(var, T_MathInteger_)
14433
+ add_pass_error(
14434
+ expr,
14435
+ "Strings are measured with 'length', Lists are measured with 'the number of elements'"
14436
+ )
14421
14437
return (ListType(T_MathInteger_), env0)
14422
14438
14423
14439
@P("{LIST_ELEMENTS_DESCRIPTION} : byte values")
0 commit comments