Nicholas Wiersma
9627782394
feature: add Sizeof and Alignof to unsafe
2020-06-22 15:24:04 +02:00
Ludovic Fernandez
a6c24a0d13
chore: update linter. ( #706 )
...
* chore: update linter.
* chore: remove not needed travis env var.
2020-06-22 12:55:42 +02:00
Nicholas Wiersma
f19b7563ea
feature: unsafe type conversion
2020-06-18 18:14:03 +02:00
Nicholas Wiersma
0643762852
fix: allow uint in make len and cap
2020-06-18 15:18:04 +02:00
Nicholas Wiersma
d252821df3
feature: constant values in bin packages
2020-06-18 13:54:04 +02:00
Nicholas Wiersma
1fe91be882
feature: refactor numeric constants and detect overflow
2020-06-18 09:20:04 +02:00
Nicholas Wiersma
5cbbf9339c
fix: type assertion of non-matching types
2020-06-18 09:06:03 +02:00
Marc Vertes
c1f5005b2a
fix: finish support of type assertions which was incomplete ( #657 )
...
* fix: finish support of type assertions which was incomplete
TypeAssert was optimistically returning ok without verifying that
value could be converted to the required interface (in case of
type assert of an interface type), or not checking the type in
all conditions. There is now a working implements method for itype.
Fixes #640 .
* style: appease lint
* fix: remove useless code block
* doc: improve comments
* avoid test conflict
2020-06-10 11:21:16 +02:00
Nicholas Wiersma
f1cff308e6
fix: handle printf changing nil type
2020-06-03 17:36:04 +02:00
Nicholas Wiersma
eb25c84797
fix: handle call ellipsis
2020-06-03 16:42:04 +02:00
Nicholas Wiersma
d5217f7db4
fix: handle nil interface conversion
2020-06-03 00:32:04 +02:00
Nicholas Wiersma
01e4cdea70
fix: recursive struct function call
2020-06-03 00:18:04 +02:00
Nicholas Wiersma
56d88ef89d
fix: nil recover case
2020-05-29 13:28:03 +02:00
Nicholas Wiersma
5d78c8ae27
fix: compose recursion
2020-05-28 08:52:03 +02:00
Marc Vertes
8605c238ef
fix: use interface wrappers to expose interface values to runtime ( #643 )
...
* fix: use interface wrappers to expose interface values to runtime
If a value is assigned to, or returned as, a binary interface,
then use the interface wrapper generator to convert the value
accordingly.
Fixes #630 .
* test: rename NewFoo in Foo
* test: rename NewFoo in Foo
* fix: improve branch flow to reduce indentation
2020-05-20 21:46:14 +02:00
Marc Vertes
b9720d15e1
fix: improve setting results in multiple output functions
2020-05-05 22:34:03 +02:00
Marc Vertes
7fab75fbe4
fix: correct assign from function returning an interface value ( #625 )
2020-05-05 13:54:36 +02:00
Marc Vertes
22dfc8b10a
fix: handle set of variadic arg list for a ... value
2020-05-03 18:44:04 +02:00
Marc Vertes
7fba3fe580
fix: improve generation of interface wrapper
2020-05-03 18:32:04 +02:00
Marc Vertes
ff36ec58b1
fix: improve switch and type switch statement processing
2020-05-03 18:20:04 +02:00
Marc Vertes
e12c8b72c4
fix: store the result of a bin function call in frame
2020-05-03 17:56:04 +02:00
Marc Vertes
e4acba031d
fix: improving handling of functions returning interfaces
2020-05-03 17:46:03 +02:00
Marc Vertes
1feece61ce
fix: improve handling of function return values
2020-04-30 10:32:04 +02:00
Marc Vertes
01e2e4600e
fix: handle default comm clause in select
2020-04-25 17:40:08 +02:00
Marc Vertes
92eebbade2
fix: handle function output value assigned to interface var
2020-04-25 17:28:04 +02:00
Marc Vertes
7b2d91bcb5
fix: handling values in map of interfaces
2020-04-22 10:34:05 +02:00
Marc Vertes
5e142fdedd
fix: do not attempt to copy data in empty frame at func call
2020-04-18 18:36:04 +02:00
Marc Vertes
c580dfdbc8
fix: correct handling of interface types in composite literals
2020-04-16 19:54:03 +02:00
Marc Vertes
29e1777d82
fix: assign composite literal by reference
2020-04-16 12:24:04 +02:00
Marc Vertes
50a34fd2a7
fix: correct control flow graph for select blocks
2020-04-15 12:24:04 +02:00
Marc Vertes
12942b59a0
fix: remove ambiguities in recursive type processing
2020-04-09 01:14:03 +02:00
Marc Vertes
3e76267f8e
fix: method search on struct pointer in interface wrapper
2020-04-07 17:22:04 +02:00
Marc Vertes
b20ad3a01d
fix: checks that value implements a binary type in type assert
2020-04-03 04:02:04 +02:00
Marc Vertes
7327ff2811
fix: correct comparison of interface type to nil
2020-03-25 13:56:05 +01:00
Marc Vertes
0a99eb48c3
fix: do not pass twice the receiver in deferred method calls
2020-03-23 13:40:03 +01:00
Marc Vertes
daaeac6e2c
fix: convert literal nil to interface types
2020-03-18 10:34:05 +01:00
Marc Vertes
953b122e67
fix: avoid infinite recursion in genFunctionWrapper()
2020-03-17 18:02:05 +01:00
Marc Vertes
9b07e73b5e
fix: resolve receiver for binary methods on non interface types
2020-03-12 14:42:04 +01:00
Marc Vertes
78bbcda1f8
fix: do not overwrite input for assign operators
2020-03-12 12:24:04 +01:00
Marc Vertes
c7c1bea7ef
fix: do not attempt to store data in _ var
2020-03-09 13:22:04 +01:00
Marc Vertes
1ae2649655
fix: correct control flow graph for defer statements
2020-03-09 10:52:05 +01:00
Traefiker Bot
0ace9244c4
fix: correctly init variables from index expressions
2020-03-05 14:28:06 +01:00
Traefiker Bot
2edd18a0c0
fix: handle use of functions in struct fields
2020-03-05 13:40:05 +01:00
Marc Vertes
cfb73445a2
fix: handle interface values in map and arrays
2020-03-03 18:32:04 +01:00
Marc Vertes
7037424edf
fix: correctly store boolean result for branching operations
2020-02-14 16:26:04 +01:00
Marc Vertes
1b971b539c
fix: correctly handle arbitrary type of literal array index
2020-02-12 15:06:04 +01:00
Marc Vertes
812e55b95e
fix: handle conversion of nil to an interface type
2020-02-09 05:04:04 +01:00
Marc Vertes
712891dd77
fix: allow reuse of _ symbol in the same scope
2020-02-03 17:08:05 +01:00
Marc Vertes
137b16580c
fix: handle binary methods where receiver is implicit
2020-02-03 16:54:04 +01:00
Marc Vertes
f1cde2be0f
fix: apply automatic type conversion to constant expressions ( #484 )
2020-01-09 18:01:44 +01:00