Autor Téma: 10.3 Rio - Inline proměnné označuje za chybu  (Přečteno 3089 krát)

Offline starous

  • Mladík
  • **
  • Příspěvků: 95
  • Karma: 3
    • Verze Delphi: Delphi 7, Delphi 10.4
10.3 Rio - Inline proměnné označuje za chybu
« kdy: 24-11-2018, 00:44:29 »
Po nainstalaci nové verze 10.3 jsem si zkusil napsat příklad s inline proměnnými.

Kód: Delphi [Vybrat]
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3.   var I: Integer;
  4.   I := 22;
  5.   ShowMessage (I.ToString);
  6. end;
  7.  

Program se bez problémů přeloží a spustí a samozřejmě funguje jak má. Rozčiluje mě ale, že editoru se kód nelíbí a mám tam podtržené 3 chyby. Jako kdyby vůbec nebyl připraven na tuto jazykovou úpravu.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2982
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #1 kdy: 24-11-2018, 01:31:47 »
Rozčiluje mě ale, že editoru se kód nelíbí a mám tam podtržené 3 chyby. Jako kdyby vůbec nebyl připraven na tuto jazykovou úpravu.

To bude nejspis chyba aktualizace zmen jazyka (T)Error Insight. Chapu ze to nekdo pouziva, ale je to jedna z prvnich moznosti IDE, jenz bych bez boje opustil a bez vahani vypnul.

Myslím, že se dále nebude výrazně investovat do starého IDE parseru (ale toto se ještě mělo upravit), který je mimochodem bohužel v .NET (a je to prakticky jediná zásadní závislost IDE na .NET a celkem výrazně žere paměť) a nemá nic společného s kompilátorem. Cílem je místo toho použít reálný kompilátor, kterým se překládá výsledný program. Přesto si myslím, že i tak došlo k opravě x problémů s parserem a proti dřívějším verzím má podle mne ted minimum false positive.
Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2982
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #2 kdy: 24-11-2018, 01:35:53 »
Excellent
Rated 1 time
P.S. : ten tvůj kód je celkem v pohodě, větší maso je

Kód: Delphi [Vybrat]
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3.   var I:= 22;
  4.   ShowMessage (I.ToString);
  5. end;
  6.  

kde kompilátor určí typ proměnné podle výsledku.
Embarcadero MVP - Czech republic

Offline starous

  • Mladík
  • **
  • Příspěvků: 95
  • Karma: 3
    • Verze Delphi: Delphi 7, Delphi 10.4
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #3 kdy: 24-11-2018, 08:29:24 »
Rozčiluje mě ale, že editoru se kód nelíbí a mám tam podtržené 3 chyby. Jako kdyby vůbec nebyl připraven na tuto jazykovou úpravu.

To bude nejspis chyba aktualizace zmen jazyka (T)Error Insight. Chapu ze to nekdo pouziva, ale je to jedna z prvnich moznosti IDE, jenz bych bez boje opustil a bez vahani vypnul.

Nainstaloval jsem čisté Delphi a vyzkoušel zmíněný kód. Takže je to default nastavení Delphi. Kde se to dá vypnout?

Offline starous

  • Mladík
  • **
  • Příspěvků: 95
  • Karma: 3
    • Verze Delphi: Delphi 7, Delphi 10.4
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #4 kdy: 24-11-2018, 08:39:17 »
P.S. : ten tvůj kód je celkem v pohodě, větší maso je

Kód: Delphi [Vybrat]
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3.   var I:= 22;
  4.   ShowMessage (I.ToString);
  5. end;
  6.  

kde kompilátor určí typ proměnné podle výsledku.


Souhlasím. V Embarcaderu určitě hodně mákli. Jen mě překvapilo, že si nejsou schopni ošetřit zásadní jazykovou novinku. Ale jak píše Delphin - asi to má každej vypnutý. Pak by bylo lepší to vypnout defaultně.
« Poslední změna: 24-11-2018, 08:41:28 od starous »

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2982
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #5 kdy: 24-11-2018, 10:42:55 »
Rozčiluje mě ale, že editoru se kód nelíbí a mám tam podtržené 3 chyby. Jako kdyby vůbec nebyl připraven na tuto jazykovou úpravu.

To bude nejspis chyba aktualizace zmen jazyka (T)Error Insight. Chapu ze to nekdo pouziva, ale je to jedna z prvnich moznosti IDE, jenz bych bez boje opustil a bez vahani vypnul.

Nainstaloval jsem čisté Delphi a vyzkoušel zmíněný kód. Takže je to default nastavení Delphi. Kde se to dá vypnout?


Tools / Options / do vyhledavani zadej error, vyber Error Insight,

Vyber Source file type - Pascal a odškrtni Error insight


Já myslím, že to budou adresovat v nějakém brzkém update, bylo to v plánu pro release, ale situace s managed records (http://blog.marcocantu.com/blog/2018-november-deferring-managed%20records.html) asi změnila priority.
« Poslední změna: 24-11-2018, 10:51:23 od Radek Červinka »
Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2982
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #6 kdy: 24-11-2018, 10:46:06 »
...že si nejsou schopni ošetřit zásadní jazykovou novinku...

Protože je to tak zásadní novinka. Ono to nevypadá, ale to se projevuje prakticky všude, v různých příkazech (např. for) a v mnoha variantách.
Embarcadero MVP - Czech republic

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 1062
  • Karma: 29
    • Verze Delphi: XE8, Sydney
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #7 kdy: 28-11-2018, 20:40:12 »
Excellent
Rated 1 time
Marco Cantu to dneska na předváděčce taky vypnul
:(

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1274
  • Karma: 51
    • Verze Delphi: 10.3
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #8 kdy: 28-11-2018, 21:06:47 »
Nejsou nějaké zákulisní informace, kdy vyjde první update 10.3.1? Jestli se vyplatí 10.3 instalovat, nebo radši počkat :-)

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 1062
  • Karma: 29
    • Verze Delphi: XE8, Sydney
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #9 kdy: 28-11-2018, 23:06:30 »
Asi až odladí ty recordy

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 1062
  • Karma: 29
    • Verze Delphi: XE8, Sydney
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #10 kdy: 28-11-2018, 23:07:11 »
Každopádně kompatibilita se staršími projekty dobrá

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2982
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #11 kdy: 28-11-2018, 23:22:35 »
Nejsou nějaké zákulisní informace, kdy vyjde první update 10.3.1? Jestli se vyplatí 10.3 instalovat, nebo radši počkat :-)

10.3.1 bude velký update, tipl bych s MacOSX64, podle roadmap http://imagizer.imageshack.us/a/img924/1513/VTlRCZ.png to vypadá na první polovinu roku 2019.

Chyby se stejně jako u tokya řeší hotfixy a kdy budou nevím, ale podle mne do konce roku určitě.

Citace
Asi až odladí ty recordy

Ani náhodou, 10.3.X je vždy binárně kompatibilní dcu (stejně jako u Tokyo), takže managed recordy pravděpodobně bohužel v 10.4.
Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2982
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #12 kdy: 28-11-2018, 23:23:26 »
Marco Cantu to dneska na předváděčce taky vypnul
:(

a neřekl k tomu něco?
Embarcadero MVP - Czech republic

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3291
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #13 kdy: 29-11-2018, 06:58:17 »
Nejsou nějaké zákulisní informace, kdy vyjde první update 10.3.1? Jestli se vyplatí 10.3 instalovat, nebo radši počkat :-)
Pokud nejsi hracicka, ktera musi mit za kazdou cenu vsechno nove, tak za me se vzdycky vyplati pockat -> nikdy nepouzivame produkt, ktery dosud nevydal 1. update, stejne jako si nikdy neporizuju nove auto pred 1. faceliftem atd.  :)

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 1062
  • Karma: 29
    • Verze Delphi: XE8, Sydney
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #14 kdy: 29-11-2018, 08:08:20 »
Marco Cantu to dneska na předváděčce taky vypnul
:(

a neřekl k tomu něco?

Jen to vyřešil :)

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1274
  • Karma: 51
    • Verze Delphi: 10.3
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #15 kdy: 29-11-2018, 10:57:22 »
Pokud nejsi hracicka, ktera musi mit za kazdou cenu vsechno nove, tak za me se vzdycky vyplati pockat -> nikdy nepouzivame produkt, ktery dosud nevydal 1. update, stejne jako si nikdy neporizuju nove auto pred 1. faceliftem atd.  :)

No byl jsem hlavně zvědav na opravy. Nicméně, po instalaci jsem chtěl začít instalací doplňků přes GetIt. Z těch, co používám, tam aktuálně není ani jeden:
JCL
JVCL
PngComponents
SynEdit
VirtualTree
PowerPDF

Takže je pěkné, že si dali práci s předěláním uživatelského rozhraní (mimochodem, zkoušeli třeba zatočit v tom seznamu kolečkem na myši? Nebo popotáhnout za posuvník?), ale jaksi zapomněli dodat obsah...

Offline starous

  • Mladík
  • **
  • Příspěvků: 95
  • Karma: 3
    • Verze Delphi: Delphi 7, Delphi 10.4
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #16 kdy: 29-11-2018, 15:20:35 »
Marco Cantu to dneska na předváděčce taky vypnul
:(



a neřekl k tomu něco?

Jen to vyřešil :)

Marcovi to evidentně nevadilo, ukazoval nám nové vlastnosti jazyka a kód měl celý krásně červený. Vypnul to až, když se ho jeden z posluchačů zeptal, proč je to podtržený červeně. Bohužel angličtinou nevládnu, takže nevím, co Marco přesně řekl. Nicméně podle toho, co překládal tlumočník, tak to spíš zahrál do autu. Že je to jen interní kontrola a není to důležité.

Offline starous

  • Mladík
  • **
  • Příspěvků: 95
  • Karma: 3
    • Verze Delphi: Delphi 7, Delphi 10.4
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #17 kdy: 29-11-2018, 22:22:07 »
Možná ještě malá poznámka k inline proměnným, která padla na přednášce Marco Cantu.

Na závěr jeho přednášky zazněl dotaz proč se Embarcadero rozhodlo k této radikální změně jazyka. Marco vysvětloval, že se v Delphi často používají různé kolekce nebo zřetězení objektů. Kód na řádcích pak bývá dlouhý a programátoři jen píší a píší (klesá produktivita). Tedy primárním důvodem pro zavedení bylo zkrácení zápisu kódu.
To je asi také důvod, proč se inline proměnné mohou deklarovat bez typu.

Offline Slappy

  • Hrdina
  • ****
  • Příspěvků: 251
  • Karma: 12
  • Slappy
    • Verze Delphi: 11 Alexandria + Vsetky :)
    • unSigned
Re:10.3 Rio - Inline proměnné označuje za chybu
« Odpověď #18 kdy: 30-11-2018, 11:16:53 »
Možná ještě malá poznámka k inline proměnným, která padla na přednášce Marco Cantu.

Na závěr jeho přednášky zazněl dotaz proč se Embarcadero rozhodlo k této radikální změně jazyka. Marco vysvětloval, že se v Delphi často používají různé kolekce nebo zřetězení objektů. Kód na řádcích pak bývá dlouhý a programátoři jen píší a píší (klesá produktivita). Tedy primárním důvodem pro zavedení bylo zkrácení zápisu kódu.
To je asi také důvod, proč se inline proměnné mohou deklarovat bez typu.

Ja by som povedal, ze ich k tomu nudi moderny webovy vyvoj (JavaScript) kde si date var X = hocico a funguje to.
Proste veci idu dopredu a mladi nechce stracat cas chodenim do var sekcie a pisanim typov :D
Moje projekty: http://www.unsigned.sk Tvorba cool dizajnovych instalatorov v NSIS a Inno Setup. Rozsirenie pre Visual Studio a RAD Studio pre tvorbu NSIS a Inno Setup instalatorov.