summary refs log tree commit diff stats
path: root/compiler/semexprs.nim
Commit message (Collapse)AuthorAgeFilesLines
* wip type class reforms (the compiler bootstraps fine)Zahary Karadjov2013-12-251-1/+1
| | | | | | * replace tfAny and tfAll with tyAnd and tyOr * integrate matchTypeClass into typeRel * introduce tyBuiltInTypeClass to handle types such as tuple, object, proc, etc
* make the current PContext accessible through TCandidateZahary Karadjov2013-12-251-8/+8
| | | | | | the goal here is to remove all the hacks from ParamTypeMatch and to handle all type matching in typeRel (the context there is required to evaluate any static params and to run the compilation tests of user-defined type classes)
* static params: expr[T] is now static[T]Zahary Karadjov2013-12-191-4/+5
| | | | | | | This introduces tyStatic and successfully bootstraps and handles few simple test cases. Static params within macros are no longer treated as PNimrodNodes - they are now equivalent to constants of the designated type.
* Merge branch 'master' of github.com:Araq/Nimrod into upstreamZahary Karadjov2013-12-091-6/+8
|\
| * fixes #686Araq2013-11-291-6/+8
| |
* | progress towards adding negative type classesZahary Karadjov2013-12-091-1/+1
|/ | | | | | [unittest bugfixes] the block form of check now allows comments errors when inspecting the arguments of var-accepting procs
* simple unit test and better documentation for the user defined type classesZahary Karadjov2013-11-171-5/+7
|
* improvements for the `is` operator; implemented the type lifting rule in ↵Zahary Karadjov2013-11-171-2/+12
| | | | user-defined type classes
* support for multiple test variables and var qualifiers in user-defined type ↵Zahary Karadjov2013-11-131-2/+2
| | | | classes
* fixes #566Araq2013-09-111-2/+2
|
* fixes #588Araq2013-09-101-5/+8
|
* fix regressions affecting the echo magic and the creating of rod filesZahary Karadjov2013-09-071-1/+1
| | | | | the markAndSweep GC was not responsible for the regressions so this commit restores its use
* Merge branch 'type-classes' into upstreamZahary Karadjov2013-09-031-41/+83
|\
| * implemented the using statementZahary Karadjov2013-08-311-0/+17
| |
| * minor improvement towards tgenericshardcasesZahary Karadjov2013-08-281-1/+5
| |
| * fix tisopZahary Karadjov2013-08-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | Adding nil checks on the exit paths for semCompiles errors. This was probably not needed before, because semIndirectOp had a special detection for semCompiles contexts. We could try to restore these, but wouldn't this just postpone the crashes until someone tries the same expressions in nimrod check? One of the previous commits also used errorNode to avoid returning nil. This may be an alaternative approach.
| * fix tcompilesZahary Karadjov2013-08-271-0/+1
| |
| * fix tnoopZahary Karadjov2013-08-261-5/+3
| | | | | | | | | | | | | | | | This commit requires further investigation. Fixing semExpr(nkCall) once and for all to work with sym-choices and to allow overloading with immediate templates and macros will probably set this straight too.
| * implemented delegators and improved the error messages of unmatched type classesZahary Karadjov2013-08-261-21/+10
| |
| * prevent eval crashes due to PContext-dependent ops not being available in ↵Zahary Karadjov2013-08-251-3/+3
| | | | | | | | evalConstExpr
| * working code for simple cases of user-defined type classesZahary Karadjov2013-08-251-9/+42
| |
* | fixes #563Araq2013-08-311-0/+1
| |
* | Merge branch 'master' of github.com:Araq/NimrodAraq2013-08-301-1/+1
|\|
| * pass-through of static int generic params to arrays when late instantiation ↵Zahary Karadjov2013-08-231-1/+1
| | | | | | | | is disabled
* | float64 is now an alias to 'float'; fixes #545Araq2013-08-301-1/+1
|/
* Revert "Revert "fix threading tests""Zahary Karadjov2013-08-191-1/+1
| | | | This reverts commit 9c45e33d8c8b1a5f5fca69a467fda87b9b547057.
* Revert "Revert "test cases for the new features""Zahary Karadjov2013-08-191-4/+11
| | | | This reverts commit e1b668c868dbc647bb5da98d8e4769c2c9b351fd.
* fixes #534Zahary Karadjov2013-08-071-1/+3
|
* Merge branch 'master' of github.com:Araq/NimrodAraq2013-07-201-2/+5
|\
| * fixes #505Araq2013-07-021-2/+5
| |
* | 'modules' module from 'main'; minor bugfixesAraq2013-07-201-1/+4
| |
* | refactorings for the eval engine; bugfix: clean templates as accessorsAraq2013-07-191-44/+53
|/
* fixes lots of regressionsAraq2013-06-291-2/+3
|
* fixes #488Araq2013-06-271-0/+1
|
* next steps for guarded data flow analysisAraq2013-06-111-1/+3
|
* implemented large parts of the 'not nil' checkingAraq2013-06-091-0/+25
|
* astToStr is now immediateAraq2013-06-021-0/+4
|
* fixes #458Araq2013-05-311-1/+2
|
* Revert "fix threading tests"Araq2013-05-271-1/+1
| | | | This reverts commit d5fffc032f2b390abd7b4c4fea2e49b1a0ef9736.
* Revert "test cases for the new features"Araq2013-05-271-11/+4
| | | | This reverts commit 66653e8f144f2e67a6e48158f9298d9f41b16b09.
* test cases for the new featuresZahary Karadjov2013-05-261-4/+11
|
* fix threading testsZahary Karadjov2013-05-261-1/+1
| | | | | * more type names are valid expressions now * void is properly stripped off during generic instantiation
* made some tests green; implemented 'from module import nil'Araq2013-05-191-1/+1
|
* made some tests greenAraq2013-05-191-1/+2
|
* updated docsAraq2013-05-191-1/+1
|
* fixes #433Araq2013-05-181-15/+15
|
* fixes #429 and tstmtexprZahary Karadjov2013-05-121-1/+7
|
* merged the persistent scopes work with the delayed proc compilation strategyZahary Karadjov2013-05-121-2/+2
|\
* | final fixes giving us a working compilerZahary Karadjov2013-05-121-2/+2
| |
* | get rid of ImportTablePos and ModuleTablePosZahary Karadjov2013-05-121-1/+1
| |