Skip to content

Commit

Permalink
Coerce the type of a Object.Class field reference to be treated as a …
Browse files Browse the repository at this point in the history
…meta class.
  • Loading branch information
EliotVU committed Jul 23, 2024
1 parent bb42163 commit 776fd61
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions server/src/UC/expressions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -808,9 +808,10 @@ export class UCMemberExpression extends UCExpression {
}
} else if (member.getName() === NAME_CLASS && areIdentityMatch(member.outer, IntrinsicObject)) {
const classContext = getContext<UCClassSymbol>(context, UCSymbolKind.Class)!;
const coercedType = new UCObjectTypeSymbol(this.id, undefined, undefined, ModifierFlags.ReadOnly);
const coercedType = new UCObjectTypeSymbol(this.id);
coercedType.setRefNoIndex(classContext);
const coercedType = new UCObjectTypeSymbol(IntrinsicClass.id, undefined, UCSymbolKind.Class, ModifierFlags.ReadOnly);
coercedType.baseType = new UCObjectTypeSymbol(classContext.id, undefined, UCSymbolKind.Class, ModifierFlags.ReadOnly);
(coercedType.baseType as UCObjectTypeSymbol).setRefNoIndex(classContext);
coercedType.setRefNoIndex(IntrinsicClass);
this.coercedType = coercedType;
} else if (member.getName() === NAME_OUTER && areIdentityMatch(member.outer, IntrinsicObject)) {
const classContext = getContext<UCClassSymbol>(context, UCSymbolKind.Class)!;
Expand Down

0 comments on commit 776fd61

Please sign in to comment.