If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Expose "using" declarations in dehydra, *or* expose shadowed base declarations somehow

RESOLVED WONTFIX

Status

()

Core
Rewriting and Analysis
RESOLVED WONTFIX
9 years ago
5 years ago

People

(Reporter: Benjamin Smedberg, Assigned: (dormant account))

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

9 years ago
I want to use dehydra to expose "the public API of class nsString"

I can mostly do this by walking the tree of public bases and adding in members that haven't been overridden. However, I don't think I have enough information to distinguish the following edge cases:

struct A {
  void f();
};
struct B {
  void f(int);
};
in this case, `void f()` is not visible in class B

struct C {
  void f();
};
struct D {
  void f(int);
  using C::f;
};
In this case, both `void f()` and `void f(int)` are visible in class D.

struct E {
  void f();
};
struct F {
private:
  using E::f;
};
In this case, `void f()` is made private in F by the using declaration, even though it would normally be public.

Note: I have a separate patch forthcoming to expose member access (and hopefully base access).
Dehydra and treehydra are no longer maintained by Mozilla.
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.