Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -207,10 +207,12 @@ public TypeDataWithRefs getTypeDataWithRefs(TypeDefinitionSymbol typeDefSymbol)
*
* @param typeSymbol the type symbol to get the record selector type for
* @param module the module to resolve the type symbol in
* @param isDependentType whether the type symbol is the parent type for the record selector
* (i.e. the dependent record type)
* @return the record selector type for the given type symbol, or null if the type
* symbol is not a record or if the record selector type cannot be generated
*/
public RecordSelectorType getRecordSelectorType(TypeSymbol typeSymbol, Module module) {
public RecordSelectorType getRecordSelectorType(TypeSymbol typeSymbol, Module module, boolean isDependentType) {
TypeTransformer typeTransformer = new TypeTransformer(module);
TypeData.TypeDataBuilder typeDataBuilder = new TypeData.TypeDataBuilder();
Object transformedType = typeTransformer.transform(typeSymbol, typeDataBuilder);
Expand Down Expand Up @@ -243,7 +245,17 @@ public RecordSelectorType getRecordSelectorType(TypeSymbol typeSymbol, Module mo
// the same package (via CommonUtils.isWithinPackage), so it serves as the same-package predicate.
for (Object ref : refs.values()) {
if (ref instanceof TypeData refTypeData && refTypeData.editable()) {
result.add(refTypeData);
if (isDependentType) {
// If this is the dependent type (i.e. the record type being selected into), we want to ignore
// line range information
result.add(refTypeData.toBuilder()
.codedata()
.lineRange(null)
.stepOut()
.build());
} else {
result.add(refTypeData);
}
}
}

Expand Down Expand Up @@ -312,6 +324,7 @@ public static RecordSelectorType mergeWithTargetVarRecordSelectorType(RecordSele
updatedTypeNames.put(targetMemberTypeName,
new ReferenceTypeInfo(sourceMemberTypeName, sourceMemberCodedata));
memberBuilder.typeName(sourceMemberTypeName)
.refs(sourceMember.get().refs())
.type(sourceMember.get().type());
}
mergedMembers.add(memberBuilder
Expand Down Expand Up @@ -430,7 +443,7 @@ public List<TextEdit> getTextEditsForRecordSelectorTypes(RecordSelectorType reco
.findFirst();
if (field.isPresent()) {
if (referencedType.metadata() != null && referencedTypeName.equals(referencedType.metadata().label())) {
String newTypeName = typePrefix + capitalize(getTypeName(referencedTypeName)) + "Type";
String newTypeName = typePrefix + capitalize(getTypeName(field.get().name())) + "Type";
TypeData updatedRefType = referencedType.toBuilder()
.name(newTypeName)
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ private static void addRecordFieldSelector(ParameterData paramData, Module modul
// RECORD_FIELD_SELECTOR and provide the necessary type models for it.
TypesManager typesManager = new TypesManager(module.document(module.documentIds().iterator().next()));
RecordSelectorType recordSelectorType = typesManager.getRecordSelectorType(paramData.typeSymbol(),
module);
module, true);

if (recordSelectorType != null && targetVarType != null) {
TypeSymbol recordTargetVarType = targetVarType;
Expand All @@ -223,7 +223,7 @@ private static void addRecordFieldSelector(ParameterData paramData, Module modul
}
if (CommonUtil.getRawType(recordTargetVarType).typeKind().equals(TypeDescKind.RECORD)) {
RecordSelectorType targetVarRecordSelectorType = typesManager.getRecordSelectorType(
recordTargetVarType, module);
recordTargetVarType, module, false);
if (targetVarRecordSelectorType != null) {
recordSelectorType = mergeWithTargetVarRecordSelectorType(targetVarRecordSelectorType,
recordSelectorType);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -556,7 +556,7 @@
"typeMembers": [
{
"type": "LogFormat",
"packageInfo": "ballerina:log:2.16.1",
"packageInfo": "ballerina:log:2.17.0",
"packageName": "log",
"kind": "BASIC_TYPE",
"selected": false
Expand Down Expand Up @@ -680,7 +680,7 @@
"typeMembers": [
{
"type": "Level",
"packageInfo": "ballerina:log:2.16.1",
"packageInfo": "ballerina:log:2.17.0",
"packageName": "log",
"kind": "BASIC_TYPE",
"selected": false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1959,15 +1959,15 @@
"metadata": {
"label": "printError",
"description": "Prints error logs.\n```ballerina\nerror e = error(\"error occurred\");\nlog:printError(\"error log with cause\", 'error = e, id = 845315);\n```\n",
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.16.1.png"
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.17.0.png"
},
"codedata": {
"node": "FUNCTION_CALL",
"org": "ballerina",
"module": "log",
"packageName": "log",
"symbol": "printError",
"version": "2.16.1",
"version": "2.17.0",
"lineRange": {
"fileName": "main.bal",
"startLine": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,15 +113,15 @@
"metadata": {
"label": "printWarn",
"description": "Prints warn logs.\n```ballerina\nlog:printWarn(\"warn message\", id = 845315)\n```\n",
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.16.1.png"
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.17.0.png"
},
"codedata": {
"node": "FUNCTION_CALL",
"org": "ballerina",
"module": "log",
"packageName": "log",
"symbol": "printWarn",
"version": "2.16.1",
"version": "2.17.0",
"lineRange": {
"fileName": "function_call.bal",
"startLine": {
Expand Down Expand Up @@ -278,15 +278,15 @@
"metadata": {
"label": "printInfo",
"description": "Prints info logs.\n```ballerina\nlog:printInfo(\"info message\", id = 845315)\n```\n",
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.16.1.png"
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.17.0.png"
},
"codedata": {
"node": "FUNCTION_CALL",
"org": "ballerina",
"module": "log",
"packageName": "log",
"symbol": "printInfo",
"version": "2.16.1",
"version": "2.17.0",
"lineRange": {
"fileName": "function_call.bal",
"startLine": {
Expand Down Expand Up @@ -752,15 +752,15 @@
"metadata": {
"label": "printError",
"description": "Prints error logs.\n```ballerina\nerror e = error(\"error occurred\");\nlog:printError(\"error log with cause\", 'error = e, id = 845315);\n```\n",
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.16.1.png"
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.17.0.png"
},
"codedata": {
"node": "FUNCTION_CALL",
"org": "ballerina",
"module": "log",
"packageName": "log",
"symbol": "printError",
"version": "2.16.1",
"version": "2.17.0",
"lineRange": {
"fileName": "function_call.bal",
"startLine": {
Expand Down Expand Up @@ -934,15 +934,15 @@
"metadata": {
"label": "printInfo",
"description": "Prints info logs.\n```ballerina\nlog:printInfo(\"info message\", id = 845315)\n```\n",
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.16.1.png"
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.17.0.png"
},
"codedata": {
"node": "FUNCTION_CALL",
"org": "ballerina",
"module": "log",
"packageName": "log",
"symbol": "printInfo",
"version": "2.16.1",
"version": "2.17.0",
"lineRange": {
"fileName": "function_call.bal",
"startLine": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,15 +136,15 @@
"metadata": {
"label": "printError",
"description": "Prints error logs.\n```ballerina\nerror e = error(\"error occurred\");\nlog:printError(\"error log with cause\", 'error = e, id = 845315);\n```\n",
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.16.1.png"
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.17.0.png"
},
"codedata": {
"node": "FUNCTION_CALL",
"org": "ballerina",
"module": "log",
"packageName": "log",
"symbol": "printError",
"version": "2.16.1",
"version": "2.17.0",
"lineRange": {
"fileName": "log_source.bal",
"startLine": {
Expand Down Expand Up @@ -326,15 +326,15 @@
"metadata": {
"label": "printError",
"description": "Prints error logs.\n```ballerina\nerror e = error(\"error occurred\");\nlog:printError(\"error log with cause\", 'error = e, id = 845315);\n```\n",
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.16.1.png"
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.17.0.png"
},
"codedata": {
"node": "FUNCTION_CALL",
"org": "ballerina",
"module": "log",
"packageName": "log",
"symbol": "printError",
"version": "2.16.1",
"version": "2.17.0",
"lineRange": {
"fileName": "log_source.bal",
"startLine": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -206,15 +206,15 @@
"metadata": {
"label": "printError",
"description": "Prints error logs.\n```ballerina\nerror e = error(\"error occurred\");\nlog:printError(\"error log with cause\", 'error = e, id = 845315);\n```\n",
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.16.1.png"
"icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_log_2.17.0.png"
},
"codedata": {
"node": "FUNCTION_CALL",
"org": "ballerina",
"module": "log",
"packageName": "log",
"symbol": "printError",
"version": "2.16.1",
"version": "2.17.0",
"lineRange": {
"fileName": "queryAction.bal",
"startLine": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -455,17 +455,9 @@
},
"codedata": {
"node": "RECORD",
"lineRange": {
"fileName": "types.bal",
"startLine": {
"line": 8,
"offset": 12
},
"endLine": {
"line": 8,
"offset": 32
}
}
"id": 0,
"isNew": false,
"data": {}
},
"properties": {
"name": {
Expand Down Expand Up @@ -634,17 +626,9 @@
},
"codedata": {
"node": "RECORD",
"lineRange": {
"fileName": "types.bal",
"startLine": {
"line": 52,
"offset": 12
},
"endLine": {
"line": 52,
"offset": 29
}
}
"id": 0,
"isNew": false,
"data": {}
},
"properties": {
"name": {
Expand Down Expand Up @@ -813,17 +797,9 @@
},
"codedata": {
"node": "RECORD",
"lineRange": {
"fileName": "types.bal",
"startLine": {
"line": 30,
"offset": 12
},
"endLine": {
"line": 30,
"offset": 35
}
}
"id": 0,
"isNew": false,
"data": {}
},
"properties": {
"name": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -467,17 +467,9 @@
},
"codedata": {
"node": "RECORD",
"lineRange": {
"fileName": "types.bal",
"startLine": {
"line": 52,
"offset": 12
},
"endLine": {
"line": 52,
"offset": 29
}
}
"id": 0,
"isNew": false,
"data": {}
},
"properties": {
"name": {
Expand Down Expand Up @@ -646,17 +638,9 @@
},
"codedata": {
"node": "RECORD",
"lineRange": {
"fileName": "types.bal",
"startLine": {
"line": 30,
"offset": 12
},
"endLine": {
"line": 30,
"offset": 35
}
}
"id": 0,
"isNew": false,
"data": {}
},
"properties": {
"name": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -510,17 +510,9 @@
},
"codedata": {
"node": "RECORD",
"lineRange": {
"fileName": "types.bal",
"startLine": {
"line": 8,
"offset": 12
},
"endLine": {
"line": 8,
"offset": 32
}
}
"id": 0,
"isNew": false,
"data": {}
},
"properties": {
"name": {
Expand Down Expand Up @@ -689,17 +681,9 @@
},
"codedata": {
"node": "RECORD",
"lineRange": {
"fileName": "types.bal",
"startLine": {
"line": 52,
"offset": 12
},
"endLine": {
"line": 52,
"offset": 29
}
}
"id": 0,
"isNew": false,
"data": {}
},
"properties": {
"name": {
Expand Down Expand Up @@ -868,17 +852,9 @@
},
"codedata": {
"node": "RECORD",
"lineRange": {
"fileName": "types.bal",
"startLine": {
"line": 30,
"offset": 12
},
"endLine": {
"line": 30,
"offset": 35
}
}
"id": 0,
"isNew": false,
"data": {}
},
"properties": {
"name": {
Expand Down
Loading
Loading