summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Fusik <piotr@fusion-lang.org>2024-02-28 15:30:22 +0100
committerPiotr Fusik <piotr@fusion-lang.org>2024-02-28 15:30:22 +0100
commitad3d91ae399c103b67edd823e86ab382faf7625c (patch)
treed2015138263154410c03c46948f43ceefeabd337
parentce08f8b765b1f18863ce3a478ba9c15842a0c285 (diff)
[c] Emit public members of internal class in *.c not the header.
-rw-r--r--GenC.fu4
-rw-r--r--libfut.cpp4
-rw-r--r--libfut.cs4
-rw-r--r--libfut.js4
4 files changed, 8 insertions, 8 deletions
diff --git a/GenC.fu b/GenC.fu
index f00dff2..5c774df 100644
--- a/GenC.fu
+++ b/GenC.fu
@@ -3189,14 +3189,14 @@ public class GenC : GenCCpp
{
for (FuSymbol? symbol = klass.First; symbol != null; symbol = symbol.Next) {
switch (symbol) {
- case FuConst konst when (konst.Visibility == FuVisibility.Public) == pub:
+ case FuConst konst when (klass.IsPublic && konst.Visibility == FuVisibility.Public) == pub:
if (pub) {
WriteNewLine();
WriteDoc(konst.Documentation);
}
WriteConst(konst);
break;
- case FuMethod method when method.IsLive && (method.Visibility == FuVisibility.Public) == pub && method.CallType != FuCallType.Abstract && method.Id != FuId.Main:
+ case FuMethod method when method.IsLive && (klass.IsPublic && method.Visibility == FuVisibility.Public) == pub && method.CallType != FuCallType.Abstract && method.Id != FuId.Main:
WriteNewLine();
WriteMethodDoc(method);
WriteSignature(method);
diff --git a/libfut.cpp b/libfut.cpp
index 6a1756c..3db32b8 100644
--- a/libfut.cpp
+++ b/libfut.cpp
@@ -12100,14 +12100,14 @@ void GenC::writeSignatures(const FuClass * klass, bool pub)
for (const FuSymbol * symbol = klass->first; symbol != nullptr; symbol = symbol->next) {
const FuConst * konst;
const FuMethod * method;
- if ((konst = dynamic_cast<const FuConst *>(symbol)) && (konst->visibility == FuVisibility::public_) == pub) {
+ if ((konst = dynamic_cast<const FuConst *>(symbol)) && (klass->isPublic && konst->visibility == FuVisibility::public_) == pub) {
if (pub) {
writeNewLine();
writeDoc(konst->documentation.get());
}
writeConst(konst);
}
- else if ((method = dynamic_cast<const FuMethod *>(symbol)) && method->isLive && (method->visibility == FuVisibility::public_) == pub && method->callType != FuCallType::abstract && method->id != FuId::main) {
+ else if ((method = dynamic_cast<const FuMethod *>(symbol)) && method->isLive && (klass->isPublic && method->visibility == FuVisibility::public_) == pub && method->callType != FuCallType::abstract && method->id != FuId::main) {
writeNewLine();
writeMethodDoc(method);
writeSignature(method);
diff --git a/libfut.cs b/libfut.cs
index 762deab..116c76a 100644
--- a/libfut.cs
+++ b/libfut.cs
@@ -12360,14 +12360,14 @@ namespace Fusion
{
for (FuSymbol symbol = klass.First; symbol != null; symbol = symbol.Next) {
switch (symbol) {
- case FuConst konst when (konst.Visibility == FuVisibility.Public) == pub:
+ case FuConst konst when (klass.IsPublic && konst.Visibility == FuVisibility.Public) == pub:
if (pub) {
WriteNewLine();
WriteDoc(konst.Documentation);
}
WriteConst(konst);
break;
- case FuMethod method when method.IsLive && (method.Visibility == FuVisibility.Public) == pub && method.CallType != FuCallType.Abstract && method.Id != FuId.Main:
+ case FuMethod method when method.IsLive && (klass.IsPublic && method.Visibility == FuVisibility.Public) == pub && method.CallType != FuCallType.Abstract && method.Id != FuId.Main:
WriteNewLine();
WriteMethodDoc(method);
WriteSignature(method);
diff --git a/libfut.js b/libfut.js
index 6bb23b1..1358687 100644
--- a/libfut.js
+++ b/libfut.js
@@ -12775,14 +12775,14 @@ export class GenC extends GenCCpp
for (let symbol = klass.first; symbol != null; symbol = symbol.next) {
let konst;
let method;
- if ((konst = symbol) instanceof FuConst && (konst.visibility == FuVisibility.PUBLIC) == pub) {
+ if ((konst = symbol) instanceof FuConst && (klass.isPublic && konst.visibility == FuVisibility.PUBLIC) == pub) {
if (pub) {
this.writeNewLine();
this.writeDoc(konst.documentation);
}
this.writeConst(konst);
}
- else if ((method = symbol) instanceof FuMethod && method.isLive && (method.visibility == FuVisibility.PUBLIC) == pub && method.callType != FuCallType.ABSTRACT && method.id != FuId.MAIN) {
+ else if ((method = symbol) instanceof FuMethod && method.isLive && (klass.isPublic && method.visibility == FuVisibility.PUBLIC) == pub && method.callType != FuCallType.ABSTRACT && method.id != FuId.MAIN) {
this.writeNewLine();
this.writeMethodDoc(method);
this.#writeSignature(method);