Skip to content

Commit 857d4a6

Browse files
authored
Moved OverDeclaration.isUnique to funcsem (dlang#21174)
1 parent c1eeb9b commit 857d4a6

File tree

3 files changed

+20
-21
lines changed

3 files changed

+20
-21
lines changed

compiler/src/dmd/declaration.d

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import dmd.dtemplate;
2727
import dmd.errors;
2828
import dmd.expression;
2929
import dmd.func;
30-
import dmd.funcsem : overloadApply, getLevelAndCheck;
30+
import dmd.funcsem : getLevelAndCheck;
3131
import dmd.globals;
3232
import dmd.gluelayer;
3333
import dmd.hdrgen;
@@ -783,25 +783,6 @@ extern (C++) final class OverDeclaration : Declaration
783783
return true;
784784
}
785785

786-
Dsymbol isUnique()
787-
{
788-
Dsymbol result = null;
789-
overloadApply(aliassym, (Dsymbol s)
790-
{
791-
if (result)
792-
{
793-
result = null;
794-
return 1; // ambiguous, done
795-
}
796-
else
797-
{
798-
result = s;
799-
return 0;
800-
}
801-
});
802-
return result;
803-
}
804-
805786
override void accept(Visitor v)
806787
{
807788
v.visit(this);

compiler/src/dmd/frontend.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6822,7 +6822,6 @@ class OverDeclaration final : public Declaration
68226822
bool equals(const RootObject* const o) const override;
68236823
bool overloadInsert(Dsymbol* s) override;
68246824
bool isOverloadable() const override;
6825-
Dsymbol* isUnique();
68266825
void accept(Visitor* v) override;
68276826
};
68286827

compiler/src/dmd/funcsem.d

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3664,3 +3664,22 @@ extern (D) int overloadApply(Dsymbol fstart, scope int delegate(Dsymbol) dg, Sco
36643664
}
36653665
return overloadApplyRecurse(fstart, dg, sc);
36663666
}
3667+
3668+
Dsymbol isUnique(OverDeclaration od)
3669+
{
3670+
Dsymbol result = null;
3671+
overloadApply(od.aliassym, (Dsymbol s)
3672+
{
3673+
if (result)
3674+
{
3675+
result = null;
3676+
return 1; // ambiguous, done
3677+
}
3678+
else
3679+
{
3680+
result = s;
3681+
return 0;
3682+
}
3683+
});
3684+
return result;
3685+
}

0 commit comments

Comments
 (0)