aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-02-03 11:39:30 +0000
committerMichael Williamson <mike@zwobble.org>2024-02-03 11:39:51 +0000
commit2ec7f973ce084932ffe25516dc3fe27e2011450d (patch)
treeaf59afa25fac6b454ce28ab58fc03aa0ef0ca507 /src/main/java
parent96b78561204020df21703a5fe8922bf49dc6e1f4 (diff)
Add visibility to PatioDataElementImmutable
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java2
-rw-r--r--src/main/java/org/shedlang/compiler/patio/PatioDataElementImmutable.java1
-rw-r--r--src/main/java/org/shedlang/compiler/patio/PatioSerializer.java1
-rw-r--r--src/main/java/org/shedlang/compiler/patio/PatioVisibility.java12
-rw-r--r--src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatio.java1
-rw-r--r--src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStrings.java2
6 files changed, 17 insertions, 2 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java b/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java
index 859d79ab..aecefd7f 100644
--- a/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java
@@ -189,7 +189,7 @@ public class PatioToLlvm {
context.target()
)),
true,
- false,
+ patioDataElementImmutable.visibility().isPrivate(),
true
));
}
diff --git a/src/main/java/org/shedlang/compiler/patio/PatioDataElementImmutable.java b/src/main/java/org/shedlang/compiler/patio/PatioDataElementImmutable.java
index fef9f1fd..c2f90725 100644
--- a/src/main/java/org/shedlang/compiler/patio/PatioDataElementImmutable.java
+++ b/src/main/java/org/shedlang/compiler/patio/PatioDataElementImmutable.java
@@ -5,6 +5,7 @@ import org.shedlang.compiler.sources.Source;
public record PatioDataElementImmutable(
String name,
+ PatioVisibility visibility,
PatioDataValue value,
Source source
) implements PatioCompilationUnitElement {
diff --git a/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java b/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java
index d6db62c6..dc61d245 100644
--- a/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java
+++ b/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java
@@ -99,6 +99,7 @@ public class PatioSerializer {
treeList(
treeIdentifier("data-immutable"),
treeString(dataElementImmutable.name()),
+ visibilityToTree(dataElementImmutable.visibility()),
dataValueToTree(dataElementImmutable.value())
);
diff --git a/src/main/java/org/shedlang/compiler/patio/PatioVisibility.java b/src/main/java/org/shedlang/compiler/patio/PatioVisibility.java
index 55ccc361..b5bf6701 100644
--- a/src/main/java/org/shedlang/compiler/patio/PatioVisibility.java
+++ b/src/main/java/org/shedlang/compiler/patio/PatioVisibility.java
@@ -2,5 +2,15 @@ package org.shedlang.compiler.patio;
public enum PatioVisibility {
PRIVATE,
- PUBLIC,
+ PUBLIC;
+
+ public boolean isPrivate() {
+ return switch(this) {
+ case PRIVATE ->
+ true;
+
+ case PUBLIC ->
+ false;
+ };
+ }
}
diff --git a/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatio.java b/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatio.java
index 0831fd71..ba3995cb 100644
--- a/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatio.java
+++ b/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatio.java
@@ -1024,6 +1024,7 @@ public class ShidToPatio {
context = context.addCompilationUnitElement(new PatioDataElementImmutable(
"shed__rtti",
+ PatioVisibility.PUBLIC,
PatioDataValues.array(
PatioDataLayouts.struct(List.of(
PatioDataLayouts.INT32,
diff --git a/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStrings.java b/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStrings.java
index 25643169..599d3319 100644
--- a/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStrings.java
+++ b/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStrings.java
@@ -3,6 +3,7 @@ package org.shedlang.compiler.shidtopatio;
import org.shedlang.compiler.patio.PatioDataElementImmutable;
import org.shedlang.compiler.patio.PatioFunctionDeclaration;
import org.shedlang.compiler.patio.PatioLocal;
+import org.shedlang.compiler.patio.PatioVisibility;
import org.shedlang.compiler.patio.instructions.PatioCall;
import org.shedlang.compiler.patio.operands.PatioDataPtrConst;
import org.shedlang.compiler.patio.operands.PatioLocalRef;
@@ -57,6 +58,7 @@ public class ShidToPatioStrings {
context = context.addCompilationUnitElement(new PatioDataElementImmutable(
elementName,
+ PatioVisibility.PRIVATE,
dataValue,
source
));