Skip to content

Shadowing a built-in or function name with a local variable gives strange errors #847

@taktoa

Description

@taktoa

Shadowing a function name by a variable results in a long traceback under xls::dslx::Deduce (example below). Shadowing a built-in by a variable results in another strange error (example at bottom).

PC: @     0x55ec34aeaae0  (unknown)  xls::dslx::(anonymous namespace)::DeduceInstantiation()
    @     0x55ec34fe40da       1152  FailureSignalHandler()
    @     0x7f2b4e17d1c0  (unknown)  (unknown)
    @     0x55ec34aeaae0        112  xls::dslx::(anonymous namespace)::DeduceInstantiation()
    @     0x55ec34ad076a        480  xls::dslx::(anonymous namespace)::DeduceVisitor::HandleInvocation()
    @     0x55ec34c67e5b         32  xls::dslx::Invocation::Accept()
    @     0x55ec34ac7a6c        288  xls::dslx::Deduce()
    @     0x55ec34ac7814         32  std::__u::__function::__policy_invoker<>::__call_impl<>()
    @     0x55ec34abb382        112  xls::dslx::DeduceCtx::Deduce()
    @     0x55ec34ac7d02         96  xls::dslx::DeduceAndResolve()
    @     0x55ec34accbc7        480  xls::dslx::(anonymous namespace)::DeduceVisitor::HandleBinop()
    @     0x55ec34c6849b         32  xls::dslx::Binop::Accept()
    @     0x55ec34ac7a6c        288  xls::dslx::Deduce()
    @     0x55ec34ac7814         32  std::__u::__function::__policy_invoker<>::__call_impl<>()
    @     0x55ec34abb382        112  xls::dslx::DeduceCtx::Deduce()
    @     0x55ec34ac7d02         96  xls::dslx::DeduceAndResolve()
    @     0x55ec34aedc27        320  xls::dslx::(anonymous namespace)::ValidateStructMembersSubset()
    @     0x55ec34adabc8        752  xls::dslx::(anonymous namespace)::DeduceVisitor::HandleStructInstance()
    @     0x55ec34c681bb         32  xls::dslx::StructInstance::Accept()
    @     0x55ec34ac7a6c        288  xls::dslx::Deduce()
    @     0x55ec34ac7814         32  std::__u::__function::__policy_invoker<>::__call_impl<>()
    @     0x55ec34abb382        112  xls::dslx::DeduceCtx::Deduce()
    @     0x55ec34ac7d02         96  xls::dslx::DeduceAndResolve()
    @     0x55ec34ad1ad4        704  xls::dslx::(anonymous namespace)::DeduceVisitor::HandleLet()
    @     0x55ec34c698db         32  xls::dslx::Let::Accept()
    @     0x55ec34ac7a6c        288  xls::dslx::Deduce()
    @     0x55ec34ac7814         32  std::__u::__function::__policy_invoker<>::__call_impl<>()
    @     0x55ec34abb382        112  xls::dslx::DeduceCtx::Deduce()
    @     0x55ec34ad25da        704  xls::dslx::(anonymous namespace)::DeduceVisitor::HandleLet()
    @     0x55ec34c698db         32  xls::dslx::Let::Accept()
    @     0x55ec34ac7a6c        288  xls::dslx::Deduce()
    @     0x55ec34ac7814         32  std::__u::__function::__policy_invoker<>::__call_impl<>()
    @     0x55ec34abb382        112  xls::dslx::DeduceCtx::Deduce()
    @     0x55ec34ad25da        704  xls::dslx::(anonymous namespace)::DeduceVisitor::HandleLet()
    @     0x55ec34c698db         32  xls::dslx::Let::Accept()
    @     0x55ec34ac7a6c        288  xls::dslx::Deduce()
    @     0x55ec34ac7814         32  std::__u::__function::__policy_invoker<>::__call_impl<>()
    @     0x55ec34abb382        112  xls::dslx::DeduceCtx::Deduce()
    @     0x55ec34ad25da        704  xls::dslx::(anonymous namespace)::DeduceVisitor::HandleLet()
    @     0x55ec34c698db         32  xls::dslx::Let::Accept()
    @     0x55ec34ac7a6c        288  xls::dslx::Deduce()
    @     0x55ec34ac7814         32  std::__u::__function::__policy_invoker<>::__call_impl<>()
    @     0x55ec34abb382        112  xls::dslx::DeduceCtx::Deduce()
    @     0x55ec34ad25da        704  xls::dslx::(anonymous namespace)::DeduceVisitor::HandleLet()
    @     0x55ec34c698db         32  xls::dslx::Let::Accept()
    @     0x55ec34ac7a6c        288  xls::dslx::Deduce()
    @     0x55ec34ac7814         32  std::__u::__function::__policy_invoker<>::__call_impl<>()
    @     0x55ec34abb382        112  xls::dslx::DeduceCtx::Deduce()
    @     0x55ec34ad25da        704  xls::dslx::(anonymous namespace)::DeduceVisitor::HandleLet()
    @     0x55ec34c698db         32  xls::dslx::Let::Accept()
    @     0x55ec34ac7a6c        288  xls::dslx::Deduce()
    @     0x55ec34ac7814         32  std::__u::__function::__policy_invoker<>::__call_impl<>()
    @     0x55ec34abb382        112  xls::dslx::DeduceCtx::Deduce()
    @     0x55ec34ad25da        704  xls::dslx::(anonymous namespace)::DeduceVisitor::HandleLet()
    @     0x55ec34c698db         32  xls::dslx::Let::Accept()
    @     0x55ec34ac7a6c        288  xls::dslx::Deduce()
    @     0x55ec34ac7814         32  std::__u::__function::__policy_invoker<>::__call_impl<>()
    @     0x55ec34abb382        112  xls::dslx::DeduceCtx::Deduce()
    @     0x55ec34ad25da        704  xls::dslx::(anonymous namespace)::DeduceVisitor::HandleLet()
    @     0x55ec34c698db         32  xls::dslx::Let::Accept()
    @     0x55ec34ac7a6c        288  xls::dslx::Deduce()
    @     0x55ec34ac7814         32  std::__u::__function::__policy_invoker<>::__call_impl<>()
    @     0x55ec34abb382        112  xls::dslx::DeduceCtx::Deduce()
    @     0x55ec34acdf47         64  xls::dslx::(anonymous namespace)::DeduceVisitor::HandleBlock()
Could not extract a textual position from error message: NOT_FOUND: No N3xls4dslx8FunctionE in module foo with name "or_reduce"
=== Source Location Trace: ===
third_party/xls/dslx/ast.h:3059
: INVALID_ARGUMENT: Provided status is not in recognized error form: NOT_FOUND: No N3xls4dslx8FunctionE in module foo with name "or_reduce"
=== Source Location Trace: ===
third_party/xls/dslx/bindings.cc:36

Metadata

Metadata

Assignees

No one assigned

    Labels

    dslxDSLX (domain specific language) implementation / front-end

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions