- children of a const record are const too
- external class instance cannot access static members
- option to treat open arrays as dynamic arrays
- made rrfReadable consistent on class types
- const dynarray param: elements are writable
git-svn-id: trunk@35702 -
- type cast array to array with same dimensions and element types
- allow type casting string to external class name 'String'
- allow type casting array to external class name 'Array'
- allow assigning any array to an array of jsvalue
git-svn-id: trunk@35696 -
- concat(array1,array2,...)
- jsvalue = and <>
- allow no other string type except String
- allow no other float type except Double
git-svn-id: trunk@35693 -
- intrinsics:
function concat(array1,array2,...): array
function copy(array): array, copy(a,start), copy(a,start,end)
insert(item; var array; index: integer)
delete(var array; start, count: integer)
- unified type mismatch errors and report types with paths if needed
git-svn-id: trunk@35692 -
inline nodes, which should generate better code for certain CPU targets,
including x86. Note that the optimization isn't applied yet for all integer
types (those that have extra implicit typecasts, inserted by the compiler,
aren't handled yet).
git-svn-id: trunk@35685 -
- assigned(array)
- open array: override, pass array literal, pass var
- reporting type mismatches shows full path if necessary
- fixed comparing basetype from different units
- types with unitname
git-svn-id: trunk@35681 -
- ord(char), chr()
- typecast boolean to integer
- typecast integer to boolean
- open arrays, same as dynamic arrays
- Pascal descendant of external class can define a newinstance class
function
- allow to type cast any class to any root class
- jsvalue
- init as undefined
- assign to jsvalue := integer, string, boolean, double, char
- type cast base types to jsvalue
- type cast jsvalue to base type
integer: Math.floor(jsvalue)
boolean: !(jsvalue == false)
double: rtl.getNumber(jsvalue)
string: ""+jsvalue
char: rtl.getChar(jsvalue)
- enums: assign to jsvalue, typecast jsvalue to enum
- class instance: assign to jsvalue, typecast jsvalue to a class
- class of: assign to jsvalue, typecast jsvalue to a class-of
- array of jsvalue
- parameter, result type, assign from/to untyped
git-svn-id: trunk@35668 -
pastree: fixed double iterations in foreach
parser: fixed skipping token after var declaration without checking
pasresolver:
- ord(char), chr()
- method visibility: warn and fix if override has lower visibility
- open arrays
- allow descendants to add their own base types
- typecast to alias type
pasuseanalyzer: support public modifier
git-svn-id: trunk@35667 -
op=and/or/xor). They generate more optimal code on certain architectures
(including x86). The new inline nodes aren't generated by the compiler yet,
but will be used in the future, at certain optimization levels, whenever the
pattern x:=x op y is detected by the compiler.
git-svn-id: trunk@35666 -