summary refs log tree commit diff stats
path: root/compiler/sigmatch.nim
Commit message (Collapse)AuthorAgeFilesLines
* fixes #8043Araq2018-09-031-0/+3
|
* Do not materialize empty varargs[untyped] arrays (#8715)LemonBoy2018-08-311-6/+17
| | | | | | | | | When an empty nkArgList `varargs[untyped]` is passed around it is now reused for efficiency sake and to prevent the introduction of a spurious element: before this commit we'd pass the caller a nkArgList[nkHiddenStdConv[nkBracket]] node instead of just an empty nkArgList. Fixes #8706
* introduce precise string '[]', '[]=' accessors; fixes #8049 (#8817)Andreas Rumpf2018-08-301-0/+9
|
* fixes #7854Araq2018-08-301-1/+2
|
* Fix #8126 (#8712)zah2018-08-211-1/+2
| | | | | | This is a temporary fix that will be reworked in a follow up commit that aims to eliminate the tfExplicit flag from the compiler. The complete and proper fix was considered too risky for inclusion just before our 0.19 release.
* changes how the now illegal 'string == nil' comparison is detectedAndreas Rumpf2018-08-151-6/+2
|
* Merge branch 'devel' into araq-miscAraq2018-08-131-0/+4
|\
| * Converters to take into account constraints. Fixes #7520 (#8593)cooldome2018-08-131-0/+4
| |
* | WIP: disallow 'nil' for strings and seqsAndreas Rumpf2018-08-131-6/+16
|/
* fixes #6255, add `system.ashr` arithmetic right shift (#8547)andri lim2018-08-071-0/+4
|
* sigmatch: no trailing whitespaceAndreas Rumpf2018-07-171-5/+5
|
* Do not crash while instantiating a generic outside a call (#8279)LemonBoy2018-07-141-1/+4
| | | Fixes #8270
* Handle subtype relations for converter parameters (#8248)LemonBoy2018-07-091-2/+7
| | | Fixes #7098
* Reset typedescMatched before paramTypesMatch (#8250)LemonBoy2018-07-091-0/+3
| | | | | The flag should not be carried out across different parameters. Fixes #7794
* Fix comparison of tyGenericBody in typerel (#8045)LemonBoy2018-07-071-1/+1
| | | | | | As shown in #7734 and #7733 the logic in typerel fails to determine that `type Foo` and `type Foo` are indeed equal. Fixes #7734
* Error out if vararg match isn't an exact one (#8186)LemonBoy2018-07-031-1/+11
| | | Fixes #8172
* Merge pull request #7736 from cooldome/range_float_typeAndreas Rumpf2018-06-271-14/+16
|\ | | | | Language feature: range float types
| * manual merge 2cooldome2018-06-121-1/+1
| |
| * merge develcooldome2018-06-121-27/+38
| |\
| * | style fixes, typoscooldome2018-06-121-5/+5
| | |
| * | remove underscorescooldome2018-06-111-5/+5
| | |
| * | fix commentscooldome2018-06-101-16/+11
| | |
| * | merge develcooldome2018-06-101-49/+63
| |\ \
| * \ \ merge develcooldome2018-04-291-7/+19
| |\ \ \
| * | | | Implement float range typescooldome2018-04-261-13/+20
| | | | |
* | | | | requested pull-request changesZahary Karadjov2018-06-161-10/+10
| | | | |
* | | | | allow referencing other parameters in default parameter valuesZahary Karadjov2018-06-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fix #7756 fix #1201 fix #7000 fix #3002 fix #1046
* | | | | fixes #7222; fixes #5595; fixes #3747Zahary Karadjov2018-06-161-5/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * late instantiation for the generic procs' default param values * automatic mixin behaviour in concepts Other fixes: * don't render the automatically inserted default params in calls * better rendering of tyFromExpr
* | | | | A minimal patch enabling the new typedesc and static types syntaxZahary Karadjov2018-06-161-5/+9
| | | | |
* | | | | implements a --nep1:on switch to make the compiler enforce the naming ↵Andreas Rumpf2018-06-131-1/+1
| |_|_|/ |/| | | | | | | | | | | conventions outlined in NEP-1
* | | | Merge pull request #7981 from cooldome/Fix_-7980Andreas Rumpf2018-06-121-2/+6
|\ \ \ \ | | | | | | | | | | Fixes 7980
| * | | | style improvementscooldome2018-06-121-2/+2
| | | | |
| * | | | add commentcooldome2018-06-121-0/+1
| | | | |
| * | | | New approachcooldome2018-06-121-2/+5
| | |_|/ | |/| |
* | | | fixex merge conflictsAraq2018-06-081-0/+8
|\| | |
| * | | add more test to 4799andri lim2018-06-051-0/+8
| | | |
* | | | ensure compiler API doesn't import the RST engineAndreas Rumpf2018-05-291-1/+1
| | | |
* | | | refactoring: remove idents.legacy global variable and pass the IdentCache ↵Andreas Rumpf2018-05-271-5/+5
| | | | | | | | | | | | | | | | around explicitly
* | | | remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-5/+5
| | | |
* | | | make tests green againAndreas Rumpf2018-05-181-1/+1
| | | |
* | | | platform.nim doesn't use globals anymore; prepare msgs.nim for not using globalsAndreas Rumpf2018-05-181-14/+18
| | | |
* | | | remove ast.emptyNode global; cleanup configuration.nimAraq2018-05-161-3/+6
|/ / /
* | | make tests green againAraq2018-05-141-2/+2
| | |
* | | fixes testament compilationAraq2018-05-141-5/+9
|\ \ \
| * | | Bugfix: The compiler were not inserting proper downcasts for generic typesZahary Karadjov2018-05-071-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This resulted in a codegen error in C++ mode, because the generic types were not defined in modules where calls requiring downcasts were used (generating a downcast forces the inclusion of the full definition of the involved types).
| * | | Bugfix: Allow matching on nkExprEqExpr against varargs[untyped]Zahary Karadjov2018-05-071-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This enables macros accepting arbitrary keyword arguments: log("foo", prop1 = "bar", prop2 = "baz") As an added bonus, simple templates with varargs arguments can now forward their params to procs accepting keyword arguments.
| * | | Better support for treating templates and macros as symbols.Zahary Karadjov2018-05-071-3/+5
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows you to pass a template or a macro to another macro which can then inspect the implementation of the former template/macro using `getImpl`. Since templates can be freely redefined, this allows you to treat their symbols as compile-time variables that have lexical scope. A motivating PoC example for a logging library taking advantage of this will be provided in the next commit. Implementation details: * The name of a template or a macro will be consider a symbol if the template/macro requires parameters * For parameterless templates/macros, you can use `bindSym`, which was extended to also work outside of compile-time procs.
* | | options.nim: no global variables anymoreAndreas Rumpf2018-05-131-2/+2
| | |
* | | sigmatch compiles againAndreas Rumpf2018-05-111-42/+44
|/ /
* | sigmatch: speed it upAndreas Rumpf2018-04-281-3/+1
| |
ef='#n1298'>1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439