Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the Tasty Reader [ci: last-only] #9109

Merged
merged 282 commits into from Jul 15, 2020
Merged

Conversation

bishabosha
Copy link
Member

@bishabosha bishabosha commented Jul 10, 2020

see #8865 for original guide to reviewing (which has been copied to relevant doc comments in the code)

bishabosha and others added 17 commits June 26, 2020 16:46
This commit is a squash of several commits to atomically add the feature:

When indexing a scope for the first time to set up completers, add
lazy annotations to symbols. At the end of the indexing, force the annotations
and if one is scala.annotation.internal.Child[T], add the symbol of T as a
sealed child. If we are not indexing statements, such as completing the
a method and reading its parameters, force annotations as soon as each symbol
is initialised, this is ok because the owner tree for the definition is also
initialised so forward references can be safely accessed.

force sealed children after indexing scope

cache RepeatedAnnot

force all annotations early, catching more errors

Also force annotations for lookahead contexts.

It would be good to see if perhaps we can share a single annotation cache per
tasty file and force from one place.

Force annotations for each new symbol
Additionally, when sequencing statements, only force after the whole sequence is indexed.
Forceable annotations are now stored in and forced from the initial context.
Made it more lazy to print parents of a class.
If a LambdaPolyType is in a New tree, unwrap it.

force annotations at end of createMemberSymbol

only make lazy annotation if we delay its evaluation
… class info.

Before this, inherited members may not be visible at the point of forcing the annotation
on a definition in the template.

Also moved symbol cache to the initial context so that child contexts all pass to the same
cache.
Inner classes can not be found with Mirror getRequiredClass, so
we should have another way to compare types to signatures, this
proposes to instead convert method signatures to
Signature[ErasedTypeRef]
Read inner classes in signatures, force annotations after template parents
Copy link
Member

@lrytz lrytz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Absolutely outstanding work, @bishabosha. Thank you ❤️

@lrytz lrytz merged commit 5569389 into scala:2.13.x Jul 15, 2020
@SethTisue SethTisue added the release-notes worth highlighting in next release notes label Jul 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release-notes worth highlighting in next release notes
Projects
None yet
7 participants