Commit 8bc6b51a authored by Miro Knejp's avatar Miro Knejp

Removed special logic for "const" placement

The compiler doesn't care and this works with all types, pointers, refs.
parent 0fbd8647
......@@ -88,7 +88,7 @@ class CppGenerator(spec: Spec) extends Generator(spec) {
for (c <- consts) {
w.wl
writeDoc(w, c.doc)
w.wl(s"static const ${marshal.fieldType(c.ty)} ${idCpp.const(c.ident)};")
w.wl(s"static ${marshal.fieldType(c.ty)} const ${idCpp.const(c.ident)};")
}
}
......@@ -121,7 +121,7 @@ class CppGenerator(spec: Spec) extends Generator(spec) {
val skipFirst = SkipFirst()
for (c <- consts) {
skipFirst{ w.wl }
w.w(s"const ${marshal.fieldType(c.ty)} $selfName::${idCpp.const(c.ident)} = ")
w.w(s"${marshal.fieldType(c.ty)} const $selfName::${idCpp.const(c.ident)} = ")
writeCppConst(w, c.ty, c.value)
w.wl(";")
}
......
......@@ -70,12 +70,8 @@ class ObjcGenerator(spec: Spec) extends Generator(spec) {
def writeObjcConstVariable(w: IndentWriter, c: Const, s: String): Unit = {
val nullability = marshal.nullability(c.ty.resolved).fold("")(" __" + _)
val td = marshal.fqFieldType(c.ty) + nullability
c.ty.resolved.base match {
// MBinary | MList | MSet | MMap are not allowed for constants.
// Primitives should be `const type`. All others are pointers and should be `type * const`
case t: MPrimitive => w.w(s"const ${td} $s${idObjc.const(c.ident)}")
case _ => w.w(s"${td} const $s${idObjc.const(c.ident)}")
}
// MBinary | MList | MSet | MMap are not allowed for constants.
w.w(s"${td} const $s${idObjc.const(c.ident)}")
}
def generateObjcConstants(w: IndentWriter, consts: Seq[Const], selfName: String) = {
......
......@@ -3,22 +3,22 @@
#include "constants.hpp" // my header
const bool Constants::BOOL_CONSTANT = true;
bool const Constants::BOOL_CONSTANT = true;
const int8_t Constants::I8_CONSTANT = 1;
int8_t const Constants::I8_CONSTANT = 1;
const int16_t Constants::I16_CONSTANT = 2;
int16_t const Constants::I16_CONSTANT = 2;
const int32_t Constants::I32_CONSTANT = 3;
int32_t const Constants::I32_CONSTANT = 3;
const int64_t Constants::I64_CONSTANT = 4;
int64_t const Constants::I64_CONSTANT = 4;
const double Constants::F64_CONSTANT = 5.0;
double const Constants::F64_CONSTANT = 5.0;
const std::string Constants::STRING_CONSTANT = "string-constant";
std::string const Constants::STRING_CONSTANT = "string-constant";
const std::experimental::optional<int32_t> Constants::OPTIONAL_INTEGER_CONSTANT = 1;
std::experimental::optional<int32_t> const Constants::OPTIONAL_INTEGER_CONSTANT = 1;
const Constants Constants::OBJECT_CONSTANT = Constants(
Constants const Constants::OBJECT_CONSTANT = Constants(
Constants::I32_CONSTANT /* some_integer */ ,
Constants::STRING_CONSTANT /* some_string */ );
......@@ -10,23 +10,23 @@
struct Constants final {
static const bool BOOL_CONSTANT;
static bool const BOOL_CONSTANT;
static const int8_t I8_CONSTANT;
static int8_t const I8_CONSTANT;
static const int16_t I16_CONSTANT;
static int16_t const I16_CONSTANT;
static const int32_t I32_CONSTANT;
static int32_t const I32_CONSTANT;
static const int64_t I64_CONSTANT;
static int64_t const I64_CONSTANT;
static const double F64_CONSTANT;
static double const F64_CONSTANT;
static const std::string STRING_CONSTANT;
static std::string const STRING_CONSTANT;
static const std::experimental::optional<int32_t> OPTIONAL_INTEGER_CONSTANT;
static std::experimental::optional<int32_t> const OPTIONAL_INTEGER_CONSTANT;
static const Constants OBJECT_CONSTANT;
static Constants const OBJECT_CONSTANT;
int32_t some_integer;
std::string some_string;
......
......@@ -3,14 +3,14 @@
#include "constants_interface.hpp" // my header
const bool ConstantsInterface::BOOL_CONSTANT = true;
bool const ConstantsInterface::BOOL_CONSTANT = true;
const int8_t ConstantsInterface::I8_CONSTANT = 1;
int8_t const ConstantsInterface::I8_CONSTANT = 1;
const int16_t ConstantsInterface::I16_CONSTANT = 2;
int16_t const ConstantsInterface::I16_CONSTANT = 2;
const int32_t ConstantsInterface::I32_CONSTANT = 3;
int32_t const ConstantsInterface::I32_CONSTANT = 3;
const int64_t ConstantsInterface::I64_CONSTANT = 4;
int64_t const ConstantsInterface::I64_CONSTANT = 4;
const double ConstantsInterface::F64_CONSTANT = 5.0;
double const ConstantsInterface::F64_CONSTANT = 5.0;
......@@ -9,17 +9,17 @@ class ConstantsInterface {
public:
virtual ~ConstantsInterface() {}
static const bool BOOL_CONSTANT;
static bool const BOOL_CONSTANT;
static const int8_t I8_CONSTANT;
static int8_t const I8_CONSTANT;
static const int16_t I16_CONSTANT;
static int16_t const I16_CONSTANT;
static const int32_t I32_CONSTANT;
static int32_t const I32_CONSTANT;
static const int64_t I64_CONSTANT;
static int64_t const I64_CONSTANT;
static const double F64_CONSTANT;
static double const F64_CONSTANT;
virtual void dummy() = 0;
};
......@@ -15,12 +15,12 @@
@end
extern const BOOL DBConstantsBoolConstant;
extern const int8_t DBConstantsI8Constant;
extern const int16_t DBConstantsI16Constant;
extern const int32_t DBConstantsI32Constant;
extern const int64_t DBConstantsI64Constant;
extern const double DBConstantsF64Constant;
extern BOOL const DBConstantsBoolConstant;
extern int8_t const DBConstantsI8Constant;
extern int16_t const DBConstantsI16Constant;
extern int32_t const DBConstantsI32Constant;
extern int64_t const DBConstantsI64Constant;
extern double const DBConstantsF64Constant;
extern NSString * __nonnull const DBConstantsStringConstant;
extern NSNumber * __nullable const DBConstantsOptionalIntegerConstant;
extern DBConstants * __nonnull const DBConstantsObjectConstant;
......@@ -6,17 +6,17 @@
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
const BOOL DBConstantsBoolConstant = YES;
BOOL const DBConstantsBoolConstant = YES;
const int8_t DBConstantsI8Constant = 1;
int8_t const DBConstantsI8Constant = 1;
const int16_t DBConstantsI16Constant = 2;
int16_t const DBConstantsI16Constant = 2;
const int32_t DBConstantsI32Constant = 3;
int32_t const DBConstantsI32Constant = 3;
const int64_t DBConstantsI64Constant = 4;
int64_t const DBConstantsI64Constant = 4;
const double DBConstantsF64Constant = 5.0;
double const DBConstantsF64Constant = 5.0;
NSString * __nonnull const DBConstantsStringConstant = @"string-constant";
......
......@@ -3,12 +3,12 @@
#import <Foundation/Foundation.h>
extern const BOOL DBConstantsInterfaceBoolConstant;
extern const int8_t DBConstantsInterfaceI8Constant;
extern const int16_t DBConstantsInterfaceI16Constant;
extern const int32_t DBConstantsInterfaceI32Constant;
extern const int64_t DBConstantsInterfaceI64Constant;
extern const double DBConstantsInterfaceF64Constant;
extern BOOL const DBConstantsInterfaceBoolConstant;
extern int8_t const DBConstantsInterfaceI8Constant;
extern int16_t const DBConstantsInterfaceI16Constant;
extern int32_t const DBConstantsInterfaceI32Constant;
extern int64_t const DBConstantsInterfaceI64Constant;
extern double const DBConstantsInterfaceF64Constant;
@interface DBConstantsInterface : NSObject
......
......@@ -7,16 +7,16 @@
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
const BOOL DBConstantsInterfaceBoolConstant = YES;
BOOL const DBConstantsInterfaceBoolConstant = YES;
const int8_t DBConstantsInterfaceI8Constant = 1;
int8_t const DBConstantsInterfaceI8Constant = 1;
const int16_t DBConstantsInterfaceI16Constant = 2;
int16_t const DBConstantsInterfaceI16Constant = 2;
const int32_t DBConstantsInterfaceI32Constant = 3;
int32_t const DBConstantsInterfaceI32Constant = 3;
const int64_t DBConstantsInterfaceI64Constant = 4;
int64_t const DBConstantsInterfaceI64Constant = 4;
const double DBConstantsInterfaceF64Constant = 5.0;
double const DBConstantsInterfaceF64Constant = 5.0;
#pragma clang diagnostic pop
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment