@@ -342,7 +342,7 @@ export class IntegerRangeVariableType extends BaseVariableType {
342
342
}
343
343
//TODO! refactor variable types
344
344
//Stop mutating them to initialize, create a different class
345
- /** Contains data about an array type. Processed from an ExpressionASTArrayTypeNode. */
345
+ /** Contains data about an array type. Processed from an { @link ExpressionASTArrayTypeNode} . */
346
346
export class ArrayVariableType < Init extends boolean = true > extends BaseVariableType {
347
347
totalLength :number | null = null ;
348
348
arraySizes :number [ ] | null = null ;
@@ -653,33 +653,32 @@ export class SetVariableType<Init extends boolean = true> extends BaseVariableTy
653
653
constructor (
654
654
public initialized : Init ,
655
655
public name : string ,
656
- //TODO rename this to elementType
657
- public baseType : ( Init extends true ? never : UnresolvedVariableType ) | VariableType | null ,
656
+ public elementType : ( Init extends true ? never : UnresolvedVariableType ) | VariableType | null ,
658
657
) { super ( ) ; }
659
658
init ( runtime :Runtime ) {
660
- if ( Array . isArray ( this . baseType ) ) this . baseType = runtime . resolveVariableType ( this . baseType ) ;
659
+ if ( Array . isArray ( this . elementType ) ) this . elementType = runtime . resolveVariableType ( this . elementType ) ;
661
660
( this as SetVariableType < true > ) . initialized = true ;
662
661
}
663
662
fmtText ( ) :string {
664
- return f . text `${ this . name } (user-defined set type containing "${ this . baseType ?? "ANY" } ")` ;
663
+ return f . text `${ this . name } (user-defined set type containing "${ this . elementType ?? "ANY" } ")` ;
665
664
}
666
665
fmtShort ( ) :string {
667
666
return this . name ;
668
667
}
669
668
toQuotedString ( ) :string {
670
- return f . text `"${ this . name } " (user-defined set type containing "${ this . baseType ?? "ANY" } ")` ;
669
+ return f . text `"${ this . name } " (user-defined set type containing "${ this . elementType ?? "ANY" } ")` ;
671
670
}
672
671
fmtDebug ( ) :string {
673
- return f . debug `SetVariableType [${ this . name } ] (contains: ${ this . baseType ?? "ANY" } )` ;
672
+ return f . debug `SetVariableType [${ this . name } ] (contains: ${ this . elementType ?? "ANY" } )` ;
674
673
}
675
674
getInitValue ( runtime :Runtime ) :VariableValue | null {
676
675
crash ( `Cannot initialize a variable of type SET` ) ;
677
676
}
678
677
mapValues < T > ( value :VariableTypeMapping < SetVariableType > , callback :( tval :TypedValue ) => T ) :T [ ] {
679
- const baseType = ( this as SetVariableType < true > ) . baseType
678
+ const elementType = ( this as SetVariableType < true > ) . elementType
680
679
?? crash ( `Attempted to display a set with no element type` ) ;
681
680
return value . map ( v =>
682
- callback ( typedValue ( baseType , v ) )
681
+ callback ( typedValue ( elementType , v ) )
683
682
) ;
684
683
}
685
684
asHTML ( value :VariableTypeMapping < SetVariableType > ) :string {
@@ -869,7 +868,7 @@ export function typesEqual(a:VariableType | UnresolvedVariableType, b:VariableTy
869
868
types . some ( ( [ _a , _b ] ) => a == _a && b == _b ) || //Prevent infinite recursion on infinite pointer types
870
869
typesEqual ( a . target , b . target , types . concat ( [ [ a , b ] ] ) )
871
870
) ) ||
872
- ( a instanceof SetVariableType && b instanceof SetVariableType && a . baseType == b . baseType )
871
+ ( a instanceof SetVariableType && b instanceof SetVariableType && a . elementType == b . elementType )
873
872
;
874
873
}
875
874
@@ -912,7 +911,7 @@ export function typesAssignable(base:VariableType | UnresolvedVariableType, ext:
912
911
return typesEqual ( base . target , ext . target ) || [ f . quote `Types ${ base . target } and ${ ext . target } are not equal` ] ;
913
912
}
914
913
if ( base instanceof SetVariableType && ext instanceof SetVariableType ) {
915
- return base . baseType == null || ( ext . baseType != null && typesEqual ( base . baseType , ext . baseType ) || [ f . quote `Types ${ base . baseType } and ${ ext . baseType ?? "ANY" } are not equal` ] ) ;
914
+ return base . elementType == null || ( ext . elementType != null && typesEqual ( base . elementType , ext . elementType ) || [ f . quote `Types ${ base . elementType } and ${ ext . elementType ?? "ANY" } are not equal` ] ) ;
916
915
}
917
916
if ( base instanceof ClassVariableType && ext instanceof ClassVariableType ) {
918
917
return ext . inherits ( base ) || false ;
0 commit comments