public final class TypeCheck extends java.lang.Object implements ExternalVisitor<Expr>
ExternalVisitor.Constant<A>| Modifier and Type | Method and Description |
|---|---|
Expr |
onAnnotated(Expr base,
Expr type) |
Expr |
onApplication(Expr base,
Expr arg) |
Expr |
onAssert(Expr base) |
Expr |
onBuiltIn(java.lang.String name) |
Expr |
onClasspathImport(java.nio.file.Path path,
Expr.ImportMode mode,
byte[] hash) |
Expr |
onDouble(double value) |
Expr |
onEmptyList(Expr type) |
Expr |
onEnvImport(java.lang.String value,
Expr.ImportMode mode,
byte[] hash) |
Expr |
onFieldAccess(Expr base,
java.lang.String fieldName) |
Expr |
onIdentifier(java.lang.String name,
long index) |
Expr |
onIf(Expr predicate,
Expr thenValue,
Expr elseValue) |
Expr |
onInteger(java.math.BigInteger value) |
Expr |
onLambda(java.lang.String param,
Expr input,
Expr result) |
Expr |
onLet(java.lang.String name,
Expr type,
Expr value,
Expr body) |
Expr |
onLocalImport(java.nio.file.Path path,
Expr.ImportMode mode,
byte[] hash) |
Expr |
onMerge(Expr handlers,
Expr union,
Expr type) |
Expr |
onMissingImport(Expr.ImportMode mode,
byte[] hash) |
Expr |
onNatural(java.math.BigInteger value) |
Expr |
onNonEmptyList(java.lang.Iterable<Expr> values,
int size) |
Expr |
onNote(Expr base,
Source source) |
Expr |
onOperatorApplication(Operator operator,
Expr lhs,
Expr rhs) |
Expr |
onPi(java.lang.String param,
Expr input,
Expr result) |
Expr |
onProjection(Expr base,
java.lang.String[] fieldNames) |
Expr |
onProjectionByType(Expr base,
Expr type) |
Expr |
onRecord(java.lang.Iterable<java.util.Map.Entry<java.lang.String,Expr>> fields,
int size) |
Expr |
onRecordType(java.lang.Iterable<java.util.Map.Entry<java.lang.String,Expr>> fields,
int size) |
Expr |
onRemoteImport(java.net.URI url,
Expr using,
Expr.ImportMode mode,
byte[] hash) |
Expr |
onText(java.lang.String[] parts,
java.lang.Iterable<Expr> interpolated) |
Expr |
onToMap(Expr base,
Expr type) |
Expr |
onUnionType(java.lang.Iterable<java.util.Map.Entry<java.lang.String,Expr>> fields,
int size) |
Expr |
onWith(Expr base,
java.lang.String[] path,
Expr value) |
public TypeCheck(Context context)
public TypeCheck()
public final Expr onNote(Expr base, Source source)
onNote in interface ExternalVisitor<Expr>public final Expr onNatural(java.math.BigInteger value)
onNatural in interface ExternalVisitor<Expr>public final Expr onInteger(java.math.BigInteger value)
onInteger in interface ExternalVisitor<Expr>public final Expr onDouble(double value)
onDouble in interface ExternalVisitor<Expr>public final Expr onBuiltIn(java.lang.String name)
onBuiltIn in interface ExternalVisitor<Expr>public final Expr onIdentifier(java.lang.String name, long index)
onIdentifier in interface ExternalVisitor<Expr>public final Expr onLambda(java.lang.String param, Expr input, Expr result)
onLambda in interface ExternalVisitor<Expr>public final Expr onPi(java.lang.String param, Expr input, Expr result)
onPi in interface ExternalVisitor<Expr>public final Expr onLet(java.lang.String name, Expr type, Expr value, Expr body)
onLet in interface ExternalVisitor<Expr>public final Expr onText(java.lang.String[] parts, java.lang.Iterable<Expr> interpolated)
onText in interface ExternalVisitor<Expr>public final Expr onNonEmptyList(java.lang.Iterable<Expr> values, int size)
onNonEmptyList in interface ExternalVisitor<Expr>public final Expr onEmptyList(Expr type)
onEmptyList in interface ExternalVisitor<Expr>public final Expr onRecord(java.lang.Iterable<java.util.Map.Entry<java.lang.String,Expr>> fields, int size)
onRecord in interface ExternalVisitor<Expr>public final Expr onRecordType(java.lang.Iterable<java.util.Map.Entry<java.lang.String,Expr>> fields, int size)
onRecordType in interface ExternalVisitor<Expr>public final Expr onUnionType(java.lang.Iterable<java.util.Map.Entry<java.lang.String,Expr>> fields, int size)
onUnionType in interface ExternalVisitor<Expr>public final Expr onFieldAccess(Expr base, java.lang.String fieldName)
onFieldAccess in interface ExternalVisitor<Expr>public final Expr onProjection(Expr base, java.lang.String[] fieldNames)
onProjection in interface ExternalVisitor<Expr>public final Expr onProjectionByType(Expr base, Expr type)
onProjectionByType in interface ExternalVisitor<Expr>public final Expr onApplication(Expr base, Expr arg)
onApplication in interface ExternalVisitor<Expr>public final Expr onOperatorApplication(Operator operator, Expr lhs, Expr rhs)
onOperatorApplication in interface ExternalVisitor<Expr>public final Expr onIf(Expr predicate, Expr thenValue, Expr elseValue)
onIf in interface ExternalVisitor<Expr>public final Expr onAnnotated(Expr base, Expr type)
onAnnotated in interface ExternalVisitor<Expr>public final Expr onAssert(Expr base)
onAssert in interface ExternalVisitor<Expr>public final Expr onMerge(Expr handlers, Expr union, Expr type)
onMerge in interface ExternalVisitor<Expr>public final Expr onToMap(Expr base, Expr type)
onToMap in interface ExternalVisitor<Expr>public final Expr onWith(Expr base, java.lang.String[] path, Expr value)
onWith in interface ExternalVisitor<Expr>public final Expr onMissingImport(Expr.ImportMode mode, byte[] hash)
onMissingImport in interface ExternalVisitor<Expr>public final Expr onEnvImport(java.lang.String value, Expr.ImportMode mode, byte[] hash)
onEnvImport in interface ExternalVisitor<Expr>public final Expr onLocalImport(java.nio.file.Path path, Expr.ImportMode mode, byte[] hash)
onLocalImport in interface ExternalVisitor<Expr>public final Expr onClasspathImport(java.nio.file.Path path, Expr.ImportMode mode, byte[] hash)
onClasspathImport in interface ExternalVisitor<Expr>public final Expr onRemoteImport(java.net.URI url, Expr using, Expr.ImportMode mode, byte[] hash)
onRemoteImport in interface ExternalVisitor<Expr>