|
35 | 35 | "Use5", |
36 | 36 | "Same", |
37 | 37 | "TakeDerivedRef", |
38 | | - "SinkObject" |
| 38 | + "SinkObject", |
| 39 | + "Use6" |
39 | 40 | ], |
40 | 41 | "methods": { |
41 | 42 | "Plain": { |
|
352 | 353 | "a2_2_2b_observed": "no_record", |
353 | 354 | "a2_2_3p_observed": "no_record", |
354 | 355 | "a2_2_4_oracle": "excluded:storage_assignment" |
| 356 | + }, |
| 357 | + "PredicateResult": { |
| 358 | + "class": "indirect", |
| 359 | + "exclusion": "predicate_result", |
| 360 | + "conversion": "not_applicable", |
| 361 | + "note": "the predicate's bool is the argument; nothing of the handle flows (A2.2-4R4 ruling)", |
| 362 | + "a2_1_observed": "record_without_call_fact", |
| 363 | + "a2_2_1_observed": "record_without_call_fact", |
| 364 | + "a2_2_2_observed": "record_without_call_fact", |
| 365 | + "a2_2_2b_observed": "record_without_call_fact", |
| 366 | + "a2_2_3p_observed": "record_without_call_fact", |
| 367 | + "a2_2_4_oracle": "excluded:predicate_result" |
| 368 | + }, |
| 369 | + "InterpolationHole": { |
| 370 | + "class": "indirect", |
| 371 | + "exclusion": "interpolation_hole", |
| 372 | + "conversion": "not_applicable", |
| 373 | + "note": "the built string is the argument (A2.2-4R4 ruling)", |
| 374 | + "a2_1_observed": "record_without_call_fact", |
| 375 | + "a2_2_1_observed": "record_without_call_fact", |
| 376 | + "a2_2_2_observed": "record_without_call_fact", |
| 377 | + "a2_2_2b_observed": "record_without_call_fact", |
| 378 | + "a2_2_3p_observed": "record_without_call_fact", |
| 379 | + "a2_2_4_oracle": "excluded:interpolation_hole" |
| 380 | + }, |
| 381 | + "IndexerArgument": { |
| 382 | + "class": "indirect", |
| 383 | + "exclusion": "indexer_argument", |
| 384 | + "conversion": "not_applicable", |
| 385 | + "note": "the handle is an argument of the indexer accessor's call, a call site the frozen vocabulary deliberately leaves out (A2.2-4R4 ruling); the legacy escape rule reads the index position as an argument, so every candidate escapes and no record exists", |
| 386 | + "a2_1_observed": "no_record", |
| 387 | + "a2_2_1_observed": "no_record", |
| 388 | + "a2_2_2_observed": "no_record", |
| 389 | + "a2_2_2b_observed": "no_record", |
| 390 | + "a2_2_3p_observed": "no_record", |
| 391 | + "a2_2_4_oracle": "excluded:indexer_argument" |
355 | 392 | } |
356 | 393 | }, |
357 | | - "a2_2_4_oracle_note": "The completeness oracle's live reading of each row (A2.2-4): the verdict of the row's handle occurrence, `captured:<site kind>[+enclosing exclusions]` or `excluded:<named exclusion>`. Recorded by scripts/p037_completeness_oracle.py record and held equal by check; the oracle is checked against the class, never the other way round." |
| 394 | + "a2_2_4_oracle_note": "The completeness oracle's live reading of each row (A2.2-4): the verdict of the row's handle occurrence, `captured:<site kind>[+enclosing exclusions]` or `excluded:<named exclusion>`. Recorded by scripts/p037_completeness_oracle.py record and held equal by check; the oracle is checked against the class, never the other way round.", |
| 395 | + "a2_2_4r4_note": "Three rows added by the A2.2-4R4 ruling (PredicateResult, InterpolationHole, IndexerArgument). Their historical columns were measured with the extractor rebuilt at each step's commit (A' 5a0de070, A2.2-1 268bbd4, A2.2-2 376f2e6, A2.2-2b 7de7a6f, A2.2-3P 80cd9aa), never assumed: the first two read record_without_call_fact at every step (the handle never escapes, the method is admitted, no call fact), the third no_record (the index position is an argument to the legacy escape rule, every candidate escapes, nothing to carry)." |
358 | 396 | } |
0 commit comments