Skip to content

Test functions should work when defined inside other functions #3532

Closed
@brson

Description

@brson

This doesn't work, but I frequently want to do it

fn foo() {

  ...

  #[test]
  fn test1() { }
}

The generated code for running test functions uses paths to the tests, and it's not possible to generate a path to test1. The test runner already breaks resolution rules to run private tests, so maybe we can break yet more.

We would want to consider though how this could work with reflection-based test runners - the way we currently break visibility rules to run tests is already bad news for reflection.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-frontendArea: Compiler frontend (errors, parsing and HIR)A-testsuiteArea: The testsuite used to check the correctness of rustcE-hardCall for participation: Hard difficulty. Experience needed to fix: A lot.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions