Skip to content

std/jule/log

Index

Variables
fn Logf(fmt: str, args: ...any): str
struct Log

Variables

jule
const (
	StdlibNotExist = `standard library not found`
	FileNotUseable = `file is not usable for this operating system or architecture`
	FileNotJule = `@ is not a Jule source file`
	NoEntryPoint = `missing entry point: (main) is not defined`
	DuplicatedIdent = `duplicate "@" identifier in this scope`
	ExtraClosedParent = `extra closing parentheses`
	ExtraClosedBrace = `extra closing brace`
	ExtraClosedBracket = `extra closing bracket`
	WaitCloseParent = `parentheses open but not closed`
	WaitCloseBrace = `braces open but not closed`
	WaitCloseBracket = `brackets open but not closed`
	ExpectedParentClose = `closing parentheses expected`
	ExpectedBraceClose = `closing brace expected`
	ExpectedBracketClose = `closing bracket expected`
	BodyNotExist = `body not found`
	OperatorOverflow = `operator overflow: repetitive operators`
	IncompatibleTypes = `mismatched types: @ != @`
	OperatorNotForJuleType = `operator @ is not defined for type @`
	OperatorNotForFloat = `operator @ is not defined for floating-point types`
	OperatorNotForInt = `operator @ is not defined for integer types`
	OperatorNotForUint = `operator @ is not defined for unsigned integer types`
	IdentNotExist = `undefined identifier: @`
	NotFuncCall = `value is not a function`
	ArgumentOverflow = `passed more argument than expected to call @`
	FieldOverflow = `expression exceeded field count of type`
	FuncHaveRet = `function @ doesn't have a return type`
	FuncHaveParameters = `function @ doesn't require any parameters`
	RequireRetExpr = `non-void functions should return a value`
	VoidFuncRetExpr = `void functions cannot return a value`
	BitShiftMustUnsigned = `bit shifting value must be unsigned integer`
	InvalidShiftCount = `invalid shift count: @`
	LogicalNotBool = `logical expression must be boolean`
	AssignConst = `constants cannot be assigned`
	AssignRequireLvalue = `invalid expression: expected lvalue`
	AssignTypeNotSupportValue = `type does not support assignment`
	InvalidToken = `undefined token: @`
	InvalidSyntax = `invalid syntax`
	InvalidType = `invalid type`
	InvalidNumericRange = `arithmetic value out of range`
	InvalidExprForUnary = `unary operator @ not defined for type @`
	InvalidEscapeSeq = `invalid escape sequence`
	InvalidTypeSource = `invalid type source`
	InvalidTypeForConst = `@ is not a constant type`
	InvalidExpr = `invalid expression`
	InvalidCppExt = `invalid C++ extension: @`
	InvalidLabel = `invalid label: @`
	InvalidExprForTypeInference = `invalid expression for type inference`
	MissingValueForTypeInference = `type inferred declarations should have an initializer expression`
	MissingType = `type missing`
	MissingExpr = `expression missing`
	MissingBlockCommentClose = `block comment not closed`
	MissingRuneEnd = `rune not finished`
	MissingRet = `missing return at end of function`
	MissingStrEnd = `string not closed`
	MissingMultiRet = `missing return expressions for multi-return`
	MissingMultiAssignIdents = `missing identifier(s) for multiple assignment`
	MissingUsePath = `missing path`
	MissingGotoLabel = `missing label identifier for goto statement`
	MissingExprFor = `missing expression for @`
	MissingGenerics = `missing generics`
	MissingReceiver = `missing receiver parameter`
	MissingFuncParentheses = `missing function parentheses`
	ExprNotConst = `expression is not constant`
	NilForTypeInference = `nil cannot be used with type inferred definitions`
	VoidForTypeInference = `void data cannot be used for type inferred definitions`
	RuneEmpty = `rune cannot be empty`
	RuneOverflow = `rune value out of range`
	NotSupportsIndexing = `type @ does not support indexing`
	NotSupportsSlicing = `type @ does not support slicing`
	AlreadyConst = `define is already constant`
	AlreadyVariadic = `define is already variadic`
	AlreadyReference = `define is already reference`
	StaticReference = `static variables cannot be reference`
	DuplicateUseDecl = `@ is already being used`
	IgnoreIdent = `ignore operator cannot be used as an identifier for this declaration`
	OverflowMultiAssignIdents = `overflow multi assignment identifiers`
	OverflowRet = `overflow return expressions`
	BreakAtOutOfValidScope = `break keyword not in valid scope`
	ContinueAtOutOfValidScope = `continue keyword not in valid scope`
	IterWhileRequireBoolExpr = `while iterations require boolean expression`
	IterRangeRequireEnumerableExpr = `range iterations must have enumerable expression`
	MuchRangeVars = `range variables out of range (ironically)`
	IfRequireBoolExpr = `if conditions require boolean expression`
	ElseHaveExpr = `else conditions cannot have expressions`
	VariadicParamNotLast = `variadic parameter must be last parameter`
	VariadicWithNonVariadicable = `type @ is not variadicable`
	MoreArgsWithVariadiced = `variadic argument cannot use with more arguments`
	VariadicReference = `variadic storage cannot be a reference`
	TypeNotSupportsCasting = `type @ does not support casting`
	TypeNotSupportsCastingTo = `type @ does not support casting to type @`
	UseAtContent = `use declaration must be at the top of source code`
	UseNotFound = `path not found or cannot be accessed: @`
	DefNotSupportPub = `define does not support modifiers`
	ObjNotSupportSubFields = `object @ does not support sub-defines`
	ObjHaveNotIdent = `type @ has no field or method: @`
	TypeNotSupportSubFields = `type @ is not supports sub-defines`
	TypeHaveNotIdent = `type @ has no field or method: @`
	DeclaredButNotUsed = `@ declared but not used`
	ExprNotFuncCall = `statement must be a function call`
	LabelExist = `label already exists for this identifier: @`
	LabelNotExist = `the label @ does not exist`
	GotoJumpsDeclarations = `goto @ jumps over declaration(s)`
	FuncNotHasParam = `function does not have a parameter in this identifier: @`
	AlreadyHasExpr = `@ already has an expression`
	ArgMustTargetToField = `argument must target a field`
	OverflowLimits = `overflow the limit of data-type`
	GenericsOverflow = `overflow generics`
	HasGenerics = `type has generics but not instantiated with generics`
	NotHasGenerics = `type has no generics but instantiated with generics`
	TypeNotSupportsGenerics = `type does not support generics`
	DivByZero = `don't divide by zero`
	TraitHaveNotIdent = `trait @ has no define @`
	NotImplTraitDef = `trait @ derived but not implemented define @`
	DynamicTypeAnnotationFailed = `dynamic type annotation failed`
	FallthroughWrongUse = `fall keyword can only be used at end of case scopes`
	FallthroughIntoFinalCase = `fall cannot be used in the final case`
	UnsafeBehaviorAtOutOfUnsafeScope = `unsafe behavior outside of unsafe scope`
	RefMethodUsedWithNotRefInstance = `reference method cannot be used with a non-reference instance`
	MethodAsAnonFunc = `non-static methods cannot be anonymized`
	BindedFuncAsAnonFunc = `binded functions cannot be anonymized`
	GenericedFuncAsAnonFunc = `genericed functions cannot be anonymized`
	IllegalCycleRefersItself = `illegal cycle in declaration: @ refers to itself`
	IllegalCrossCycle = "illegal cross cycle in declaration:\n@"
	AssignToNonMut = `cannot assign to immutable storage`
	AssignNonMutToMut = `immutable data cannot be assigned to mutable storage because of @ type, which is mutable`
	RetWithMutTypedNonMut = `mutable return expressions should be mutable`
	MutOperationOnImmut = `mutable operations cannot be used with immutable data`
	TraitHasRefParamFunc = `trait uses a reference receiver parameter method, cannot assign non-reference instance`
	EnumHaveNotField = `enum @ has no field: @`
	DuplicateMatchType = `type @ is already matched`
	BindedVarHasExpr = `binded variables cannot have expressions`
	BindedVarIsConst = `binded variables cannot be constant`
	ConstVarNotHaveExpr = `missing expression for constant variable initialization`
	MissingExprForUnary = `missing expression for unary operator`
	InvalidOpForUnary = `invalid unary operator: @`
	UseDeclAtBody = `use declarations must be at the top of source code`
	ArrayAutoSized = `arrays must have explicit size`
	NamespaceNotExist = `undefined namespace: @`
	ImplInvalidBase = `invalid base type for impl: @`
	ImplInvalidDest = `invalid destination type for impl: @`
	StructAlreadyHaveIdent = `struct @ already has @ defined`
	UnsafePtrIndexing = `unsafe pointers do not support indexing`
	MethodHasGenericWithSameIdent = `methods cannot have the same generic identifier as owner`
	TupleAssignToSingle = `tuples cannot assign to single define in the same time`
	MissingCompilePath = `missing path`
	ArraySizeIsNotInt = `array size must be integer`
	ArraySizeIsNeg = `array size must be positive`
	BuiltinAsNonFunc = `built-in define cannot be anonymized`
	TypeCaseHasNotValidExpr = `type-match must have <any>, <type enum>, <trait> or <generic> typed expression`
	IllegalImplOutOfPackage = `illegal implementation via definition from out of package`
	MethodNotInvoked = `method should be invoked`
	BuiltinNotInvoked = `built-in functions should be invoked`
	DuplicatedUseSelection = `@ is already selected`
	IdentIsNotAccessible = `@ is private and could not be accessed`
	InvalidStmtForNext = `invalid statement for while-next`
	ModuloWithNotInt = `module operator must be used with integer type`
	PkgIllegalCycleRefersItself = `@ cannot refer to itself`
	PkgIllegalCrossCycle = "illegal cross cycle in use declarations:\n@"
	RefersTo = `@ refers to @`
	NoFileInEntryPackage = `there is no Jule source code in package: @`
	NoMemberInEnum = `enum @ has no fields`
	InternalTypeNotSupportsClone = `type @ has internal types that don't support cloning`
	InvalidExprForBinary = `invalid expression for binary operation`
	TraitMethodHasGenerics = `trait methods cannot have generics`
	EnumAsMapVal = `maps do not support enums as map key type`
	GlobalNotStatic = `global variables must be static`
	StaticNotHaveExpr = `static variables must have an initialize expression`
	StaticFuncHasReceiver = `static functions cannot have a receiver parameter`
	RefAssignNonVar = `references requires variable based expression for assignment`
	MutRefPointsImmut = `mutable reference cannot point to immutable data`
	RefNotInited = `reference variables have lvalue as an initialize expression`
	ConstRef = `references cannot be constant`
	ConcurrentCallWithRefParam = `concurrent calls with functions with reference parameter(s) are not allowed in safe Jule`
	ConcurrentCallWithSelfParam = `concurrent calls with methods having a "self" receiver parameter are not allowed in safe Jule`
	UsedRefInAnonFuncFromParentScope = `anonymous functions cannot access reference definition @ of parent scope`
	TypeEnumAssertedFromAny = `type enum cannot be asserted from any type`
	DuplicatedUseAlias = `@ is already being used`
	BuiltinUsedForRef = `built-in defines cannot pass to references`
	DefaultNotLast = `default case cannot be the last case`
	IncompatibleTypeForPtrArithmetic = `type @ is incompatible with pointer arithmetic`
	ComptimePanic = `compile-time panic: @`
	InvalidTypeForIndexing = `type @ is invalid for indexing`
	UnusedDirective = `directive is out of scope`
	UnsupportedDirective = `define does not support @ directive`
	PanickedWithNonStr = `panic message must be a string`
	ErrorWithNonExceptional = `error outside of exceptional scope`
	BindedExceptional = `binded defines cannot be exceptional`
	HandledUnexceptional = `non-exceptionals cannot be handled like exceptionals`
	UnhandledExceptional = `exceptionals must be handled`
	MissingAssignRet = `exceptional returns an expression, therefore else block should return an expression`
	CoForExceptional = `concurrent calls do not support exceptionals`
	TypeCallWithExceptional = `type-cast calls do not support exceptionals`
	RetInDeferred = `deferred scopes do not support return statements`
	ErrorInDeferred = `deferred scopes do not support error calls`
	NilError = `function cannot be called with nil`
	UseExprOutOfScope = `use expressions cannot be used out of non-void exceptional handler scopes`
	UseExprInDeferred = `use expressions cannot be used in deferred scopes`
	UseExprNotLast = `use expression must be the last statement in a scope`
	InvalidMainFunction = `main function declaration is invalid`
	InvalidInitializerFunction = `initializer function declaration is invalid`
	AutoSizedArrFilled = `auto-sized arrays cannot filled`
	AssignInExpr = `assignments not available for expressions`
	WrongTestFuncDecl = `wrong test function declaration`
	TestMethod = `test methods cannot be declared`
	TestCalled = `test functions cannot be called`
	ModuleNotFound = `module file not found`
	UseDeclForInternal = `internal packages cannot be accessed`
	PubTestFunc = `test functions cannot be public`
	BindedTypeNotAllowed = `binded definitions are not allowed in this scope`
	GenericsNotAllowed = `generics are not allowed in this scope`
	InitiationCycle = `initiation cycle caused by a type declaration`
	DeclFoundInsteadExpr = `expected expression, found type declaration`
	CallingNonFunc = `attempted to call a non-function`
	StructureLitWithPrivFields = `structure cannot be instantiated because it has both public and private fields`
	AnyWithTypeEnum = `<any> type is not allowed for type-enum declarations`
	ConstraintFailed = "type @ doesn't match @'s constraint: @"
	SelectedImportExistInPackage = `@ already exists in this package`
	CoForCastingCall = `concurrent calls are not allowed for type-cast calls`
	TypeIsNotComparable = `type @ is not comparable`
	AmperOpForEnum = `@ enum type does not support @ operator`
	MissingArgs = `missing arguments to call @`
	InheritedNonTrait = `trait @ cannot implement @, type should be trait`
	IncompatibleInherit = "trait @ inherits trait @, but the same identifiers are implemented different:\n       @\n       @"
	ArraySizeOverflow = "array size @ overflows the kernel-defined limit of @"
	InvalidTypeForTypeOf = "comptime::TypeOf does not support type @"
	ComptimeAsExpr = "compile-time evaluations cannot be used as expressions"
	InvalidTypeForFunc = `type @ is invalid for function @`
	ComptimeFallthrough = `fall statement is not allowed for comptime-matching`
	SelectFallthrough = `fall statement is not allowed for select`
	CannotBeMut = `define @ cannot be mutable`
	AnonFunc = `anonymous functions are not allowed in this scope`
	CopyWithMutableData = `struct @ contains mutable data and cannot be copied`
	CalledOutOfScope = `function @ called out of scope`
	ComptimeExprForRuntimeIteration = `comptime expressions cannot be iterated at runtime`
	InvalidTypeForComptimeIter = `type @ does not support comptime iterations`
	InvalidComptimeIter = `comptime iterations can only be range iterations`
	InvalidComptimeTypeMatchExpr = `comptime type-match expressions can only take type declarations`
	NotEnoughVariablesForRet = "not enough variables to return\n       @ required\n       @ provided"
	TooManyVariablesForRet = "too many variables to return\n       @ required\n       @ provided"
	ExportedUsedAsAnonymous = `define @ is exported for backend and cannot be anonymized`
	InvalidImportPath = `invalid import path: @`
	AutoAliasFail = `import path not suitable for auto-aliasing: @`
	BindedAsSoftType = `binded type aliases cannot be soft type aliases`
	IndexOutOfRange = `index @ out of range of @`
	ExprNotChan = `expression is not channel for operator`
	ImmutDataSendViaMutChan = `mutable typed @ immutable data cannot be sent via a mutable channel`
	CloseRecvOnlyChan = `receive-only channel cannot be closed`
	SendToRecvOnlyChan = `data cannot be sent to a receive-only channel`
	RecvFromSendOnlyChan = `data cannot be received from a send-only channel`
	InvalidSelectExpr = `select case expects chan-receive or chan-send expressions`
	ExpectedNExpr = `expected @ expression`
	IterPermitsNVar = `iteration for type @ allows only @ iteration variable`
	UnsafePointerForAnnotation = `unsafe pointer cannot used for dynamic type annotation`
	MiddleIndexRequired = `middle index required in 3-index slicing`
	FinalIndexRequired = `final index required in 3-index slicing`
	UnsupportedTypeIndex3Slice = `unsupported type for 3-index slicing: @`
	ReuseDirective = `directive @ is already used`
	ConstantOverflow = `constant overflow`
	ConstantOverflowResult = `computation result is constant overflow`
	UntypedNumericForPhysical = `cannot use untyped value @ for the actual program, it is too large for any integer type`
	ConstantOverflowType = `untyped value @ overflows @`
	InvalidEnumKindForNamedFields = `enum kind does not supports named enum fields`
	TypeNotSupportsTypeAssertionTo = `type @ not supports type assertion to type @`
	TypeNotSupportsTypeAssertion = `type @ not supports type assertion`
	FirstGroupVarIsNotInitialized = `first define of group must be initialized`
	EmptyGroup = `group declaration is empty`
	ExceptionalNotPlain = `exceptionals must be used alone, not in binary expression or etc.`
	GotoJumpsIntoScope = `goto jumps into scope`

	// Suggestions.
	ExpectedIdentifier = `create an identifier because identifier expected`
	ExpectedLabelIdent = `create a label identifier because label expected`
	ExpectedDotForBind = `use dot (.) to access binded defines`
	ExpectedDblColon = `expected double colon (::)`
	EmptyParentNotValid = `empty parentheses are not a valid expression, must include an expression in range`
	GiveExprToCast = `provide an expression for casting`
	GiveTypeForCast = `type declaration expected for casting`
	ExpectedExpr = `expression expected`
	ExpectedAnonFunc = `anonymous function expected, remove the identifier`
	ExpectedLeftOperand = `left operand expected for binary operator`
	ExpectedRightOperand = `right operand expected for binary operator`
	ExpectedColon = `expected colon (:)`
	ExpectedBody = `expected a body, bodies should start in the same line as their definition and declared with braces ({ ... })`
	ExpectedType = `expected type declaration`
	ExpectedPlainUseDecl = `expected plain use declaration for this package (e.g. @)`
	DeclareComptimeForeach = `declarate comptime iteration (e.g. const for ...)`
	MoveUseDeclToTopOfFile = `move this use declaration to the top of the file`
	RenameForAvoidDuplication = `rename the definition to avoid duplication`
	RemoveUseDeclAvoidDuplication = `remove this use declaration, it is already being used`
	RenameUseAliasAvoidDuplication = `rename alias for this use declaration to avoid duplication`
	RemoveUseSelectionAvoidDuplication = `remove this use selection, it is already selected`
	RemoveConstToAssign = `remove constant qualifier if you need to assign`
	UseStaticKeywordToDef = `use the "static" keyword to define`
	RemoveFallthroughFromFinalCase = `remove the "fall" keyword`
	MakePubToAccess = `make it public by starting with a capital letter`
	ExpressionMustBeReferenceType = `expression must be reference type`
	TryFloatingPoint = `floating-point literals may solve your problem`
	ExpectedColonForAssign = `expected colon (:) for assignment`
	DeclareExceptional = `declare an exceptional function with the "!" operator`
	HandleExceptional = `use the "!" operator after an calling exceptional to handle it automatically`
	HandleInFunc = `handle this exceptional in a separate function or anonymous function`
	JustIgnoreOrHandle = `ignore this exceptional or handle it but you cannot do both at same time`
	UseImperative = `use clear imperative approach, comes relevant assignment statement before the expression`
	UseExpectedTestFuncDecl = `use the expected test function declaration: fn(t: &testing::T)`
	UseModInit = `run "julec mod init" to initialize a module in the current directory`
	RemovePubModifier = `don't use an identifier that starts with a capital letter to avoid making it public`
	ExpectedStruct = `use a structure`
	ExpectedTrait = `use a trait`
	UseTypeMatch = `you can use type-match if you want to match types`
	WrapExceptional = `wrap this exceptional in a non-exceptional function`
	UseFieldPairToInstantiate = `use label-expression pairs to instantiate (e.g. Struct{x:foo, y:bar})`
	InstantiateGenericFuncToUseAsAnon = `instantiate generic function to use as anonymous function`
	UseUnsafeJuleToCallCo = `use unsafe Jule with "unsafe { ... }" to make concurrent calls`
	UseUnsafeJuleToCallCoSelf = `use "&self" receiver parameter instead, or unsafe Jule with "unsafe { ... }" to make concurrent calls`
	DefineZeroDefaultToUseAmper = `define default enum field (the first one is default) with zero value to use "&"`
	InvalidExprForConstMatch = `comptime-matching requires constant expression`
	GiveAnAliasManually = `alias the import manually (e.g. use <alias> @)`
	WriteYourCodeInUnsafeJule = `use unsafe Jule with "unsafe { ... }"`
	CastingBindedTypesRequiresUnsafeJule = `casting binded types requires using unsafe Jule, "unsafe { ... }"`
	DefineAsStrictAlias = `define as strict type alias with a colon (:) (e.g. type @: <type>)`
	RArrowOpExpectsChan = `the "<-" operator expects a channel`
	ExpectedMainLike = `declare main function like: fn main() {}`
	ExpectedInitializerLike = `declare initializer function like: fn init() {}`
	AssignExceptionalResultToVariable = `consider assign result of exceptional to variable and then use it`
)

Compiler log messages with formatting.


jule
const (
	Flat = iota // Just text.
	Error       // Error message.
)

Log kinds.

Logf

jule
fn Logf(fmt: str, args: ...any): str

Returns formatted error message by fmt and args.

Log

jule
struct Log {
	Kind:       int
	Row:        int
	Column:     int
	Path:       str
	Text:       str
	Line:       str
	Suggestion: str
}

Compiler log.