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

PERF: move recursion guard out of advancedResolve #9337

Merged

Conversation

vlad20012
Copy link
Member

... and use it only for default type parameter values.

The only purpose of that recursion guard is to prevent infinite recursion in such cases:

pub trait Foo<A=Foo> {
    type Output = Self;
}
type T = Foo;

(see test no stack overflow when trait type parameter default value refers to the trait name)

The PR is a further optimization of "resolve nested paths at once", see #9211.

changelog: Slightly speed up name resolution

... and use it only for default type parameter values.

The only purpose of that recursion guard is to prevent infinite recursion in such cases:

```
pub trait Foo<A=Foo> {
    type Output = Self;
}
type T = Foo;
```
(see `test no stack overflow when trait type parameter default value refers to the trait name`)
Copy link
Member

@dima74 dima74 left a comment

Choose a reason for hiding this comment

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

bors r+

@bors
Copy link
Contributor

bors bot commented Sep 11, 2022

Build succeeded:

@bors bors bot merged commit 89a0a00 into master Sep 11, 2022
@bors bors bot deleted the perf-move-recursion-guard-advanced-resolve-to-default-values-only branch September 11, 2022 02:12
@github-actions github-actions bot added this to the v179 milestone Sep 11, 2022
@vlad20012 vlad20012 added this to In Progress in To test via automation Sep 11, 2022
@Undin Undin moved this from In Progress to Test in To test Sep 14, 2022
@mili-l mili-l self-assigned this Sep 16, 2022
@mili-l mili-l moved this from Test to Done in To test Sep 23, 2022
bors bot added a commit that referenced this pull request Oct 18, 2022
9567: Fix #9565 stack overflow when dyn trait used as Self ty in where clause r=vlad20012 a=vlad20012

Fixes #9565

The type inference bug existed since a while, but it escalated to a stack overflow after one of these PRs: #9211, #9337, #9338

changelog: Fix possible stack overflow during type inference

Co-authored-by: vlad20012 <beskvlad@gmail.com>
bors bot added a commit that referenced this pull request Oct 18, 2022
9567: Fix #9565 stack overflow when dyn trait used as Self ty in where clause r=vlad20012 a=vlad20012

Fixes #9565

The type inference bug existed since a while, but it escalated to a stack overflow after one of these PRs: #9211, #9337, #9338

changelog: Fix possible stack overflow during type inference

Co-authored-by: vlad20012 <beskvlad@gmail.com>
bors bot added a commit that referenced this pull request Oct 18, 2022
9567: Fix #9565 stack overflow when dyn trait used as Self ty in where clause r=vlad20012 a=vlad20012

Fixes #9565

The type inference bug existed since a while, but it escalated to a stack overflow after one of these PRs: #9211, #9337, #9338

changelog: Fix possible stack overflow during type inference

Co-authored-by: vlad20012 <beskvlad@gmail.com>
bors bot added a commit that referenced this pull request Oct 18, 2022
9567: Fix #9565 stack overflow when dyn trait used as Self ty in where clause r=dima74 a=vlad20012

Fixes #9565

The type inference bug existed since a while, but it escalated to a stack overflow after one of these PRs: #9211, #9337, #9338

changelog: Fix possible stack overflow during type inference

Co-authored-by: vlad20012 <beskvlad@gmail.com>
bors bot added a commit that referenced this pull request Oct 19, 2022
9567: Fix #9565 stack overflow when dyn trait used as Self ty in where clause r=vlad20012 a=vlad20012

Fixes #9565

The type inference bug existed since a while, but it escalated to a stack overflow after one of these PRs: #9211, #9337, #9338

changelog: Fix possible stack overflow during type inference

Co-authored-by: vlad20012 <beskvlad@gmail.com>
bors bot added a commit that referenced this pull request Oct 19, 2022
9567: Fix #9565 stack overflow when dyn trait used as Self ty in where clause r=vlad20012 a=vlad20012

Fixes #9565

The type inference bug existed since a while, but it escalated to a stack overflow after one of these PRs: #9211, #9337, #9338

changelog: Fix possible stack overflow during type inference

Co-authored-by: vlad20012 <beskvlad@gmail.com>
bors bot added a commit that referenced this pull request Oct 19, 2022
9524: GRD: update IDE and plugin dependencies for 223 builds r=Undin a=Undin

Also, temporarily use snapshot version of gradle-intellij-plugin because it contains fixes to properly launch the atest 2022.3 IDEs


9567: Fix #9565 stack overflow when dyn trait used as Self ty in where clause r=vlad20012 a=vlad20012

Fixes #9565

The type inference bug existed since a while, but it escalated to a stack overflow after one of these PRs: #9211, #9337, #9338

changelog: Fix possible stack overflow during type inference

Co-authored-by: Arseniy Pendryak <a.pendryak@yandex.ru>
Co-authored-by: vlad20012 <beskvlad@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
To test
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

3 participants