Skip to content

Commit 612da0f

Browse files
committed
remove approximate mapping
1 parent db721c6 commit 612da0f

File tree

2 files changed

+3
-30
lines changed

2 files changed

+3
-30
lines changed

packages/schema/src/language-server/validator/attribute-application-validator.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,7 @@ import {
3030
import { ValidationAcceptor, streamAllContents, streamAst } from 'langium';
3131
import pluralize from 'pluralize';
3232
import { AstValidator } from '../types';
33-
import {
34-
getStringLiteral,
35-
mapBuiltinTypeToExpressionType,
36-
translateExpressionTypeToResolve,
37-
typeAssignable,
38-
} from './utils';
33+
import { getStringLiteral, mapBuiltinTypeToExpressionType, typeAssignable } from './utils';
3934

4035
// a registry of function handlers marked with @check
4136
const attributeCheckers = new Map<string, PropertyDescriptor>();
@@ -424,10 +419,8 @@ function isAliasAssignableToType(alias: AliasDecl, dstType: string, attr: Attrib
424419
return false;
425420
}
426421

427-
const mappedAliasResolvedType = translateExpressionTypeToResolve(alias.expression.$type);
428-
return (
429-
effectiveDstType === mappedAliasResolvedType || effectiveDstType === 'Any' || mappedAliasResolvedType === 'Any'
430-
);
422+
const aliasExpressionType = alias.expression.$resolvedType?.decl;
423+
return effectiveDstType === aliasExpressionType || effectiveDstType === 'Any' || aliasExpressionType === 'Any';
431424
}
432425

433426
function resolveEffectiveDestinationType(dstType: string, attr: AttributeApplication): string | null {

packages/schema/src/language-server/validator/utils.ts

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -99,26 +99,6 @@ export function mapBuiltinTypeToExpressionType(
9999
}
100100
}
101101

102-
/**
103-
* Map an expression $type (e.g. StringLiteral) to a resolved ExpressionType (e.g. String)
104-
*/
105-
export function translateExpressionTypeToResolve(expressionType: Expression['$type']): ExpressionType {
106-
switch (expressionType) {
107-
case 'StringLiteral':
108-
return 'String';
109-
case 'NumberLiteral':
110-
return 'Int';
111-
case 'BooleanLiteral':
112-
return 'Boolean';
113-
case 'ObjectExpr':
114-
return 'Object';
115-
case 'NullExpr':
116-
return 'Null';
117-
default:
118-
return 'Any';
119-
}
120-
}
121-
122102
export function isAuthOrAuthMemberAccess(expr: Expression): boolean {
123103
return isAuthInvocation(expr) || (isMemberAccessExpr(expr) && isAuthOrAuthMemberAccess(expr.operand));
124104
}

0 commit comments

Comments
 (0)