This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 269272

Summary: Wrong name lookup results when template parameters are omitted
Product: cnd Reporter: petrk
Component: Code ModelAssignee: petrk
Status: VERIFIED FIXED    
Severity: normal    
Priority: P3    
Version: Dev   
Hardware: PC   
OS: Linux   
Issue Type: DEFECT Exception Reporter:

Description petrk 2016-12-08 13:46:25 UTC
enum SomeEnum {
    ns_empty, ns_decltype
};

template <SomeEnum ns>
class SomeClass;

class Base {
protected:
    void myfun();
};

template <>
class SomeClass<ns_empty> : public Base {
    typedef SomeClass<ns_decltype> type; // navigation jumps to enclosing class
    
    void foo(void *p) {
        static_cast<SomeClass*>(p)->myfun(); // myfun is unresolved
    }
};


template <>
class SomeClass<ns_decltype> : public Base {
    typedef SomeClass<ns_empty> type; // navigation jumps to enclosing class
    
    void foo(void *p) {
        static_cast<SomeClass*>(p)->myfun(); // here it is resolved
    }
};
Comment 1 petrk 2016-12-09 16:22:15 UTC
Was fixed as part of bug 268671
https://enum.ru.oracle.com/hg/release82/rev/d0078b27348a
Comment 2 soldatov 2016-12-12 10:32:57 UTC
Verified in internal NetBeans 8,2 patch 1 build.