@@ -120,7 +120,7 @@ class DartLoader implements ReferenceLevelLoader {
120120 var uri = applicationRoot.relativeUri (element.source.uri);
121121 return repository.getLibraryReference (uri)
122122 ..name ?? = getLibraryName (element)
123- ..fileUri = "file:// ${element .source .fullName }" ;
123+ ..fileUri = ' ${element .source .uri }' ;
124124 }
125125
126126 void _buildTopLevelMember (
@@ -268,7 +268,7 @@ class DartLoader implements ReferenceLevelLoader {
268268 _classes[element] = classNode = new ast.Class (
269269 name: element.name,
270270 isAbstract: element.isAbstract,
271- fileUri: "file:// ${element .source .fullName }" );
271+ fileUri: ' ${element .source .uri }' );
272272 classNode.level = ast.ClassLevel .Temporary ;
273273 var library = getLibraryReference (element.library);
274274 library.addClass (classNode);
@@ -332,7 +332,8 @@ class DartLoader implements ReferenceLevelLoader {
332332 isAbstract: true ,
333333 typeParameters: freshParameters.freshTypeParameters,
334334 supertype: freshParameters.substituteSuper (supertype),
335- mixedInType: freshParameters.substituteSuper (mixinType));
335+ mixedInType: freshParameters.substituteSuper (mixinType),
336+ fileUri: classNode.fileUri);
336337 mixinClass.level = ast.ClassLevel .Type ;
337338 supertype = new ast.Supertype (mixinClass,
338339 classNode.typeParameters.map (makeTypeParameterType).toList ());
@@ -445,7 +446,7 @@ class DartLoader implements ReferenceLevelLoader {
445446 isStatic: true ,
446447 isExternal: constructor.isExternal,
447448 isConst: constructor.isConst,
448- fileUri: "file:// ${element .source .fullName }" );
449+ fileUri: ' ${element .source .uri }' );
449450 }
450451 return new ast.Constructor (scope.buildFunctionInterface (constructor),
451452 name: _nameOfMember (element),
@@ -460,8 +461,7 @@ class DartLoader implements ReferenceLevelLoader {
460461 isFinal: variable.isFinal,
461462 isConst: variable.isConst,
462463 type: scope.buildType (variable.type),
463- fileUri: "file://${element .source .fullName }" )
464- ..fileOffset = element.nameOffset;
464+ fileUri: '${element .source .uri }' )..fileOffset = element.nameOffset;
465465
466466 case ElementKind .METHOD :
467467 case ElementKind .GETTER :
@@ -480,7 +480,7 @@ class DartLoader implements ReferenceLevelLoader {
480480 isAbstract: executable.isAbstract,
481481 isStatic: executable.isStatic,
482482 isExternal: executable.isExternal,
483- fileUri: "file:// ${element .source .fullName }" );
483+ fileUri: ' ${element .source .uri }' );
484484
485485 default :
486486 throw 'Unexpected member kind: $element ' ;
@@ -586,7 +586,7 @@ class DartLoader implements ReferenceLevelLoader {
586586 typeParameters: fresh.freshTypeParameters,
587587 supertype: new ast.Supertype (superclass, superArgs),
588588 mixedInType: new ast.Supertype (mixedInClass, mixinArgs),
589- fileUri: mixedInClass .fileUri);
589+ fileUri: library .fileUri);
590590 result.level = ast.ClassLevel .Type ;
591591 library.addClass (result);
592592 return result;
@@ -694,9 +694,15 @@ class DartLoader implements ReferenceLevelLoader {
694694 in libraryElement.units) {
695695 var source = compilationUnitElement.source;
696696 LineInfo lineInfo = context.computeLineInfo (source);
697- program.uriToLineStarts["file://${source .fullName }" ] =
698- new List <int >.generate (lineInfo.lineCount, lineInfo.getOffsetOfLine,
699- growable: false );
697+ String sourceCode;
698+ try {
699+ sourceCode = context.getContents (source).data;
700+ } catch (e) {
701+ // The source's contents could not be accessed.
702+ sourceCode = '' ;
703+ }
704+ program.uriToSource['${source .uri }' ] =
705+ new ast.Source (lineInfo.lineStarts, sourceCode);
700706 }
701707 }
702708 return program;
0 commit comments