Comments (2)
When creating the annotation value, we make it immutable by invoking cloneReadonly
. The problem occurs when populating the initial values of the record.
In the above example,
public type AnnotationRecord record {|
string summary?;
Examples examples?;
|};
When creating the AnnotationRecord
value, we use the type of the field as Examples
, and do a istypecheck
with the type of the field. That is immutable.
We can fix this by making the field read-only as well.
public type AnnotationRecord record {|
string summary?;
Examples & readonly examples?;
|};
public type Examples record {|
map<ExampleItem> response;
|};
public type ExampleItem record {
map<string> headers?;
};
const annotation AnnotationRecord annot on type;
@annot {
examples: {
response: {}
}
}
type Employee record {|
int id;
string name;
|};
The problem occurs, we call cloneReadonly
on {examples: {response: {}}}
and set the type correctly. However, the type of {response: {}}
is set to Examples
, and we do not create cloneReadonly
for this.
from ballerina-lang.
As a workaround for this issue, we can define the Examples
type as read-only.
from ballerina-lang.
Related Issues (20)
- [Bug]: IndexOutOfBounds in text/hover
- [Bug]: Datamapper doesn't show the types defined in another file. HOT 1
- [Bug]: Getting NPE when calling `attachmentValue()` on `AnnotationAttachmentSymbol`
- [New Feature]: Run tests with different configurations
- [Improvement]: Provide an option to configure transaction auto commit timeout HOT 3
- [Bug]: OOM when running stdlib level 8 and 6
- [Improvement]: Improvements to `bal deprecate` command
- [Bug]: The `FormattingTreeModifier` does not properly format an action statement in Windows
- [Bug]: Compiler crashes when a constant reference expression is used in an annotation
- [Bug]: Failing `CI Full Build Ubuntu` because of new data.xmldata release (0.1.1) HOT 1
- [Bug]: Failing testcase for native image build in cli (testNativeFunctionMockTests)
- NPE when generating OpenAPI client HOT 1
- [Improvement]: Integrate handle and regexp semtypes into jBallerina type engine
- [Bug]: The result of `multiple-receive-action` should be `error:NoMessage` if any of the recevie operations fail
- [Improvement]: Support `remove()` operation for tuples
- [Task] [Java 21] Remove generated Switch cases for functions
- [Task]: [Java 21] Support Java Virtual Threads in Ballerina Scheduler
- [Task]: [Java 21] Refactor Workers and Worker interaction with Java 21
- [Improvement]: Integrate future and typedesc semtypes into jBallerina type engine
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ballerina-lang.