Author Topic: push-tag-filter-overloads is not presenting user with a choice  (Read 4141 times)

rowbearto

  • Senior Community Member
  • Posts: 2335
  • Hero Points: 132
push-tag-filter-overloads is not presenting user with a choice
« on: February 26, 2019, 09:50:41 PM »
Look for filtoverchoice.tar.gz on support. Follow instructions in the README file.

rowbearto

  • Senior Community Member
  • Posts: 2335
  • Hero Points: 132
Re: push-tag-filter-overloads is not presenting user with a choice
« Reply #1 on: March 07, 2019, 04:48:12 PM »
Dennis: Were you able to reproduce this one also?

Dennis

  • Senior Community Member
  • Posts: 3955
  • Hero Points: 515
Re: push-tag-filter-overloads is not presenting user with a choice
« Reply #2 on: March 07, 2019, 06:56:33 PM »
Also on my list.

rowbearto

  • Senior Community Member
  • Posts: 2335
  • Hero Points: 132
Re: push-tag-filter-overloads is not presenting user with a choice
« Reply #3 on: March 27, 2019, 11:58:52 PM »
This issue is still there, even with latest hotfix.

Dennis

  • Senior Community Member
  • Posts: 3955
  • Hero Points: 515
Re: push-tag-filter-overloads is not presenting user with a choice
« Reply #4 on: March 28, 2019, 02:17:22 PM »
It is still on my list.

Dennis

  • Senior Community Member
  • Posts: 3955
  • Hero Points: 515
Re: push-tag-filter-overloads is not presenting user with a choice
« Reply #5 on: September 10, 2019, 10:01:27 PM »
Took another look at this with beta4.

The results are correct within reason.  There are three overloads in the source code:
Code: [Select]
/* 1 */ unsigned char my_namespace::function1( another_namespace::types::SomeType some_type, bool someBooleanArg=false );
/* 2 */ unsigned char my_namespace::function1( another_namesapce::types::SomeType some_type, bool someBoolArg) {}
/* 3 */ unsigned char my_namespace::function1( another_namespace::types::SomeType some_type) {}

  • prototype matches because second argument takes default
  • function does not match because call only has one argument
  • function with one argument matches exactly

So, it narrows the list down to one prototype and one function, and your preferences are to navigate to the function definition first, so it goes directly to the function.  Hit Ctrl+. again, it will cycle to the first prototype.

Case 2 could be smarter, matching the function definition to its corresponding prototype to try to determine which arguments could take defaults.  That's a lot of work.  I'll see what can be done.
« Last Edit: September 12, 2019, 03:33:52 PM by Dennis »