New Issue: createHeap from array fails if comparator is specified

19161, "jhh67", "createHeap from array fails if comparator is specified", "2022-02-02T21:21:25Z"

Summary of Problem

Creating a heap from an array works if I don't specify a comparator, otherwise I get the following error:

foo.chpl:3: error: unresolved call 'createHeap([domain(1,int(64),false)] int(64), comparator=ReverseComparator(DefaultComparator))'
$CHPL_HOME/modules/standard/Heap.chpl:409: note: this candidate did not match: createHeap(const ref x: list(?t), param parSafe: bool = false, comparator = defaultComparator)
foo.chpl:3: note: because actual argument #1 with type '[domain(1,int(64),false)] int(64)'
$CHPL_HOME/modules/standard/Heap.chpl:409: note: is passed to formal 'const ref x: list'
foo.chpl:3: note: other candidates are:
$CHPL_HOME/modules/standard/Heap.chpl:425: note:   createHeap(const ref x: [?d] ?t, param parSafe: bool = false, comparator = defaultComparator)

Steps to Reproduce

Source Code:

use Heap;

var foo = createHeap([1,1,1], comparator=reverseComparator);

Compile command:

chpl --no-devel foo.chpl

Execution command:

NA

Associated Future Test(s):

Configuration Information

  • Output of chpl --version:
chpl version 1.26.0 pre-release (27f3d59788)
Copyright 2020-2022 Hewlett Packard Enterprise Development LP
Copyright 2004-2019 Cray Inc.
(See LICENSE file for more details)
  • Output of $CHPL_HOME/util/printchplenv --anonymize:
CHPL_TARGET_PLATFORM: darwin
CHPL_TARGET_COMPILER: clang
CHPL_TARGET_ARCH: x86_64
CHPL_TARGET_CPU: native
CHPL_LOCALE_MODEL: flat
CHPL_COMM: none *
CHPL_TASKS: qthreads
CHPL_LAUNCHER: none
CHPL_TIMERS: generic
CHPL_UNWIND: none
CHPL_MEM: jemalloc
CHPL_ATOMICS: cstdlib
CHPL_GMP: none *
CHPL_HWLOC: bundled
CHPL_RE2: bundled
CHPL_LLVM: none *
CHPL_AUX_FILESYS: none
  • Back-end compiler and version, e.g. gcc --version or clang --version:
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
  • (For Cray systems only) Output of module list: