Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1402)

Issue 1160223006: Fix DDC errors on DDC (Closed)

Created:
5 years, 6 months ago by vsm
Modified:
5 years, 6 months ago
CC:
dev-compiler+reviews_dartlang.org, Paul Berry
Base URL:
https://github.com/dart-lang/dev_compiler.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Fix DDC errors on DDC Eating our own dogfood... Some errors still in upstream packages, but this doesn't count Paul's recent CL. > dart -c bin/devc.dart -i bin/devc.dart package AE IMO IRCE STE LOC analyzer 0 10 0 12 111627 shelf 0 0 1 0 1415 http_parser 0 1 1 0 1473 source_span 2 0 0 0 708 yaml 7 5 0 1 3850 dart_style 2 0 0 0 4577 html 0 14 1 108 12307 csslib 3 0 0 6 10227 utf 0 0 0 2 1516 ------------ ----- ----- ----- ----- ------- package AE IMO IRCE STE LOC total 14 30 3 129 175897 % 0.01 0.02 0.00 0.07 100 Where: AE: AnalyzerError IMO: InvalidMethodOverride IRCE: InvalidRuntimeCheckError STE: StaticTypeError LOC: LinesOfCode BUG= R=jmesserly@google.com Committed: https://github.com/dart-lang/dev_compiler/commit/058ae7cb6817ed83ddb2153be57478eb8235fbf4

Patch Set 1 #

Total comments: 19

Patch Set 2 : address comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+52 lines, -37 lines) Patch
M lib/src/checker/checker.dart View 1 2 chunks +5 lines, -5 lines 0 comments Download
M lib/src/checker/resolver.dart View 1 7 chunks +12 lines, -11 lines 0 comments Download
M lib/src/checker/rules.dart View 2 chunks +5 lines, -3 lines 0 comments Download
M lib/src/codegen/js_codegen.dart View 1 6 chunks +12 lines, -8 lines 0 comments Download
M lib/src/codegen/js_metalet.dart View 1 chunk +4 lines, -2 lines 0 comments Download
M lib/src/codegen/reify_coercions.dart View 1 chunk +2 lines, -1 line 0 comments Download
M lib/src/codegen/side_effect_analysis.dart View 1 chunk +2 lines, -1 line 0 comments Download
M lib/src/dependency_graph.dart View 2 chunks +6 lines, -3 lines 0 comments Download
M lib/src/info.dart View 1 chunk +3 lines, -2 lines 0 comments Download
M lib/src/js/printer.dart View 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 12 (2 generated)
vsm
5 years, 6 months ago (2015-06-01 21:38:50 UTC) #2
Jennifer Messerly
https://codereview.chromium.org/1160223006/diff/1/lib/src/checker/checker.dart File lib/src/checker/checker.dart (right): https://codereview.chromium.org/1160223006/diff/1/lib/src/checker/checker.dart#newcode230 lib/src/checker/checker.dart:230: var element = variable.element as PropertyInducingElement; random Q, do ...
5 years, 6 months ago (2015-06-01 21:52:11 UTC) #3
vsm
https://codereview.chromium.org/1160223006/diff/1/lib/src/codegen/js_codegen.dart File lib/src/codegen/js_codegen.dart (right): https://codereview.chromium.org/1160223006/diff/1/lib/src/codegen/js_codegen.dart#newcode2065 lib/src/codegen/js_codegen.dart:2065: (member as PropertyAccessorElement).variable; On 2015/06/01 21:52:10, John Messerly wrote: ...
5 years, 6 months ago (2015-06-01 21:59:37 UTC) #4
Paul Berry
https://codereview.chromium.org/1160223006/diff/1/lib/src/codegen/js_codegen.dart File lib/src/codegen/js_codegen.dart (right): https://codereview.chromium.org/1160223006/diff/1/lib/src/codegen/js_codegen.dart#newcode1153 lib/src/codegen/js_codegen.dart:1153: fillDynamicTypeArgs((element as dynamic).type, types)); I'm curious why this change ...
5 years, 6 months ago (2015-06-01 22:00:45 UTC) #5
Jennifer Messerly
https://codereview.chromium.org/1160223006/diff/1/lib/src/codegen/js_codegen.dart File lib/src/codegen/js_codegen.dart (right): https://codereview.chromium.org/1160223006/diff/1/lib/src/codegen/js_codegen.dart#newcode1153 lib/src/codegen/js_codegen.dart:1153: fillDynamicTypeArgs((element as dynamic).type, types)); On 2015/06/01 22:00:45, Paul Berry ...
5 years, 6 months ago (2015-06-01 22:17:38 UTC) #6
vsm
thanks- ptal https://codereview.chromium.org/1160223006/diff/1/lib/src/checker/checker.dart File lib/src/checker/checker.dart (right): https://codereview.chromium.org/1160223006/diff/1/lib/src/checker/checker.dart#newcode230 lib/src/checker/checker.dart:230: var element = variable.element as PropertyInducingElement; On ...
5 years, 6 months ago (2015-06-01 22:44:20 UTC) #7
Jennifer Messerly
lgtm https://codereview.chromium.org/1160223006/diff/1/lib/src/checker/checker.dart File lib/src/checker/checker.dart (right): https://codereview.chromium.org/1160223006/diff/1/lib/src/checker/checker.dart#newcode230 lib/src/checker/checker.dart:230: var element = variable.element as PropertyInducingElement; On 2015/06/01 ...
5 years, 6 months ago (2015-06-01 23:10:56 UTC) #8
vsm
Committed patchset #2 (id:20001) manually as 058ae7cb6817ed83ddb2153be57478eb8235fbf4 (presubmit successful).
5 years, 6 months ago (2015-06-02 00:02:28 UTC) #9
Paul Berry
https://codereview.chromium.org/1160223006/diff/1/lib/src/codegen/js_codegen.dart File lib/src/codegen/js_codegen.dart (right): https://codereview.chromium.org/1160223006/diff/1/lib/src/codegen/js_codegen.dart#newcode1153 lib/src/codegen/js_codegen.dart:1153: fillDynamicTypeArgs((element as dynamic).type, types)); On 2015/06/01 22:44:19, vsm wrote: ...
5 years, 6 months ago (2015-06-02 00:55:34 UTC) #11
Jennifer Messerly
5 years, 6 months ago (2015-06-02 16:28:58 UTC) #12
Message was sent while issue was closed.
https://codereview.chromium.org/1160223006/diff/1/lib/src/codegen/js_codegen....
File lib/src/codegen/js_codegen.dart (right):

https://codereview.chromium.org/1160223006/diff/1/lib/src/codegen/js_codegen....
lib/src/codegen/js_codegen.dart:1153: fillDynamicTypeArgs((element as
dynamic).type, types));
On 2015/06/02 00:55:34, Paul Berry wrote:
> On 2015/06/01 22:44:19, vsm wrote:
> > On 2015/06/01 22:17:38, John Messerly wrote:
> > > On 2015/06/01 22:00:45, Paul Berry wrote:
> > > > I'm curious why this change was necessary.  It seems counter-intuitive.
> > > 
> > > I don't think there's a common supertype of ClassElement and
> > > FunctionTypeAliasElement that has the type getter. (Element does not have
> it).
> > > This one trips me up occasionally.
> > > 
> > > And probably inference is causing `var element` to infer as Element, as
> that's
> > > what SimpleIdentifier's staticElement is typed as.
> > 
> > Right, I don't think we have a common interface type with the "type" getter.
> 
> Ah, ok.  I will look into whether it's possible to create a common interface
> implemented by ClassElement, DynamicElementImpl, and FunctionTypeAliasElement
> (maybe something like "TypeDefiningElement").  That way you could change this
> code to a single "is" check and take advantage of type promotion, e.g.:
> 
> if (element is TypeDefiningElement) {
>   return _emitTypeName(fillDynamicTypeArgs(element.type, types));
> }

+1 that would be awesome!

Powered by Google App Engine
This is Rietveld 408576698