@effect/language-service 0.84.1 → 0.84.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +33 -1
- package/cli.js.map +1 -1
- package/effect-lsp-patch-utils.js +32 -0
- package/effect-lsp-patch-utils.js.map +1 -1
- package/index.js +32 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/transform.js +32 -0
- package/transform.js.map +1 -1
|
@@ -3122,10 +3122,42 @@ function makeTypeCheckerUtils(ts, typeChecker, tsUtils) {
|
|
|
3122
3122
|
if (node.parent && ts.isJsxOpeningElement(node.parent) && node.parent.tagName === node) return;
|
|
3123
3123
|
if (node.parent && ts.isJsxClosingElement(node.parent) && node.parent.tagName === node) return;
|
|
3124
3124
|
if (node.parent && ts.isJsxAttribute(node.parent) && node.parent.name === node) return;
|
|
3125
|
+
if (isInsideTypeOnlyHeritageExpression(node)) return;
|
|
3125
3126
|
if (ts.isExpression(node) || ts.isTypeNode(node)) {
|
|
3126
3127
|
return typeChecker.getTypeAtLocation(node);
|
|
3127
3128
|
}
|
|
3128
3129
|
}
|
|
3130
|
+
function isInsideTypeOnlyHeritageExpression(node) {
|
|
3131
|
+
if (ts.isExpressionWithTypeArguments(node)) {
|
|
3132
|
+
return isTypeOnlyHeritageClause(node.parent);
|
|
3133
|
+
}
|
|
3134
|
+
if (!ts.isIdentifier(node) && !ts.isPropertyAccessExpression(node)) {
|
|
3135
|
+
return false;
|
|
3136
|
+
}
|
|
3137
|
+
for (let current = node.parent; current; current = current.parent) {
|
|
3138
|
+
if (ts.isPropertyAccessExpression(current)) {
|
|
3139
|
+
continue;
|
|
3140
|
+
}
|
|
3141
|
+
if (ts.isExpressionWithTypeArguments(current)) {
|
|
3142
|
+
return isTypeOnlyHeritageClause(current.parent);
|
|
3143
|
+
}
|
|
3144
|
+
return false;
|
|
3145
|
+
}
|
|
3146
|
+
return false;
|
|
3147
|
+
}
|
|
3148
|
+
function isTypeOnlyHeritageClause(node) {
|
|
3149
|
+
if (!node || !ts.isHeritageClause(node)) {
|
|
3150
|
+
return false;
|
|
3151
|
+
}
|
|
3152
|
+
const container = node.parent;
|
|
3153
|
+
if (!container) {
|
|
3154
|
+
return false;
|
|
3155
|
+
}
|
|
3156
|
+
if (ts.isInterfaceDeclaration(container)) {
|
|
3157
|
+
return true;
|
|
3158
|
+
}
|
|
3159
|
+
return ts.isClassLike(container) && node.token === ts.SyntaxKind.ImplementsKeyword;
|
|
3160
|
+
}
|
|
3129
3161
|
function resolveToGlobalSymbol(symbol3) {
|
|
3130
3162
|
if (symbol3.flags & ts.SymbolFlags.Alias) {
|
|
3131
3163
|
symbol3 = typeChecker.getAliasedSymbol(symbol3);
|