githubEdit

Verify Functions

Functions can be validated for their signatures, modifiers, naming patterns, return types, and parameter structures.

To verify functions start by querying all functions present in the project:

Konsist
.scopeFromProject()
.functions()
...

In practical scenarios you'll typically want to verify a specific subset of functions - such as those defined inside classes:

Konsist
.scopeFromProject()
.classes()
.functions()
...

Konsist API allows to query local functions:

Konsist
.scopeFromProject()
.classes()
.functions(includeLocal = true)
...

Konsist allows you to verify multiple aspects of a functions. For a complete understanding of the available APIs, refer to the language reference documentation for KoFunctionDeclarationarrow-up-right.

Let's look at few examples.

Verify Name

Function names can be validated to ensure they follow project naming conventions and patterns.

Check if function name starts with get :

Verify Modifiers

Function modifiers can be validated to ensure proper encapsulation and access control.

Check if function has public or default (also public) modifier:

Verify Annotations

Function-level and member annotations can be verified for presence, correct usage, and required attribute values.

Check if function is annotated with Binding annotation:

Verify Body Type

Functions with block bodies (using curly braces) can be validated to ensure compliance with code structure requirements:

Expression body functions (using single-expression syntax) can be verified to maintain consistent style across the codebase:

Verify Parameters

Function parameters can be validated for their types, names, modifiers, and annotations to ensure consistent parameter usage.

Check if function has parameter of type String:

Verify Return Type

Return types can be checked to ensure functions follow expected return type patterns and contracts.

Check if function has Kotlin collection type:

Verify Generic Parameters

Generic type parameters can be validated to ensure proper generic type usage and constraints.

Check if function has type parameters:

Verify Generic Type Arguments

Generic type arguments can be checked for correct usage.

Check if return type has no type arguments:

Verify Top Level

Top-level functions (functions not declared inside a class) can be specifically queried and validated:

This helps ensure top-level functions follow project conventions, such as limiting their usage or enforcing specific naming patterns.

Last updated