Closed Luna-Klatzer closed 2 months ago
Attention: Patch coverage is 82.71357%
with 172 lines
in your changes missing coverage. Please review.
Project coverage is 82.62%. Comparing base (
54c7760
) to head (0490f5c
).
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
What type of change does this PR perform?
Summary
Implemented internal representation for objects and object types such as interfaces and classes. This also includes rewrites of the core Kipper type system, which previously relied on simply specifying types using strings. This system is now replaced with a proper symbol table system, where type identifiers act as references similar to variables and new types can be registered wherever in the program.
Closes #524
Detailed Changelog
Added
semantics/runtime-built-ins
, which contains runtime built-in functions, variables and types.semantics/runtime-internals
, which contains the runtime internal functions.semantics/types
, which contains the runtime types.InterfaceDeclaration
, which represents an AST interface declaration.ClassDeclaration
, which represents an AST class declaration.BuiltInType
, which represents a built-in type.CustomType
, which represents a user defined type.ScopeTypeDeclaration
, which represents a scope type declaration.UniverseTypeDeclaration
, which represents the universe, where all built-in types, functions and variables are declared. This serves as the parent of the global scope.CustomType
, which is a class extending fromProcessedType
and implementing the functionality for a custom type such as a interface or class.TypeCanNotBeUsedForTypeCheckingError
, which is thrown when a type is used for type checking, but is not a valid type. This is an error indicating an invalid logic that should be fixed.InterfaceDeclarationSemantics
, which represents the semantics of an interface declaration.InterfaceDeclarationTypeSemantics
, which represents the type semantics of an interface declaration.ClassDeclarationSemantics
, which represents the semantics of a class declaration.ClassDeclarationTypeSemantics
, which represents the type semantics of a class declaration.TypeDeclaration
, which represents a type declaration. This is an abstract base class for all type declarations.TypeDeclarationSemantics
, which represents the semantics of a type declaration.TypeDeclarationTypeSemantics
, which represents the type semantics of a type declaration.CompilableType
, which represents a type that can be compiled.Changed
InternalFunction
, which represents an internal function.BuiltInFunction
, which represents a built-in function.InternalFunctionArgument
, which represents an internal function argument.BuiltInVariable
, which represents a built-in variable.analysis
tosemantics
.UncheckedType
toRawType
.CheckedType
toProcessedType
.UndefinedCustomType
toUndefinedType
.Does this PR create new warnings?
None.
Linked issues or PRs