Commit 016c6c7
authored
Encode entry-function invariants on
Add two propositional fields to `Source.Function`:
- `entryMonomorphic : params = [] ∨ entry = false`
- `entryPointerFree : sigPointerFree inputs output = true ∨ entry = false`
`Typ.hasPointer` + `sigPointerFree` are new helpers. Smart constructors
`monoNonEntry`, `monoEntry`, and `poly` discharge both props by
construction. `Meta.elabFunction` dispatches via the `pub` keyword and
uses `mkDecideProof` on `sigPointerFree` to reject pointer-typed entry
signatures at parse time. `Check.mkDecls` re-derives the proof after
alias expansion and surfaces a new `CheckError.entryHasPointer` if an
alias hides a pointer in an entry signature.Source.Function (#424)1 parent 7bdeed9 commit 016c6c7
3 files changed
Lines changed: 99 additions & 18 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
| |||
178 | 179 | | |
179 | 180 | | |
180 | 181 | | |
181 | | - | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
182 | 191 | | |
183 | 192 | | |
184 | 193 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
654 | 654 | | |
655 | 655 | | |
656 | 656 | | |
657 | | - | |
658 | | - | |
659 | | - | |
660 | | - | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
661 | 661 | | |
662 | 662 | | |
663 | 663 | | |
664 | 664 | | |
665 | | - | |
666 | | - | |
667 | | - | |
668 | | - | |
669 | | - | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
670 | 669 | | |
671 | 670 | | |
672 | 671 | | |
673 | 672 | | |
674 | 673 | | |
675 | | - | |
| 674 | + | |
676 | 675 | | |
677 | | - | |
| 676 | + | |
678 | 677 | | |
679 | 678 | | |
680 | 679 | | |
681 | 680 | | |
682 | 681 | | |
683 | 682 | | |
684 | | - | |
| 683 | + | |
685 | 684 | | |
686 | 685 | | |
687 | | - | |
| 686 | + | |
688 | 687 | | |
689 | 688 | | |
690 | | - | |
691 | | - | |
692 | | - | |
693 | 689 | | |
694 | 690 | | |
695 | 691 | | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
696 | 710 | | |
697 | 711 | | |
698 | 712 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
332 | 332 | | |
333 | 333 | | |
334 | 334 | | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
335 | 352 | | |
336 | 353 | | |
337 | 354 | | |
| |||
436 | 453 | | |
437 | 454 | | |
438 | 455 | | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
439 | 461 | | |
440 | 462 | | |
441 | 463 | | |
442 | 464 | | |
443 | 465 | | |
444 | 466 | | |
445 | 467 | | |
446 | | - | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
447 | 505 | | |
448 | 506 | | |
449 | 507 | | |
| |||
0 commit comments