Quote-and-template system testing to validate existing PSI elements
#335 opened on Dec 13, 2019
Repository metrics
- Stars
- (408 stars)
- PR merge metrics
- (No merged PRs in 30d)
Description
A property test that generates quotes and proves the following algebraic laws:
- Quote and Scope are isomorphic
- Applying a fully destructured scope over a quoted element is the empty identity and creates commutative PBT for the quote-and-template system
The goal is for the laws to need the template to be fed into the loop of autogenerated quotes on the property.
In other words, it will make sense to parse out each PsiElement so that using all properties can give back the same analysis as the input - otherwise, it's possible to be missing information necessary to work with all properties:

Help Needed here!
If anything has an issue for it, it is likely someone is working on it. Be sure to double check, but otherwise, feel free to ask the #arrow-meta channel or myself if there's one you'd like to try and we can create an issue for that!
Elements to complete validation properties (some are more work than others):
- LambdaExpression
- ForExpression #340
- File
- ModifierList
- TypeReference
- NamedFunction
- Property
- PropertyAccessor
Elements that need more testing:
- BinaryExpression #341
- WhenExpression #348
- BlockExpression
- BreakExpression
It's worth mentioning that these are still in need of these minimum requirements, but it will be good to add testing additional testing to gain greater flexibility parsing different forms of other elements as well.