Skip to content

[Bug]: Dyno tertiary POI-defined method causes assertion #28248

@DanilaFe

Description

@DanilaFe

The following program:

record Inner {
}

record Outer {
  forwarding var inner: Inner;
}

proc foo(x) {
  x.foo(1);
  compilerWarning("lol lmao", 0);
}

proc ctx1() {
  proc Inner.foo(x) do compilerWarning("inner foo called");
  (new Outer()).foo(1);
  foo(new Outer());
}

ctx1();

Creates an assertion error:

at resolution-queries.cpp:3455:7
   3452       auto& m = rv->poiTraceToChild;
   3453       auto p = std::make_pair(poiTrace, std::move(x));
   3454       auto check = m.insert(std::move(p));
-> 3455       CHPL_ASSERT(check.second);
   3456       return check.first->second;

This discovery was incidental while trying to figure out other POI-related troubles, so I haven't had the chance to investigate further.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions