cooldome
1e63f1edb3
destructors: first step towards fixing #9617 ( #10341 )
2019-01-18 08:51:22 +01:00
Araq
366b6be4fb
compiler refactoring: TSymSeq is gone for good
2018-12-11 12:37:05 +01:00
LemonBoy
33458894da
Fix overload resolution for pragmas evaluation ( #8902 )
...
Fixes #6448
Fixes #4384
2018-10-09 19:58:23 +02:00
Andreas Rumpf
1948eadc24
change runnableExamples implementation; fixes #8641 ; fixes #7135 ; runnableExamples works for templates and generics
2018-09-02 22:56:26 +02:00
Araq
c0c8828d9f
allow .experimental in a .push/pop environment; refs #8676
2018-08-27 11:20:30 +02:00
Andreas Rumpf
dae5450947
WIP: disallow 'nil' for strings and seqs
2018-08-13 11:41:33 +02:00
Zahary Karadjov
a49b06a52a
Implement the is operator for the new static and typedesc type classes
...
This also makes the first baby steps towards a sound treatment of
higher-order kinds (type type int).
Adds test cases showcasing the new features.
* Also fixes breakage after the rebase
2018-06-16 16:46:32 +03:00
Andreas Rumpf
61fb83ecbb
baby steps for incremental compilation
2018-05-30 23:50:34 +02:00
Andreas Rumpf
40ec7be45c
refactoring: remove idents.legacy global variable and pass the IdentCache around explicitly
2018-05-27 22:09:15 +02:00
Andreas Rumpf
669a564492
remove more global variables in the Nim compiler
2018-05-27 11:10:56 +02:00
Andreas Rumpf
f86ca02960
make semantic checking free of globals
2018-05-18 15:59:44 +02:00
Andreas Rumpf
bf6c2c5ccf
preparations of making compiler/msgs.nim free of global variables
2018-05-17 15:21:22 +02:00
Araq
5526252fa0
fixes testament compilation
2018-05-14 17:45:44 +02:00
Andreas Rumpf
328e7a1005
options.nim: no global variables anymore
2018-05-13 17:52:21 +02:00
Andreas Rumpf
e1a921ce4f
lookups compiles again
2018-05-10 15:05:05 +02:00
Zahary Karadjov
2b8bf8fc4a
A motivating example for the new bindSym behavior.
...
The example is a proof-of-concept logging library, allowing you to define
lexically-scoped environments where certain logging attributes are applied
automatically to all logging statements.
fixes tmacro1 (use of `bindSym` inside static blocks)
2018-05-07 09:37:49 +02:00
Andreas Rumpf
f697596faf
semcheck: code cleanups
2018-04-28 07:49:36 +02:00
Andreas Rumpf
ee366f1746
.experimental can now be used to enable specific features
2018-04-24 09:34:29 +02:00
Andreas Rumpf
33b69f0ed0
refactoring: make FileIndex a distinct type; make line information an uint16; fixes #7654
2018-04-21 08:13:37 +02:00
Andreas Rumpf
e4081a7201
preparations for language extensions: 'sink' and 'lent' types
2018-01-07 23:09:26 +01:00
Araq
8d1a5dc8e7
the documentation generator now supports system.runnableExamples
2017-11-26 02:51:11 +01:00
Fabian Keller
7c03c882f5
Remove more usages of unary lt ( fixes #6634 ) ( #6641 )
...
* fixes #6634
* remove more usages of unary <
2017-10-31 19:48:01 +01:00
Andreas Rumpf
f1dab39086
remove old implementation of the roof operator; make tests green again; close #6292
2017-10-29 20:36:07 +01:00
Araq
3aa7c2232e
destructors: supportsCopyMem finally works for recursive types
2017-10-26 00:55:23 +02:00
Araq
45d74f4081
destructors: preparations for upcoming changes
2017-10-17 12:46:49 +02:00
Andreas Rumpf
1a61c4d46d
first implementation of the 'func' keyword
2017-09-23 23:22:53 +02:00
Andreas Rumpf
fd4ef6ae8f
.pure enums are much more convenient to use now
2017-09-17 17:36:37 +02:00
Zahary Karadjov
cd02561368
introduce a pre-processing pass for the concept bodies
...
fixes #4982
fixes #3805
close #3414
2017-06-20 11:29:42 +02:00
Zahary Karadjov
bc01835091
Allow tyOr,tyAnd and tyNot to be constructed in more contexts
2017-04-28 17:07:54 +03:00
Zahary Karadjov
34c34cb49b
move the object construction logic to a separate file
2017-04-06 00:46:18 +03:00
Zahary Karadjov
564c0acae2
cleaned up the code and implemented proper error messages
2017-04-06 00:46:18 +03:00
Zahary Karadjov
6edb07091d
fix #4556
...
This implements a number of new safety checks and error messages
when object constructors are used:
In case objects:
* the compiler will prevent you from initializing fields in
conflicting branches
* When a field from a particular branch is initialized, the
compiler will demand that the discriminator field is also
supplied with a maching compile-time value
In all objects:
* When the "requiresInit" pragma is applied to a type, all fields
of the type must be initialized when object construction is used.
The code will be simplified in a follow up commit.
2017-04-06 00:45:12 +03:00
Zahary Karadjov
74a80988d9
proper error reporting for concepts and the introduction of the {.explain.} pragma
2017-03-24 16:59:47 +02:00
Zahary Karadjov
0f2c4be129
infer static parameters even when more complicated arithmetic is involved
2017-03-24 16:58:15 +02:00
Zahary Karadjov
76c663f692
support for inferring static[T] concept params
2017-03-24 16:58:15 +02:00
Zahary Karadjov
815724db71
support the full range of type modifiers when declaring concept vars and testing proc signatures
2017-03-24 16:58:15 +02:00
Araq
ee13c8014b
nimsuggest: track type contexts
2017-03-01 09:57:51 +01:00
Araq
3d46600a90
nimsuggest supports prefix matching (first version)
2017-02-28 09:03:40 +01:00
Andreas Rumpf
46f33515d7
Merge branch 'devel' into faster-nimsuggest
2017-02-24 01:28:50 +01:00
Arne Döring
92c2a51bf7
removed compiler internal list implementation ( #5371 )
2017-02-22 17:33:12 +01:00
Andreas Rumpf
46efaf294b
big compiler refactoring; avoid globals for multi method dispatcher generation
2017-02-22 16:27:52 +01:00
Araq
0440aea691
fixes #5405
2017-02-16 21:30:54 +01:00
Araq
97e26967f1
fixes #5383
2017-02-16 00:43:14 +01:00
Araq
9c47bb9cc0
happy new year
2017-01-07 22:35:09 +01:00
Andreas Rumpf
9c4a60193f
new shift ops for Nim; based on #4743
2016-12-29 12:07:27 +01:00
Andreas Rumpf
01ae0d28d4
recursive modules are only detected to improve error messages
2016-11-24 12:27:21 +01:00
Araq
9e6fb3f696
new dependency tracking for nimsuggest
2016-11-05 01:19:23 +01:00
Araq
773d17cd14
big refactoring: step 1
2016-10-31 15:34:44 +01:00
Andreas Rumpf
f5fa5dae85
generic multi-methods should work now
2016-07-28 20:23:24 +02:00
Andreas Rumpf
e9eab32e54
new language feature: explicit 'import system' statements are allowed
2016-07-07 01:02:12 +02:00