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

Sync to upstream/release/599 #1069

Merged
merged 187 commits into from
Oct 13, 2023
Merged

Sync to upstream/release/599 #1069

merged 187 commits into from
Oct 13, 2023

Conversation

AmaranthineCodices
Copy link
Contributor

What's Changed

  • Improve POSIX compliance in CLI/FileUtils.cpp by @SamuraiCrow Improve POSIX compliance in CLI/FileUtils.cpp #1064
  • AstStat*::hasEnd is deprecated; use AstStatBlock::hasEnd instead
  • Added a lint for common misuses of the # operator
  • Luau now issues deprecated diagnostics for some uses of getfenv and setfenv
  • Fixed a case where we included a trailing space in some error stringifications

Compiler

  • Do not do further analysis in O2 on self functions
  • Improve detection of invalid repeat..until expressions vs continue

New Type Solver

  • We now cache subtype test results to improve performance
  • Improved operator inference mechanics (aka type families)
  • Further work towards type states
  • Work towards new non-strict mode continues

Native Codegen

  • Instruction last use locations should follow the order in which blocks are lowered
  • Add a bonus assertion to IrLoweringA64::tempAddr

Co-authored-by: Aaron Weiss [email protected]
Co-authored-by: Alexander McCord [email protected]
Co-authored-by: Andy Friesen [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]

@AmaranthineCodices AmaranthineCodices merged commit 24fdac4 into master Oct 13, 2023
Comment on lines +1063 to +1082
if (AstStatForIn* statForIn = (*it)->as<AstStatForIn>(); statForIn && !statForIn->body->hasEnd)
result.emplace("end", AutocompleteEntry{AutocompleteEntryKind::Keyword});
else if (AstStatFor* statFor = (*it)->as<AstStatFor>(); statFor && !statFor->body->hasEnd)
result.emplace("end", AutocompleteEntry{AutocompleteEntryKind::Keyword});
else if (AstStatIf* statIf = (*it)->as<AstStatIf>())
{
bool hasEnd = statIf->thenbody->hasEnd;
if (statIf->elsebody)
{
if (AstStatBlock* elseBlock = statIf->elsebody->as<AstStatBlock>())
hasEnd = elseBlock->hasEnd;
}

if (!hasEnd)
result.emplace("end", AutocompleteEntry{AutocompleteEntryKind::Keyword});
}
else if (AstStatWhile* statWhile = (*it)->as<AstStatWhile>(); statWhile && !statWhile->body->hasEnd)
result.emplace("end", AutocompleteEntry{AutocompleteEntryKind::Keyword});
else if (AstExprFunction* exprFunction = (*it)->as<AstExprFunction>(); exprFunction && !exprFunction->body->hasEnd)
result.emplace("end", AutocompleteEntry{AutocompleteEntryKind::Keyword});
Copy link
Contributor

Choose a reason for hiding this comment

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

question: will this be deleted once LuauAutocompleteDoEnd is clipped? since its all covered by the AstStatBlock? (i guess apart from AstStatIf)

Copy link
Collaborator

Choose a reason for hiding this comment

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

I hadn't actually thought about that. I think so in theory?

I'll give it a shot when it's time to clip the flag.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

7 participants