arrow-kt/arrow-meta

Quote-and-template system testing to validate existing PSI elements

Open

#335 opened on Dec 13, 2019

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Kotlin (43 forks)github user discovery
AST-scopegood first issuehelp wanted

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:

  1. Quote and Scope are isomorphic
  2. 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:

Screen Shot 2019-12-12 at 11 34 20 AM

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.

Contributor guide